{"version":3,"file":"powerbi.js","mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;ACVA;AACA;AACA,IAAI,IAAyD;AAC7D;AACA,MAAM,EAKkC;AACxC,CAAC;AACD,qCAAqC;AACrC;AACA;AACA;AACA;AACA,mBAAmB,8BAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,0EAA0E,8BAAmB;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,8BAAmB;AAC7B;AACA;AACA,UAAU,8BAAmB;AAC7B;AACA;AACA,UAAU,8BAAmB;AAC7B;AACA;AACA,iBAAiB,8BAAmB;AACpC,UAAU;AACV;AACA;AACA;AACA;;AAEA;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,mCAAmC;AACnC,wCAAwC;AACxC;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,mCAAmC;AACnC,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,mCAAmC;AACnC,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,mCAAmC;AACnC,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,gCAAgC;AAChC,mCAAmC;AACnC,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,wCAAwC;AACxC,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uBAAuB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,EAAE;AACF;;;AAGA;AACA;AACA,CAAC;AACD;AACA;;;;;;;;;;AClLA;AACA;AACA;AACA;AACA,IAAI,IAAyD;AAC7D;AACA,MAAM,EAK+B;AACrC,CAAC;AACD,yBAAyB;AACzB;AACA;AACA,kDAAkD,8BAAmB;;AAErE;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,gDAAgD,aAAa;AAC7D;AACA;AACA;AACA,kBAAkB,8BAAmB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0DAA0D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,mEAAmE;AACpE;AACA;AACA;AACA;AACA;AACA,CAAC,sEAAsE;AACvE;AACA;AACA;AACA;AACA,CAAC,yEAAyE;AAC1E;AACA;AACA;AACA;AACA,CAAC,6GAA6G;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,6DAA6D;AAC9D;AACA;AACA;AACA;AACA;AACA,CAAC,iGAAiG;AAClG;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4EAA4E;AAC7E;AACA;AACA;AACA;AACA,CAAC,kFAAkF;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,gEAAgE;AACjE;AACA;AACA;AACA;AACA,CAAC,uDAAuD;AACxD;AACA;AACA;AACA;AACA,CAAC,0DAA0D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,mEAAmE;AACpE;AACA;AACA;AACA;AACA,CAAC,mEAAmE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kFAAkF;AACnF;AACA;AACA;AACA;AACA;AACA,CAAC,mEAAmE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,6DAA6D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,6GAA6G;AAC9G;AACA;AACA;AACA;AACA;AACA,CAAC,8FAA8F;AAC/F;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,CAAC;AACD;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;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,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,yBAAyB,uBAAuB;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,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,gBAAgB;AAC/D;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,CAAC;AACD;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,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,8BAA8B,IAAI,qCAAqC;AACxH,kDAAkD,8BAA8B,IAAI,qCAAqC;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,CAAC;AACD;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;AACA;AACA;AACA;AACA;AACA;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,yEAAyE;AAC1E;AACA;AACA;AACA;AACA,CAAC,sEAAsE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kFAAkF;AACnF;AACA;AACA;AACA;AACA,CAAC,gHAAgH;AACjH;AACA;AACA;AACA;AACA,CAAC,iGAAiG;AAClG;AACA;AACA;AACA;AACA,CAAC,oDAAoD;AACrD;AACA;AACA;AACA;AACA,CAAC,yEAAyE;AAC1E;AACA;AACA;AACA;AACA,CAAC,kFAAkF;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,CAAC,sEAAsE;AACvE;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,CAAC;AACD;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,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,2FAA2F;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,qFAAqF;AACtF;AACA;AACA;AACA;AACA;AACA,CAAC,mHAAmH;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,OAAO;AACP;AACA,0CAA0C,gCAAmB;;AAE7D;AACA;AACA,gDAAgD,aAAa;AAC7D;AACA,sBAAsB,gCAAmB;AACzC,0BAA0B,gCAAmB;AAC7C,kCAAkC,gCAAmB;AACrD,6BAA6B,gCAAmB;AAChD,+BAA+B,gCAAmB;AAClD,gCAAgC,gCAAmB;AACnD,4BAA4B,gCAAmB;AAC/C,4BAA4B,gCAAmB;AAC/C,yBAAyB,gCAAmB;AAC5C,wBAAwB,gCAAmB;AAC3C,sBAAsB,gCAAmB;AACzC,uBAAuB,gCAAmB;AAC1C,qBAAqB,gCAAmB;AACxC,8BAA8B,gCAAmB;AACjD,4BAA4B,gCAAmB;AAC/C,qCAAqC,gCAAmB;AACxD,kCAAkC,gCAAmB;AACrD,2BAA2B,gCAAmB;AAC9C,0BAA0B,gCAAmB;AAC7C,yBAAyB,gCAAmB;AAC5C,0BAA0B,gCAAmB;AAC7C,gCAAgC,gCAAmB;AACnD,uBAAuB,gCAAmB;AAC1C,gCAAgC,gCAAmB;AACnD,+BAA+B,gCAAmB;AAClD,qBAAqB,gCAAmB;AACxC,sBAAsB,gCAAmB;AACzC,gCAAgC,gCAAmB;AACnD,qCAAqC,gCAAmB;AACxD,6BAA6B,gCAAmB;AAChD,+BAA+B,gCAAmB;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;;;AAGA,OAAO;AACP;AACA,kDAAkD,gCAAmB;;AAErE;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,gDAAgD,aAAa;AAC7D;AACA,gCAAgC,gCAAmB;AACnD,sBAAsB,gCAAmB;AACzC,kBAAkB,gCAAmB;AACrC;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,CAAC;AACD;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,CAAC;AACD;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,CAAC;AACD;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA,gDAAgD,aAAa;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,gBAAgB;AACzE;AACA,8DAA8D,gBAAgB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,gDAAgD,aAAa;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,wBAAwB,kBAAkB;AAC1C;AACA,uDAAuD,gBAAgB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;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,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,CAAC;AACD;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,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;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,iBAAiB;AACjB;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA,kDAAkD,gCAAmB;;AAErE;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,gDAAgD,aAAa;AAC7D;AACA,gCAAgC,gCAAmB;AACnD,sBAAsB,gCAAmB;AACzC,kBAAkB,gCAAmB;AACrC;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;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;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,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,CAAC;AACD;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,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,CAAC;AACD;;;AAGA,OAAO;AACP;AACA,kDAAkD,gCAAmB;;AAErE;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,gDAAgD,aAAa;AAC7D;AACA,gCAAgC,gCAAmB;AACnD,sBAAsB,gCAAmB;AACzC,kBAAkB,gCAAmB;AACrC;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;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;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;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,CAAC;AACD;;;AAGA,OAAO;AACP;AACA,kDAAkD,gCAAmB;;AAErE;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,gDAAgD,aAAa;AAC7D;AACA,gCAAgC,gCAAmB;AACnD,sBAAsB,gCAAmB;AACzC;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;;;AAGA,OAAO;AACP;AACA,kDAAkD,gCAAmB;;AAErE;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,gDAAgD,aAAa;AAC7D;AACA,gCAAgC,gCAAmB;AACnD,sBAAsB,gCAAmB;AACzC,kBAAkB,gCAAmB;AACrC;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;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA,kDAAkD,gCAAmB;;AAErE;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,gDAAgD,aAAa;AAC7D;AACA,gCAAgC,gCAAmB;AACnD,sBAAsB,gCAAmB;AACzC,kBAAkB,gCAAmB;AACrC;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;;;AAGA,OAAO;AACP;AACA,kDAAkD,iCAAmB;;AAErE;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,gDAAgD,aAAa;AAC7D;AACA,gCAAgC,iCAAmB;AACnD,sBAAsB,iCAAmB;AACzC;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,CAAC;AACD;;;AAGA,OAAO;AACP;AACA,kDAAkD,iCAAmB;;AAErE;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,gDAAgD,aAAa;AAC7D;AACA,gCAAgC,iCAAmB;AACnD,sBAAsB,iCAAmB;AACzC,kBAAkB,iCAAmB;AACrC;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,CAAC;AACD;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;AACA;AACA;AACA,CAAC;AACD;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;AACA;AACA;AACA,CAAC;AACD;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,CAAC;AACD;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,CAAC;AACD;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;AACA,aAAa;AACb;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,CAAC;AACD;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;AACA,aAAa;AACb;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,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA,kDAAkD,iCAAmB;;AAErE;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,gDAAgD,aAAa;AAC7D;AACA,gCAAgC,iCAAmB;AACnD,sBAAsB,iCAAmB;AACzC,kBAAkB,iCAAmB;AACrC;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,CAAC;AACD;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,CAAC;AACD;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;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,aAAa;AACb;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,aAAa;AACb;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,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;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,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;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,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;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,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;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,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;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,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;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,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;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,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;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,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;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,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;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,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;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,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;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,CAAC;AACD;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,CAAC;AACD;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,CAAC;AACD;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,CAAC;AACD;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,CAAC;AACD;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,CAAC;AACD;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,CAAC;AACD;;;AAGA,OAAO;AACP;AACA,kDAAkD,iCAAmB;;AAErE;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,gDAAgD,aAAa;AAC7D;AACA,gCAAgC,iCAAmB;AACnD,sBAAsB,iCAAmB;AACzC,kBAAkB,iCAAmB;AACrC;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;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,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;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,CAAC;AACD;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,CAAC;AACD;;;AAGA,OAAO;AACP;AACA,kDAAkD,iCAAmB;;AAErE;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,gDAAgD,aAAa;AAC7D;AACA,gCAAgC,iCAAmB;AACnD,sBAAsB,iCAAmB;AACzC,kBAAkB,iCAAmB;AACrC;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;AACA,aAAa;AACb;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,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,CAAC;AACD;;;AAGA,OAAO;AACP;AACA,kDAAkD,iCAAmB;;AAErE;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,gDAAgD,aAAa;AAC7D;AACA,gCAAgC,iCAAmB;AACnD,sBAAsB,iCAAmB;AACzC,kBAAkB,iCAAmB;AACrC;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;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;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,CAAC;AACD;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,CAAC;AACD;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,CAAC;AACD;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;AACA;AACA;AACA,CAAC;AACD;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;AACA;AACA;AACA,CAAC;AACD;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,CAAC;AACD;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,CAAC;AACD;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,CAAC;AACD;;;AAGA,OAAO;AACP;AACA,kDAAkD,iCAAmB;;AAErE;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,gDAAgD,aAAa;AAC7D;AACA,gCAAgC,iCAAmB;AACnD,sBAAsB,iCAAmB;AACzC,kBAAkB,iCAAmB;AACrC;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;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;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,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;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,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA,kDAAkD,iCAAmB;;AAErE;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,gDAAgD,aAAa;AAC7D;AACA,gCAAgC,iCAAmB;AACnD,sBAAsB,iCAAmB;AACzC,kBAAkB,iCAAmB;AACrC;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;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA,kDAAkD,iCAAmB;;AAErE;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,gDAAgD,aAAa;AAC7D;AACA,gCAAgC,iCAAmB;AACnD,sBAAsB,iCAAmB;AACzC,kBAAkB,iCAAmB;AACrC;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;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA,kDAAkD,iCAAmB;;AAErE;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,gDAAgD,aAAa;AAC7D;AACA,gCAAgC,iCAAmB;AACnD,sBAAsB,iCAAmB;AACzC,kBAAkB,iCAAmB;AACrC;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;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA,kDAAkD,iCAAmB;;AAErE;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,gDAAgD,aAAa;AAC7D;AACA,gCAAgC,iCAAmB;AACnD,sBAAsB,iCAAmB;AACzC,kBAAkB,iCAAmB;AACrC;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;;;AAGA,OAAO;AACP;AACA,kDAAkD,iCAAmB;;AAErE;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,gDAAgD,aAAa;AAC7D;AACA,gCAAgC,iCAAmB;AACnD,sBAAsB,iCAAmB;AACzC,sBAAsB,iCAAmB;AACzC,kBAAkB,iCAAmB;AACrC;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,CAAC;AACD;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,CAAC;AACD;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,CAAC;AACD;;;AAGA,OAAO;AACP;AACA,kDAAkD,iCAAmB;;AAErE;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,gDAAgD,aAAa;AAC7D;AACA,gCAAgC,iCAAmB;AACnD,sBAAsB,iCAAmB;AACzC,kBAAkB,iCAAmB;AACrC;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;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;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,CAAC;AACD;;;AAGA,OAAO;AACP;AACA,kDAAkD,iCAAmB;;AAErE;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,gDAAgD,aAAa;AAC7D;AACA,gCAAgC,iCAAmB;AACnD,sBAAsB,iCAAmB;AACzC,kBAAkB,iCAAmB;AACrC;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,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,CAAC;AACD;;;AAGA,OAAO;AACP;AACA,kDAAkD,iCAAmB;;AAErE;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,gDAAgD,aAAa;AAC7D;AACA,gCAAgC,iCAAmB;AACnD,sBAAsB,iCAAmB;AACzC,kBAAkB,iCAAmB;AACrC;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;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA,kDAAkD,iCAAmB;;AAErE;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,gDAAgD,aAAa;AAC7D;AACA,gCAAgC,iCAAmB;AACnD,sBAAsB,iCAAmB;AACzC,kBAAkB,iCAAmB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;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,CAAC;AACD;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;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA,gDAAgD,aAAa;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,gBAAgB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA,gDAAgD,aAAa;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA,gDAAgD,aAAa;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA,kDAAkD,iCAAmB;;AAErE;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,gDAAgD,aAAa;AAC7D;AACA,sBAAsB,iCAAmB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,gBAAgB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,gBAAgB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA,kDAAkD,iCAAmB;;AAErE;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,gDAAgD,aAAa;AAC7D;AACA,gCAAgC,iCAAmB;AACnD,sBAAsB,iCAAmB;AACzC,kBAAkB,iCAAmB;AACrC;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,CAAC;AACD;;;AAGA,OAAO;AACP;AACA,kDAAkD,iCAAmB;;AAErE;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,gDAAgD,aAAa;AAC7D;AACA,gCAAgC,iCAAmB;AACnD,sBAAsB,iCAAmB;AACzC,kBAAkB,iCAAmB;AACrC;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;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,CAAC;AACD;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,CAAC;AACD;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,CAAC;AACD;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;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,aAAa;AACb;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,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA,kDAAkD,iCAAmB;;AAErE;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,gDAAgD,aAAa;AAC7D;AACA,gCAAgC,iCAAmB;AACnD,sBAAsB,iCAAmB;AACzC,kBAAkB,iCAAmB;AACrC;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;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA,kDAAkD,iCAAmB;;AAErE;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,gDAAgD,aAAa;AAC7D;AACA,gCAAgC,iCAAmB;AACnD,sBAAsB,iCAAmB;AACzC;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;;;AAGA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iCAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,iCAAmB;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,0BAAmB,GAAG,iCAAmB;AACvD;AACA,iBAAiB,0BAAmB;AACpC,UAAU;AACV;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACrkLA;AACA;AACA,IAAI,IAAyD;AAC7D;AACA,MAAM,EAK+B;AACrC,CAAC;AACD,qCAAqC;AACrC;AACA;AACA;AACA;AACA,mBAAmB,8BAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,0EAA0E,8BAAmB;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,8BAAmB;AAC7B;AACA;AACA,UAAU,8BAAmB;AAC7B;AACA;AACA,UAAU,8BAAmB;AAC7B;AACA;AACA,iBAAiB,8BAAmB;AACpC,UAAU;AACV;AACA;AACA;AACA,gCAAgC,+BAAmB;;AAEnD;AACA,uBAAuB,+BAAmB;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,sCAAsC,kBAAkB;AACxD;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,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;;AAGA,OAAO;AACP;AACA,gCAAgC,+BAAmB;;AAEnD,mCAAmC,8CAA8C;AACjF;AACA;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,QAAQ;AACR;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;AACA;AACA;AACA;AACA,qBAAqB,qBAAqB;AAC1C;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;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,gBAAgB;AAChB,QAAQ;AACR;AACA;AACA;AACA;AACA,6BAA6B,KAAK;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,0DAA0D;AAC1D;AACA;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA,6CAA6C,wDAAwD;AACrG;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA,mCAAmC,wDAAwD;AAC3F,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA,mCAAmC,uDAAuD;AAC1F,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,2BAA2B,YAAY;AACvC,8BAA8B;AAC9B;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,qBAAqB,mBAAmB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;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;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;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,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C,aAAa;AACb,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,sCAAsC,KAAK;AAC3C;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,qBAAqB,mBAAmB;AACxC;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA,uBAAuB;AACvB;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,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,mBAAmB;AAC5C;AACA;AACA,0EAA0E;AAC1E;AACA;AACA;AACA;AACA,+CAA+C,yDAAyD;AACxG;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,6CAA6C,yDAAyD;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA,wEAAwE;AACxE;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,kBAAkB;AAC/C;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,sBAAsB,kBAAkB;AACxC;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,QAAQ;AACR;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,eAAe;AAClC;AACA,iCAAiC;AACjC;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC,qCAAqC;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,SAAS,KAAyB,IAAI,+BAAmB;AACzD,sDAAsD,qCAAqC,eAAe,+BAAmB;AAC7H,OAAO;AACP;AACA,OAAO;AACP;AACA;AAC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","sources":["webpack://powerbi-client/webpack/universalModuleDefinition","webpack://powerbi-client/./node_modules/http-post-message/dist/httpPostMessage.js","webpack://powerbi-client/./node_modules/powerbi-models/dist/models.js","webpack://powerbi-client/./node_modules/powerbi-router/dist/router.js","webpack://powerbi-client/./src/FilterBuilders/advancedFilterBuilder.ts","webpack://powerbi-client/./src/FilterBuilders/basicFilterBuilder.ts","webpack://powerbi-client/./src/FilterBuilders/filterBuilder.ts","webpack://powerbi-client/./src/FilterBuilders/index.ts","webpack://powerbi-client/./src/FilterBuilders/relativeDateFilterBuilder.ts","webpack://powerbi-client/./src/FilterBuilders/relativeTimeFilterBuilder.ts","webpack://powerbi-client/./src/FilterBuilders/topNFilterBuilder.ts","webpack://powerbi-client/./src/bookmarksManager.ts","webpack://powerbi-client/./src/config.ts","webpack://powerbi-client/./src/create.ts","webpack://powerbi-client/./src/dashboard.ts","webpack://powerbi-client/./src/embed.ts","webpack://powerbi-client/./src/errors.ts","webpack://powerbi-client/./src/factories.ts","webpack://powerbi-client/./src/page.ts","webpack://powerbi-client/./src/qna.ts","webpack://powerbi-client/./src/quickCreate.ts","webpack://powerbi-client/./src/report.ts","webpack://powerbi-client/./src/service.ts","webpack://powerbi-client/./src/tile.ts","webpack://powerbi-client/./src/util.ts","webpack://powerbi-client/./src/visual.ts","webpack://powerbi-client/./src/visualDescriptor.ts","webpack://powerbi-client/./node_modules/window-post-message-proxy/dist/windowPostMessageProxy.js","webpack://powerbi-client/webpack/bootstrap","webpack://powerbi-client/./src/powerbi-client.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"powerbi-client\"] = factory();\n\telse\n\t\troot[\"powerbi-client\"] = factory();\n})(this, () => {\nreturn ","/*! http-post-message v0.2.3 | (c) 2016 Microsoft Corporation MIT */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"http-post-message\"] = factory();\n\telse\n\t\troot[\"http-post-message\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tvar HttpPostMessage = (function () {\n\t    function HttpPostMessage(windowPostMessageProxy, defaultHeaders, defaultTargetWindow) {\n\t        if (defaultHeaders === void 0) { defaultHeaders = {}; }\n\t        this.defaultHeaders = defaultHeaders;\n\t        this.defaultTargetWindow = defaultTargetWindow;\n\t        this.windowPostMessageProxy = windowPostMessageProxy;\n\t    }\n\t    // TODO: See if it's possible to share tracking properties interface?\n\t    // The responsibility of knowing how to configure windowPostMessageProxy for http should\n\t    // live in this http class, but the configuration would need ITrackingProperties\n\t    // interface which lives in WindowPostMessageProxy. Use <any> type as workaround\n\t    HttpPostMessage.addTrackingProperties = function (message, trackingProperties) {\n\t        message.headers = message.headers || {};\n\t        if (trackingProperties && trackingProperties.id) {\n\t            message.headers.id = trackingProperties.id;\n\t        }\n\t        return message;\n\t    };\n\t    HttpPostMessage.getTrackingProperties = function (message) {\n\t        return {\n\t            id: message.headers && message.headers.id\n\t        };\n\t    };\n\t    HttpPostMessage.isErrorMessage = function (message) {\n\t        if (typeof (message && message.statusCode) !== 'number') {\n\t            return false;\n\t        }\n\t        return !(200 <= message.statusCode && message.statusCode < 300);\n\t    };\n\t    HttpPostMessage.prototype.get = function (url, headers, targetWindow) {\n\t        if (headers === void 0) { headers = {}; }\n\t        if (targetWindow === void 0) { targetWindow = this.defaultTargetWindow; }\n\t        return this.send({\n\t            method: \"GET\",\n\t            url: url,\n\t            headers: headers\n\t        }, targetWindow);\n\t    };\n\t    HttpPostMessage.prototype.post = function (url, body, headers, targetWindow) {\n\t        if (headers === void 0) { headers = {}; }\n\t        if (targetWindow === void 0) { targetWindow = this.defaultTargetWindow; }\n\t        return this.send({\n\t            method: \"POST\",\n\t            url: url,\n\t            headers: headers,\n\t            body: body\n\t        }, targetWindow);\n\t    };\n\t    HttpPostMessage.prototype.put = function (url, body, headers, targetWindow) {\n\t        if (headers === void 0) { headers = {}; }\n\t        if (targetWindow === void 0) { targetWindow = this.defaultTargetWindow; }\n\t        return this.send({\n\t            method: \"PUT\",\n\t            url: url,\n\t            headers: headers,\n\t            body: body\n\t        }, targetWindow);\n\t    };\n\t    HttpPostMessage.prototype.patch = function (url, body, headers, targetWindow) {\n\t        if (headers === void 0) { headers = {}; }\n\t        if (targetWindow === void 0) { targetWindow = this.defaultTargetWindow; }\n\t        return this.send({\n\t            method: \"PATCH\",\n\t            url: url,\n\t            headers: headers,\n\t            body: body\n\t        }, targetWindow);\n\t    };\n\t    HttpPostMessage.prototype.delete = function (url, body, headers, targetWindow) {\n\t        if (body === void 0) { body = null; }\n\t        if (headers === void 0) { headers = {}; }\n\t        if (targetWindow === void 0) { targetWindow = this.defaultTargetWindow; }\n\t        return this.send({\n\t            method: \"DELETE\",\n\t            url: url,\n\t            headers: headers,\n\t            body: body\n\t        }, targetWindow);\n\t    };\n\t    HttpPostMessage.prototype.send = function (request, targetWindow) {\n\t        if (targetWindow === void 0) { targetWindow = this.defaultTargetWindow; }\n\t        request.headers = this.assign({}, this.defaultHeaders, request.headers);\n\t        if (!targetWindow) {\n\t            throw new Error(\"target window is not provided.  You must either provide the target window explicitly as argument to request, or specify default target window when constructing instance of this class.\");\n\t        }\n\t        return this.windowPostMessageProxy.postMessage(targetWindow, request);\n\t    };\n\t    /**\n\t     * Object.assign() polyfill\n\t     * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n\t     */\n\t    HttpPostMessage.prototype.assign = function (target) {\n\t        var sources = [];\n\t        for (var _i = 1; _i < arguments.length; _i++) {\n\t            sources[_i - 1] = arguments[_i];\n\t        }\n\t        if (target === undefined || target === null) {\n\t            throw new TypeError('Cannot convert undefined or null to object');\n\t        }\n\t        var output = Object(target);\n\t        sources.forEach(function (source) {\n\t            if (source !== undefined && source !== null) {\n\t                for (var nextKey in source) {\n\t                    if (Object.prototype.hasOwnProperty.call(source, nextKey)) {\n\t                        output[nextKey] = source[nextKey];\n\t                    }\n\t                }\n\t            }\n\t        });\n\t        return output;\n\t    };\n\t    return HttpPostMessage;\n\t}());\n\texports.HttpPostMessage = HttpPostMessage;\n\n\n/***/ }\n/******/ ])\n});\n;\n//# sourceMappingURL=httpPostMessage.js.map","// powerbi-models v1.12.6\n// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"powerbi-models\"] = factory();\n\telse\n\t\troot[\"powerbi-models\"] = factory();\n})(this, () => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ([\n/* 0 */\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\nvar __extends = (this && this.__extends) || (function () {\r\n    var 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    return function (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\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.TextAlignment = exports.CommonErrorCodes = exports.BookmarksPlayMode = exports.ExportDataType = exports.QnaMode = exports.PageNavigationPosition = exports.BrowserPrintAdjustmentsMode = exports.AggregateFunction = exports.DataCacheMode = exports.CredentialType = exports.isPercentOfGrandTotal = exports.isColumnAggr = exports.isHierarchyLevelAggr = exports.isHierarchyLevel = exports.isColumn = exports.isMeasure = exports.getFilterType = exports.isBasicFilterWithKeys = exports.isFilterKeyColumnsTarget = exports.HierarchyFilter = exports.AdvancedFilter = exports.TupleFilter = exports.IdentityFilter = exports.BasicFilterWithKeys = exports.BasicFilter = exports.RelativeTimeFilter = exports.RelativeDateFilter = exports.TopNFilter = exports.IncludeExcludeFilter = exports.NotSupportedFilter = exports.Filter = exports.RelativeDateOperators = exports.RelativeDateFilterTimeUnit = exports.FilterType = exports.FiltersLevel = exports.FiltersOperations = exports.MenuLocation = exports.ContrastMode = exports.TokenType = exports.ViewMode = exports.Permissions = exports.SectionVisibility = exports.ReportAlignment = exports.HyperlinkClickBehavior = exports.LayoutType = exports.VisualContainerDisplayMode = exports.BackgroundType = exports.DisplayOption = exports.PageSizeType = exports.TraceType = void 0;\r\nexports.validateVisualHeader = exports.validateExportDataRequest = exports.validateQnaInterpretInputData = exports.validateLoadQnaConfiguration = exports.validateSaveAsParameters = exports.validateUpdateFiltersRequest = exports.validateFilter = exports.validatePage = exports.validateTileLoad = exports.validateDashboardLoad = exports.validateQuickCreate = exports.validateCreateReport = exports.validatePaginatedReportLoad = exports.validateReportLoad = exports.validateMenuGroupExtension = exports.validateExtension = exports.validateCustomPageSize = exports.validateVisualizationsPane = exports.validateSyncSlicersPane = exports.validateSelectionPane = exports.validatePageNavigationPane = exports.validateFieldsPane = exports.validateFiltersPane = exports.validateBookmarksPane = exports.validatePanes = exports.validateSettings = exports.validateCaptureBookmarkRequest = exports.validateApplyBookmarkStateRequest = exports.validateApplyBookmarkByNameRequest = exports.validateAddBookmarkRequest = exports.validatePlayBookmarkRequest = exports.validateSlicerState = exports.validateSlicer = exports.validateVisualSelector = exports.isIExtensionArray = exports.isIExtensions = exports.isGroupedMenuExtension = exports.isFlatMenuExtension = exports.isReportFiltersArray = exports.isOnLoadFilters = exports.VisualDataRoleKindPreference = exports.VisualDataRoleKind = exports.CommandDisplayOption = exports.SlicerTargetSelector = exports.VisualTypeSelector = exports.VisualSelector = exports.PageSelector = exports.Selector = exports.SortDirection = exports.LegendPosition = void 0;\r\nexports.validatePrintSettings = exports.validateZoomLevel = exports.validateCustomTheme = exports.validateCommandsSettings = exports.validateVisualSettings = void 0;\r\nvar validator_1 = __webpack_require__(1);\r\nvar TraceType;\r\n(function (TraceType) {\r\n    TraceType[TraceType[\"Information\"] = 0] = \"Information\";\r\n    TraceType[TraceType[\"Verbose\"] = 1] = \"Verbose\";\r\n    TraceType[TraceType[\"Warning\"] = 2] = \"Warning\";\r\n    TraceType[TraceType[\"Error\"] = 3] = \"Error\";\r\n    TraceType[TraceType[\"ExpectedError\"] = 4] = \"ExpectedError\";\r\n    TraceType[TraceType[\"UnexpectedError\"] = 5] = \"UnexpectedError\";\r\n    TraceType[TraceType[\"Fatal\"] = 6] = \"Fatal\";\r\n})(TraceType = exports.TraceType || (exports.TraceType = {}));\r\nvar PageSizeType;\r\n(function (PageSizeType) {\r\n    PageSizeType[PageSizeType[\"Widescreen\"] = 0] = \"Widescreen\";\r\n    PageSizeType[PageSizeType[\"Standard\"] = 1] = \"Standard\";\r\n    PageSizeType[PageSizeType[\"Cortana\"] = 2] = \"Cortana\";\r\n    PageSizeType[PageSizeType[\"Letter\"] = 3] = \"Letter\";\r\n    PageSizeType[PageSizeType[\"Custom\"] = 4] = \"Custom\";\r\n    PageSizeType[PageSizeType[\"Mobile\"] = 5] = \"Mobile\";\r\n})(PageSizeType = exports.PageSizeType || (exports.PageSizeType = {}));\r\nvar DisplayOption;\r\n(function (DisplayOption) {\r\n    DisplayOption[DisplayOption[\"FitToPage\"] = 0] = \"FitToPage\";\r\n    DisplayOption[DisplayOption[\"FitToWidth\"] = 1] = \"FitToWidth\";\r\n    DisplayOption[DisplayOption[\"ActualSize\"] = 2] = \"ActualSize\";\r\n})(DisplayOption = exports.DisplayOption || (exports.DisplayOption = {}));\r\nvar BackgroundType;\r\n(function (BackgroundType) {\r\n    BackgroundType[BackgroundType[\"Default\"] = 0] = \"Default\";\r\n    BackgroundType[BackgroundType[\"Transparent\"] = 1] = \"Transparent\";\r\n})(BackgroundType = exports.BackgroundType || (exports.BackgroundType = {}));\r\nvar VisualContainerDisplayMode;\r\n(function (VisualContainerDisplayMode) {\r\n    VisualContainerDisplayMode[VisualContainerDisplayMode[\"Visible\"] = 0] = \"Visible\";\r\n    VisualContainerDisplayMode[VisualContainerDisplayMode[\"Hidden\"] = 1] = \"Hidden\";\r\n})(VisualContainerDisplayMode = exports.VisualContainerDisplayMode || (exports.VisualContainerDisplayMode = {}));\r\nvar LayoutType;\r\n(function (LayoutType) {\r\n    LayoutType[LayoutType[\"Master\"] = 0] = \"Master\";\r\n    LayoutType[LayoutType[\"Custom\"] = 1] = \"Custom\";\r\n    LayoutType[LayoutType[\"MobilePortrait\"] = 2] = \"MobilePortrait\";\r\n    LayoutType[LayoutType[\"MobileLandscape\"] = 3] = \"MobileLandscape\";\r\n})(LayoutType = exports.LayoutType || (exports.LayoutType = {}));\r\nvar HyperlinkClickBehavior;\r\n(function (HyperlinkClickBehavior) {\r\n    HyperlinkClickBehavior[HyperlinkClickBehavior[\"Navigate\"] = 0] = \"Navigate\";\r\n    HyperlinkClickBehavior[HyperlinkClickBehavior[\"NavigateAndRaiseEvent\"] = 1] = \"NavigateAndRaiseEvent\";\r\n    HyperlinkClickBehavior[HyperlinkClickBehavior[\"RaiseEvent\"] = 2] = \"RaiseEvent\";\r\n})(HyperlinkClickBehavior = exports.HyperlinkClickBehavior || (exports.HyperlinkClickBehavior = {}));\r\nvar ReportAlignment;\r\n(function (ReportAlignment) {\r\n    ReportAlignment[ReportAlignment[\"Left\"] = 0] = \"Left\";\r\n    ReportAlignment[ReportAlignment[\"Center\"] = 1] = \"Center\";\r\n    ReportAlignment[ReportAlignment[\"Right\"] = 2] = \"Right\";\r\n    ReportAlignment[ReportAlignment[\"None\"] = 3] = \"None\";\r\n})(ReportAlignment = exports.ReportAlignment || (exports.ReportAlignment = {}));\r\nvar SectionVisibility;\r\n(function (SectionVisibility) {\r\n    SectionVisibility[SectionVisibility[\"AlwaysVisible\"] = 0] = \"AlwaysVisible\";\r\n    SectionVisibility[SectionVisibility[\"HiddenInViewMode\"] = 1] = \"HiddenInViewMode\";\r\n})(SectionVisibility = exports.SectionVisibility || (exports.SectionVisibility = {}));\r\nvar Permissions;\r\n(function (Permissions) {\r\n    Permissions[Permissions[\"Read\"] = 0] = \"Read\";\r\n    Permissions[Permissions[\"ReadWrite\"] = 1] = \"ReadWrite\";\r\n    Permissions[Permissions[\"Copy\"] = 2] = \"Copy\";\r\n    Permissions[Permissions[\"Create\"] = 4] = \"Create\";\r\n    Permissions[Permissions[\"All\"] = 7] = \"All\";\r\n})(Permissions = exports.Permissions || (exports.Permissions = {}));\r\nvar ViewMode;\r\n(function (ViewMode) {\r\n    ViewMode[ViewMode[\"View\"] = 0] = \"View\";\r\n    ViewMode[ViewMode[\"Edit\"] = 1] = \"Edit\";\r\n})(ViewMode = exports.ViewMode || (exports.ViewMode = {}));\r\nvar TokenType;\r\n(function (TokenType) {\r\n    TokenType[TokenType[\"Aad\"] = 0] = \"Aad\";\r\n    TokenType[TokenType[\"Embed\"] = 1] = \"Embed\";\r\n})(TokenType = exports.TokenType || (exports.TokenType = {}));\r\nvar ContrastMode;\r\n(function (ContrastMode) {\r\n    ContrastMode[ContrastMode[\"None\"] = 0] = \"None\";\r\n    ContrastMode[ContrastMode[\"HighContrast1\"] = 1] = \"HighContrast1\";\r\n    ContrastMode[ContrastMode[\"HighContrast2\"] = 2] = \"HighContrast2\";\r\n    ContrastMode[ContrastMode[\"HighContrastBlack\"] = 3] = \"HighContrastBlack\";\r\n    ContrastMode[ContrastMode[\"HighContrastWhite\"] = 4] = \"HighContrastWhite\";\r\n})(ContrastMode = exports.ContrastMode || (exports.ContrastMode = {}));\r\nvar MenuLocation;\r\n(function (MenuLocation) {\r\n    MenuLocation[MenuLocation[\"Bottom\"] = 0] = \"Bottom\";\r\n    MenuLocation[MenuLocation[\"Top\"] = 1] = \"Top\";\r\n})(MenuLocation = exports.MenuLocation || (exports.MenuLocation = {}));\r\nvar FiltersOperations;\r\n(function (FiltersOperations) {\r\n    FiltersOperations[FiltersOperations[\"RemoveAll\"] = 0] = \"RemoveAll\";\r\n    FiltersOperations[FiltersOperations[\"ReplaceAll\"] = 1] = \"ReplaceAll\";\r\n    FiltersOperations[FiltersOperations[\"Add\"] = 2] = \"Add\";\r\n    FiltersOperations[FiltersOperations[\"Replace\"] = 3] = \"Replace\";\r\n})(FiltersOperations = exports.FiltersOperations || (exports.FiltersOperations = {}));\r\nvar FiltersLevel;\r\n(function (FiltersLevel) {\r\n    FiltersLevel[FiltersLevel[\"Report\"] = 0] = \"Report\";\r\n    FiltersLevel[FiltersLevel[\"Page\"] = 1] = \"Page\";\r\n    FiltersLevel[FiltersLevel[\"Visual\"] = 2] = \"Visual\";\r\n})(FiltersLevel = exports.FiltersLevel || (exports.FiltersLevel = {}));\r\nvar FilterType;\r\n(function (FilterType) {\r\n    FilterType[FilterType[\"Advanced\"] = 0] = \"Advanced\";\r\n    FilterType[FilterType[\"Basic\"] = 1] = \"Basic\";\r\n    FilterType[FilterType[\"Unknown\"] = 2] = \"Unknown\";\r\n    FilterType[FilterType[\"IncludeExclude\"] = 3] = \"IncludeExclude\";\r\n    FilterType[FilterType[\"RelativeDate\"] = 4] = \"RelativeDate\";\r\n    FilterType[FilterType[\"TopN\"] = 5] = \"TopN\";\r\n    FilterType[FilterType[\"Tuple\"] = 6] = \"Tuple\";\r\n    FilterType[FilterType[\"RelativeTime\"] = 7] = \"RelativeTime\";\r\n    FilterType[FilterType[\"Identity\"] = 8] = \"Identity\";\r\n    FilterType[FilterType[\"Hierarchy\"] = 9] = \"Hierarchy\";\r\n})(FilterType = exports.FilterType || (exports.FilterType = {}));\r\nvar RelativeDateFilterTimeUnit;\r\n(function (RelativeDateFilterTimeUnit) {\r\n    RelativeDateFilterTimeUnit[RelativeDateFilterTimeUnit[\"Days\"] = 0] = \"Days\";\r\n    RelativeDateFilterTimeUnit[RelativeDateFilterTimeUnit[\"Weeks\"] = 1] = \"Weeks\";\r\n    RelativeDateFilterTimeUnit[RelativeDateFilterTimeUnit[\"CalendarWeeks\"] = 2] = \"CalendarWeeks\";\r\n    RelativeDateFilterTimeUnit[RelativeDateFilterTimeUnit[\"Months\"] = 3] = \"Months\";\r\n    RelativeDateFilterTimeUnit[RelativeDateFilterTimeUnit[\"CalendarMonths\"] = 4] = \"CalendarMonths\";\r\n    RelativeDateFilterTimeUnit[RelativeDateFilterTimeUnit[\"Years\"] = 5] = \"Years\";\r\n    RelativeDateFilterTimeUnit[RelativeDateFilterTimeUnit[\"CalendarYears\"] = 6] = \"CalendarYears\";\r\n    RelativeDateFilterTimeUnit[RelativeDateFilterTimeUnit[\"Minutes\"] = 7] = \"Minutes\";\r\n    RelativeDateFilterTimeUnit[RelativeDateFilterTimeUnit[\"Hours\"] = 8] = \"Hours\";\r\n})(RelativeDateFilterTimeUnit = exports.RelativeDateFilterTimeUnit || (exports.RelativeDateFilterTimeUnit = {}));\r\nvar RelativeDateOperators;\r\n(function (RelativeDateOperators) {\r\n    RelativeDateOperators[RelativeDateOperators[\"InLast\"] = 0] = \"InLast\";\r\n    RelativeDateOperators[RelativeDateOperators[\"InThis\"] = 1] = \"InThis\";\r\n    RelativeDateOperators[RelativeDateOperators[\"InNext\"] = 2] = \"InNext\";\r\n})(RelativeDateOperators = exports.RelativeDateOperators || (exports.RelativeDateOperators = {}));\r\nvar Filter = /** @class */ (function () {\r\n    function Filter(target, filterType) {\r\n        this.target = target;\r\n        this.filterType = filterType;\r\n    }\r\n    Filter.prototype.toJSON = function () {\r\n        var filter = {\r\n            $schema: this.schemaUrl,\r\n            target: this.target,\r\n            filterType: this.filterType\r\n        };\r\n        // Add displaySettings only when defined\r\n        if (this.displaySettings !== undefined) {\r\n            filter.displaySettings = this.displaySettings;\r\n        }\r\n        return filter;\r\n    };\r\n    return Filter;\r\n}());\r\nexports.Filter = Filter;\r\nvar NotSupportedFilter = /** @class */ (function (_super) {\r\n    __extends(NotSupportedFilter, _super);\r\n    function NotSupportedFilter(target, message, notSupportedTypeName) {\r\n        var _this = _super.call(this, target, FilterType.Unknown) || this;\r\n        _this.message = message;\r\n        _this.notSupportedTypeName = notSupportedTypeName;\r\n        _this.schemaUrl = NotSupportedFilter.schemaUrl;\r\n        return _this;\r\n    }\r\n    NotSupportedFilter.prototype.toJSON = function () {\r\n        var filter = _super.prototype.toJSON.call(this);\r\n        filter.message = this.message;\r\n        filter.notSupportedTypeName = this.notSupportedTypeName;\r\n        return filter;\r\n    };\r\n    NotSupportedFilter.schemaUrl = \"http://powerbi.com/product/schema#notSupported\";\r\n    return NotSupportedFilter;\r\n}(Filter));\r\nexports.NotSupportedFilter = NotSupportedFilter;\r\nvar IncludeExcludeFilter = /** @class */ (function (_super) {\r\n    __extends(IncludeExcludeFilter, _super);\r\n    function IncludeExcludeFilter(target, isExclude, values) {\r\n        var _this = _super.call(this, target, FilterType.IncludeExclude) || this;\r\n        _this.values = values;\r\n        _this.isExclude = isExclude;\r\n        _this.schemaUrl = IncludeExcludeFilter.schemaUrl;\r\n        return _this;\r\n    }\r\n    IncludeExcludeFilter.prototype.toJSON = function () {\r\n        var filter = _super.prototype.toJSON.call(this);\r\n        filter.isExclude = this.isExclude;\r\n        filter.values = this.values;\r\n        return filter;\r\n    };\r\n    IncludeExcludeFilter.schemaUrl = \"http://powerbi.com/product/schema#includeExclude\";\r\n    return IncludeExcludeFilter;\r\n}(Filter));\r\nexports.IncludeExcludeFilter = IncludeExcludeFilter;\r\nvar TopNFilter = /** @class */ (function (_super) {\r\n    __extends(TopNFilter, _super);\r\n    function TopNFilter(target, operator, itemCount, orderBy) {\r\n        var _this = _super.call(this, target, FilterType.TopN) || this;\r\n        _this.operator = operator;\r\n        _this.itemCount = itemCount;\r\n        _this.schemaUrl = TopNFilter.schemaUrl;\r\n        _this.orderBy = orderBy;\r\n        return _this;\r\n    }\r\n    TopNFilter.prototype.toJSON = function () {\r\n        var filter = _super.prototype.toJSON.call(this);\r\n        filter.operator = this.operator;\r\n        filter.itemCount = this.itemCount;\r\n        filter.orderBy = this.orderBy;\r\n        return filter;\r\n    };\r\n    TopNFilter.schemaUrl = \"http://powerbi.com/product/schema#topN\";\r\n    return TopNFilter;\r\n}(Filter));\r\nexports.TopNFilter = TopNFilter;\r\nvar RelativeDateFilter = /** @class */ (function (_super) {\r\n    __extends(RelativeDateFilter, _super);\r\n    function RelativeDateFilter(target, operator, timeUnitsCount, timeUnitType, includeToday) {\r\n        var _this = _super.call(this, target, FilterType.RelativeDate) || this;\r\n        _this.operator = operator;\r\n        _this.timeUnitsCount = timeUnitsCount;\r\n        _this.timeUnitType = timeUnitType;\r\n        _this.includeToday = includeToday;\r\n        _this.schemaUrl = RelativeDateFilter.schemaUrl;\r\n        return _this;\r\n    }\r\n    RelativeDateFilter.prototype.toJSON = function () {\r\n        var filter = _super.prototype.toJSON.call(this);\r\n        filter.operator = this.operator;\r\n        filter.timeUnitsCount = this.timeUnitsCount;\r\n        filter.timeUnitType = this.timeUnitType;\r\n        filter.includeToday = this.includeToday;\r\n        return filter;\r\n    };\r\n    RelativeDateFilter.schemaUrl = \"http://powerbi.com/product/schema#relativeDate\";\r\n    return RelativeDateFilter;\r\n}(Filter));\r\nexports.RelativeDateFilter = RelativeDateFilter;\r\nvar RelativeTimeFilter = /** @class */ (function (_super) {\r\n    __extends(RelativeTimeFilter, _super);\r\n    function RelativeTimeFilter(target, operator, timeUnitsCount, timeUnitType) {\r\n        var _this = _super.call(this, target, FilterType.RelativeTime) || this;\r\n        _this.operator = operator;\r\n        _this.timeUnitsCount = timeUnitsCount;\r\n        _this.timeUnitType = timeUnitType;\r\n        _this.schemaUrl = RelativeTimeFilter.schemaUrl;\r\n        return _this;\r\n    }\r\n    RelativeTimeFilter.prototype.toJSON = function () {\r\n        var filter = _super.prototype.toJSON.call(this);\r\n        filter.operator = this.operator;\r\n        filter.timeUnitsCount = this.timeUnitsCount;\r\n        filter.timeUnitType = this.timeUnitType;\r\n        return filter;\r\n    };\r\n    RelativeTimeFilter.schemaUrl = \"http://powerbi.com/product/schema#relativeTime\";\r\n    return RelativeTimeFilter;\r\n}(Filter));\r\nexports.RelativeTimeFilter = RelativeTimeFilter;\r\nvar BasicFilter = /** @class */ (function (_super) {\r\n    __extends(BasicFilter, _super);\r\n    function BasicFilter(target, operator) {\r\n        var values = [];\r\n        for (var _i = 2; _i < arguments.length; _i++) {\r\n            values[_i - 2] = arguments[_i];\r\n        }\r\n        var _this = _super.call(this, target, FilterType.Basic) || this;\r\n        _this.operator = operator;\r\n        _this.schemaUrl = BasicFilter.schemaUrl;\r\n        if (values.length === 0 && operator !== \"All\") {\r\n            throw new Error(\"values must be a non-empty array unless your operator is \\\"All\\\".\");\r\n        }\r\n        /**\r\n         * Accept values as array instead of as individual arguments\r\n         * new BasicFilter('a', 'b', 1, 2);\r\n         * new BasicFilter('a', 'b', [1,2]);\r\n         */\r\n        if (Array.isArray(values[0])) {\r\n            // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\r\n            _this.values = values[0];\r\n        }\r\n        else {\r\n            _this.values = values;\r\n        }\r\n        return _this;\r\n    }\r\n    BasicFilter.prototype.toJSON = function () {\r\n        var filter = _super.prototype.toJSON.call(this);\r\n        filter.operator = this.operator;\r\n        filter.values = this.values;\r\n        filter.requireSingleSelection = !!this.requireSingleSelection;\r\n        return filter;\r\n    };\r\n    BasicFilter.schemaUrl = \"http://powerbi.com/product/schema#basic\";\r\n    return BasicFilter;\r\n}(Filter));\r\nexports.BasicFilter = BasicFilter;\r\nvar BasicFilterWithKeys = /** @class */ (function (_super) {\r\n    __extends(BasicFilterWithKeys, _super);\r\n    function BasicFilterWithKeys(target, operator, values, keyValues) {\r\n        var _this = _super.call(this, target, operator, values) || this;\r\n        _this.keyValues = keyValues;\r\n        _this.target = target;\r\n        var numberOfKeys = target.keys ? target.keys.length : 0;\r\n        if (numberOfKeys > 0 && !keyValues) {\r\n            throw new Error(\"You should pass the values to be filtered for each key. You passed: no values and \".concat(numberOfKeys, \" keys\"));\r\n        }\r\n        if (numberOfKeys === 0 && keyValues && keyValues.length > 0) {\r\n            throw new Error(\"You passed key values but your target object doesn't contain the keys to be filtered\");\r\n        }\r\n        for (var _i = 0, _a = _this.keyValues; _i < _a.length; _i++) {\r\n            var keyValue = _a[_i];\r\n            if (keyValue) {\r\n                var lengthOfArray = keyValue.length;\r\n                if (lengthOfArray !== numberOfKeys) {\r\n                    throw new Error(\"Each tuple of key values should contain a value for each of the keys. You passed: \".concat(lengthOfArray, \" values and \").concat(numberOfKeys, \" keys\"));\r\n                }\r\n            }\r\n        }\r\n        return _this;\r\n    }\r\n    BasicFilterWithKeys.prototype.toJSON = function () {\r\n        var filter = _super.prototype.toJSON.call(this);\r\n        filter.keyValues = this.keyValues;\r\n        return filter;\r\n    };\r\n    return BasicFilterWithKeys;\r\n}(BasicFilter));\r\nexports.BasicFilterWithKeys = BasicFilterWithKeys;\r\nvar IdentityFilter = /** @class */ (function (_super) {\r\n    __extends(IdentityFilter, _super);\r\n    function IdentityFilter(target, operator) {\r\n        var _this = _super.call(this, target, FilterType.Identity) || this;\r\n        _this.operator = operator;\r\n        _this.schemaUrl = IdentityFilter.schemaUrl;\r\n        return _this;\r\n    }\r\n    IdentityFilter.prototype.toJSON = function () {\r\n        var filter = _super.prototype.toJSON.call(this);\r\n        filter.operator = this.operator;\r\n        filter.target = this.target;\r\n        return filter;\r\n    };\r\n    IdentityFilter.schemaUrl = \"http://powerbi.com/product/schema#identity\";\r\n    return IdentityFilter;\r\n}(Filter));\r\nexports.IdentityFilter = IdentityFilter;\r\nvar TupleFilter = /** @class */ (function (_super) {\r\n    __extends(TupleFilter, _super);\r\n    function TupleFilter(target, operator, values) {\r\n        var _this = _super.call(this, target, FilterType.Tuple) || this;\r\n        _this.operator = operator;\r\n        _this.schemaUrl = TupleFilter.schemaUrl;\r\n        _this.values = values;\r\n        return _this;\r\n    }\r\n    TupleFilter.prototype.toJSON = function () {\r\n        var filter = _super.prototype.toJSON.call(this);\r\n        filter.operator = this.operator;\r\n        filter.values = this.values;\r\n        filter.target = this.target;\r\n        return filter;\r\n    };\r\n    TupleFilter.schemaUrl = \"http://powerbi.com/product/schema#tuple\";\r\n    return TupleFilter;\r\n}(Filter));\r\nexports.TupleFilter = TupleFilter;\r\nvar AdvancedFilter = /** @class */ (function (_super) {\r\n    __extends(AdvancedFilter, _super);\r\n    function AdvancedFilter(target, logicalOperator) {\r\n        var conditions = [];\r\n        for (var _i = 2; _i < arguments.length; _i++) {\r\n            conditions[_i - 2] = arguments[_i];\r\n        }\r\n        var _this = _super.call(this, target, FilterType.Advanced) || this;\r\n        _this.schemaUrl = AdvancedFilter.schemaUrl;\r\n        // Guard statements\r\n        if (typeof logicalOperator !== \"string\" || logicalOperator.length === 0) {\r\n            // TODO: It would be nicer to list out the possible logical operators.\r\n            throw new Error(\"logicalOperator must be a valid operator, You passed: \".concat(logicalOperator));\r\n        }\r\n        _this.logicalOperator = logicalOperator;\r\n        var extractedConditions;\r\n        /**\r\n         * Accept conditions as array instead of as individual arguments\r\n         * new AdvancedFilter('a', 'b', \"And\", { value: 1, operator: \"Equals\" }, { value: 2, operator: \"IsGreaterThan\" });\r\n         * new AdvancedFilter('a', 'b', \"And\", [{ value: 1, operator: \"Equals\" }, { value: 2, operator: \"IsGreaterThan\" }]);\r\n         */\r\n        if (Array.isArray(conditions[0])) {\r\n            // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\r\n            extractedConditions = conditions[0];\r\n        }\r\n        else {\r\n            extractedConditions = conditions;\r\n        }\r\n        if (extractedConditions.length > 2) {\r\n            throw new Error(\"AdvancedFilters may not have more than two conditions. You passed: \".concat(conditions.length));\r\n        }\r\n        if (extractedConditions.length === 1 && logicalOperator !== \"And\") {\r\n            throw new Error(\"Logical Operator must be \\\"And\\\" when there is only one condition provided\");\r\n        }\r\n        _this.conditions = extractedConditions;\r\n        return _this;\r\n    }\r\n    AdvancedFilter.prototype.toJSON = function () {\r\n        var filter = _super.prototype.toJSON.call(this);\r\n        filter.logicalOperator = this.logicalOperator;\r\n        filter.conditions = this.conditions;\r\n        return filter;\r\n    };\r\n    AdvancedFilter.schemaUrl = \"http://powerbi.com/product/schema#advanced\";\r\n    return AdvancedFilter;\r\n}(Filter));\r\nexports.AdvancedFilter = AdvancedFilter;\r\nvar HierarchyFilter = /** @class */ (function (_super) {\r\n    __extends(HierarchyFilter, _super);\r\n    function HierarchyFilter(target, hierarchyData) {\r\n        var _this = _super.call(this, target, FilterType.Hierarchy) || this;\r\n        _this.schemaUrl = HierarchyFilter.schemaUrl;\r\n        _this.hierarchyData = hierarchyData;\r\n        return _this;\r\n    }\r\n    HierarchyFilter.prototype.toJSON = function () {\r\n        var filter = _super.prototype.toJSON.call(this);\r\n        filter.hierarchyData = this.hierarchyData;\r\n        filter.target = this.target;\r\n        return filter;\r\n    };\r\n    HierarchyFilter.schemaUrl = \"http://powerbi.com/product/schema#hierarchy\";\r\n    return HierarchyFilter;\r\n}(Filter));\r\nexports.HierarchyFilter = HierarchyFilter;\r\nfunction isFilterKeyColumnsTarget(target) {\r\n    return isColumn(target) && !!target.keys;\r\n}\r\nexports.isFilterKeyColumnsTarget = isFilterKeyColumnsTarget;\r\nfunction isBasicFilterWithKeys(filter) {\r\n    return getFilterType(filter) === FilterType.Basic && !!filter.keyValues;\r\n}\r\nexports.isBasicFilterWithKeys = isBasicFilterWithKeys;\r\nfunction getFilterType(filter) {\r\n    if (filter.filterType) {\r\n        return filter.filterType;\r\n    }\r\n    var basicFilter = filter;\r\n    var advancedFilter = filter;\r\n    if ((typeof basicFilter.operator === \"string\")\r\n        && (Array.isArray(basicFilter.values))) {\r\n        return FilterType.Basic;\r\n    }\r\n    else if ((typeof advancedFilter.logicalOperator === \"string\")\r\n        && (Array.isArray(advancedFilter.conditions))) {\r\n        return FilterType.Advanced;\r\n    }\r\n    else {\r\n        return FilterType.Unknown;\r\n    }\r\n}\r\nexports.getFilterType = getFilterType;\r\nfunction isMeasure(arg) {\r\n    return arg.table !== undefined && arg.measure !== undefined;\r\n}\r\nexports.isMeasure = isMeasure;\r\nfunction isColumn(arg) {\r\n    return !!(arg.table && arg.column && !arg.aggregationFunction);\r\n}\r\nexports.isColumn = isColumn;\r\nfunction isHierarchyLevel(arg) {\r\n    return !!(arg.table && arg.hierarchy && arg.hierarchyLevel && !arg.aggregationFunction);\r\n}\r\nexports.isHierarchyLevel = isHierarchyLevel;\r\nfunction isHierarchyLevelAggr(arg) {\r\n    return !!(arg.table && arg.hierarchy && arg.hierarchyLevel && arg.aggregationFunction);\r\n}\r\nexports.isHierarchyLevelAggr = isHierarchyLevelAggr;\r\nfunction isColumnAggr(arg) {\r\n    return !!(arg.table && arg.column && arg.aggregationFunction);\r\n}\r\nexports.isColumnAggr = isColumnAggr;\r\nfunction isPercentOfGrandTotal(arg) {\r\n    return !!arg.percentOfGrandTotal;\r\n}\r\nexports.isPercentOfGrandTotal = isPercentOfGrandTotal;\r\nvar CredentialType;\r\n(function (CredentialType) {\r\n    CredentialType[CredentialType[\"NoConnection\"] = 0] = \"NoConnection\";\r\n    CredentialType[CredentialType[\"OnBehalfOf\"] = 1] = \"OnBehalfOf\";\r\n    CredentialType[CredentialType[\"Anonymous\"] = 2] = \"Anonymous\";\r\n})(CredentialType = exports.CredentialType || (exports.CredentialType = {}));\r\nvar DataCacheMode;\r\n(function (DataCacheMode) {\r\n    DataCacheMode[DataCacheMode[\"Import\"] = 0] = \"Import\";\r\n    DataCacheMode[DataCacheMode[\"DirectQuery\"] = 1] = \"DirectQuery\";\r\n})(DataCacheMode = exports.DataCacheMode || (exports.DataCacheMode = {}));\r\nvar AggregateFunction;\r\n(function (AggregateFunction) {\r\n    AggregateFunction[AggregateFunction[\"Default\"] = 1] = \"Default\";\r\n    AggregateFunction[AggregateFunction[\"None\"] = 2] = \"None\";\r\n    AggregateFunction[AggregateFunction[\"Sum\"] = 3] = \"Sum\";\r\n    AggregateFunction[AggregateFunction[\"Min\"] = 4] = \"Min\";\r\n    AggregateFunction[AggregateFunction[\"Max\"] = 5] = \"Max\";\r\n    AggregateFunction[AggregateFunction[\"Count\"] = 6] = \"Count\";\r\n    AggregateFunction[AggregateFunction[\"Average\"] = 7] = \"Average\";\r\n    AggregateFunction[AggregateFunction[\"DistinctCount\"] = 8] = \"DistinctCount\";\r\n})(AggregateFunction = exports.AggregateFunction || (exports.AggregateFunction = {}));\r\nvar BrowserPrintAdjustmentsMode;\r\n(function (BrowserPrintAdjustmentsMode) {\r\n    BrowserPrintAdjustmentsMode[BrowserPrintAdjustmentsMode[\"Default\"] = 0] = \"Default\";\r\n    BrowserPrintAdjustmentsMode[BrowserPrintAdjustmentsMode[\"NoAdjustments\"] = 1] = \"NoAdjustments\";\r\n})(BrowserPrintAdjustmentsMode = exports.BrowserPrintAdjustmentsMode || (exports.BrowserPrintAdjustmentsMode = {}));\r\nvar PageNavigationPosition;\r\n(function (PageNavigationPosition) {\r\n    PageNavigationPosition[PageNavigationPosition[\"Bottom\"] = 0] = \"Bottom\";\r\n    PageNavigationPosition[PageNavigationPosition[\"Left\"] = 1] = \"Left\";\r\n})(PageNavigationPosition = exports.PageNavigationPosition || (exports.PageNavigationPosition = {}));\r\nvar QnaMode;\r\n(function (QnaMode) {\r\n    QnaMode[QnaMode[\"Interactive\"] = 0] = \"Interactive\";\r\n    QnaMode[QnaMode[\"ResultOnly\"] = 1] = \"ResultOnly\";\r\n})(QnaMode = exports.QnaMode || (exports.QnaMode = {}));\r\nvar ExportDataType;\r\n(function (ExportDataType) {\r\n    ExportDataType[ExportDataType[\"Summarized\"] = 0] = \"Summarized\";\r\n    ExportDataType[ExportDataType[\"Underlying\"] = 1] = \"Underlying\";\r\n})(ExportDataType = exports.ExportDataType || (exports.ExportDataType = {}));\r\nvar BookmarksPlayMode;\r\n(function (BookmarksPlayMode) {\r\n    BookmarksPlayMode[BookmarksPlayMode[\"Off\"] = 0] = \"Off\";\r\n    BookmarksPlayMode[BookmarksPlayMode[\"Presentation\"] = 1] = \"Presentation\";\r\n})(BookmarksPlayMode = exports.BookmarksPlayMode || (exports.BookmarksPlayMode = {}));\r\n// This is not an enum because enum strings require\r\n// us to upgrade typeScript version and change SDK build definition\r\nexports.CommonErrorCodes = {\r\n    TokenExpired: 'TokenExpired',\r\n    NotFound: 'PowerBIEntityNotFound',\r\n    InvalidParameters: 'Invalid parameters',\r\n    LoadReportFailed: 'LoadReportFailed',\r\n    NotAuthorized: 'PowerBINotAuthorizedException',\r\n    FailedToLoadModel: 'ExplorationContainer_FailedToLoadModel_DefaultDetails',\r\n};\r\nexports.TextAlignment = {\r\n    Left: 'left',\r\n    Center: 'center',\r\n    Right: 'right',\r\n};\r\nexports.LegendPosition = {\r\n    Top: 'Top',\r\n    Bottom: 'Bottom',\r\n    Right: 'Right',\r\n    Left: 'Left',\r\n    TopCenter: 'TopCenter',\r\n    BottomCenter: 'BottomCenter',\r\n    RightCenter: 'RightCenter',\r\n    LeftCenter: 'LeftCenter',\r\n};\r\nvar SortDirection;\r\n(function (SortDirection) {\r\n    SortDirection[SortDirection[\"Ascending\"] = 1] = \"Ascending\";\r\n    SortDirection[SortDirection[\"Descending\"] = 2] = \"Descending\";\r\n})(SortDirection = exports.SortDirection || (exports.SortDirection = {}));\r\nvar Selector = /** @class */ (function () {\r\n    function Selector(schema) {\r\n        this.$schema = schema;\r\n    }\r\n    Selector.prototype.toJSON = function () {\r\n        return {\r\n            $schema: this.$schema\r\n        };\r\n    };\r\n    return Selector;\r\n}());\r\nexports.Selector = Selector;\r\nvar PageSelector = /** @class */ (function (_super) {\r\n    __extends(PageSelector, _super);\r\n    function PageSelector(pageName) {\r\n        var _this = _super.call(this, PageSelector.schemaUrl) || this;\r\n        _this.pageName = pageName;\r\n        return _this;\r\n    }\r\n    PageSelector.prototype.toJSON = function () {\r\n        var selector = _super.prototype.toJSON.call(this);\r\n        selector.pageName = this.pageName;\r\n        return selector;\r\n    };\r\n    PageSelector.schemaUrl = \"http://powerbi.com/product/schema#pageSelector\";\r\n    return PageSelector;\r\n}(Selector));\r\nexports.PageSelector = PageSelector;\r\nvar VisualSelector = /** @class */ (function (_super) {\r\n    __extends(VisualSelector, _super);\r\n    function VisualSelector(visualName) {\r\n        var _this = _super.call(this, VisualSelector.schemaUrl) || this;\r\n        _this.visualName = visualName;\r\n        return _this;\r\n    }\r\n    VisualSelector.prototype.toJSON = function () {\r\n        var selector = _super.prototype.toJSON.call(this);\r\n        selector.visualName = this.visualName;\r\n        return selector;\r\n    };\r\n    VisualSelector.schemaUrl = \"http://powerbi.com/product/schema#visualSelector\";\r\n    return VisualSelector;\r\n}(Selector));\r\nexports.VisualSelector = VisualSelector;\r\nvar VisualTypeSelector = /** @class */ (function (_super) {\r\n    __extends(VisualTypeSelector, _super);\r\n    function VisualTypeSelector(visualType) {\r\n        var _this = _super.call(this, VisualSelector.schemaUrl) || this;\r\n        _this.visualType = visualType;\r\n        return _this;\r\n    }\r\n    VisualTypeSelector.prototype.toJSON = function () {\r\n        var selector = _super.prototype.toJSON.call(this);\r\n        selector.visualType = this.visualType;\r\n        return selector;\r\n    };\r\n    VisualTypeSelector.schemaUrl = \"http://powerbi.com/product/schema#visualTypeSelector\";\r\n    return VisualTypeSelector;\r\n}(Selector));\r\nexports.VisualTypeSelector = VisualTypeSelector;\r\nvar SlicerTargetSelector = /** @class */ (function (_super) {\r\n    __extends(SlicerTargetSelector, _super);\r\n    function SlicerTargetSelector(target) {\r\n        var _this = _super.call(this, VisualSelector.schemaUrl) || this;\r\n        _this.target = target;\r\n        return _this;\r\n    }\r\n    SlicerTargetSelector.prototype.toJSON = function () {\r\n        var selector = _super.prototype.toJSON.call(this);\r\n        selector.target = this.target;\r\n        return selector;\r\n    };\r\n    SlicerTargetSelector.schemaUrl = \"http://powerbi.com/product/schema#slicerTargetSelector\";\r\n    return SlicerTargetSelector;\r\n}(Selector));\r\nexports.SlicerTargetSelector = SlicerTargetSelector;\r\nvar CommandDisplayOption;\r\n(function (CommandDisplayOption) {\r\n    CommandDisplayOption[CommandDisplayOption[\"Enabled\"] = 0] = \"Enabled\";\r\n    CommandDisplayOption[CommandDisplayOption[\"Disabled\"] = 1] = \"Disabled\";\r\n    CommandDisplayOption[CommandDisplayOption[\"Hidden\"] = 2] = \"Hidden\";\r\n})(CommandDisplayOption = exports.CommandDisplayOption || (exports.CommandDisplayOption = {}));\r\n/*\r\n * Visual CRUD\r\n */\r\nvar VisualDataRoleKind;\r\n(function (VisualDataRoleKind) {\r\n    // Indicates that the role should be bound to something that evaluates to a grouping of values.\r\n    VisualDataRoleKind[VisualDataRoleKind[\"Grouping\"] = 0] = \"Grouping\";\r\n    // Indicates that the role should be bound to something that evaluates to a single value in a scope.\r\n    VisualDataRoleKind[VisualDataRoleKind[\"Measure\"] = 1] = \"Measure\";\r\n    // Indicates that the role can be bound to either Grouping or Measure.\r\n    VisualDataRoleKind[VisualDataRoleKind[\"GroupingOrMeasure\"] = 2] = \"GroupingOrMeasure\";\r\n})(VisualDataRoleKind = exports.VisualDataRoleKind || (exports.VisualDataRoleKind = {}));\r\n// Indicates the visual preference on Grouping or Measure. Only applicable if kind is GroupingOrMeasure.\r\nvar VisualDataRoleKindPreference;\r\n(function (VisualDataRoleKindPreference) {\r\n    VisualDataRoleKindPreference[VisualDataRoleKindPreference[\"Measure\"] = 0] = \"Measure\";\r\n    VisualDataRoleKindPreference[VisualDataRoleKindPreference[\"Grouping\"] = 1] = \"Grouping\";\r\n})(VisualDataRoleKindPreference = exports.VisualDataRoleKindPreference || (exports.VisualDataRoleKindPreference = {}));\r\nfunction isOnLoadFilters(filters) {\r\n    return filters && !isReportFiltersArray(filters);\r\n}\r\nexports.isOnLoadFilters = isOnLoadFilters;\r\nfunction isReportFiltersArray(filters) {\r\n    return Array.isArray(filters);\r\n}\r\nexports.isReportFiltersArray = isReportFiltersArray;\r\nfunction isFlatMenuExtension(menuExtension) {\r\n    return menuExtension && !isGroupedMenuExtension(menuExtension);\r\n}\r\nexports.isFlatMenuExtension = isFlatMenuExtension;\r\nfunction isGroupedMenuExtension(menuExtension) {\r\n    return menuExtension && !!menuExtension.groupName;\r\n}\r\nexports.isGroupedMenuExtension = isGroupedMenuExtension;\r\nfunction isIExtensions(extensions) {\r\n    return extensions && !isIExtensionArray(extensions);\r\n}\r\nexports.isIExtensions = isIExtensions;\r\nfunction isIExtensionArray(extensions) {\r\n    return Array.isArray(extensions);\r\n}\r\nexports.isIExtensionArray = isIExtensionArray;\r\nfunction normalizeError(error) {\r\n    var message = error.message;\r\n    if (!message) {\r\n        message = \"\".concat(error.path, \" is invalid. Not meeting \").concat(error.keyword, \" constraint\");\r\n    }\r\n    return {\r\n        message: message\r\n    };\r\n}\r\nfunction validateVisualSelector(input) {\r\n    var errors = validator_1.Validators.visualSelectorValidator.validate(input);\r\n    return errors ? errors.map(normalizeError) : undefined;\r\n}\r\nexports.validateVisualSelector = validateVisualSelector;\r\nfunction validateSlicer(input) {\r\n    var errors = validator_1.Validators.slicerValidator.validate(input);\r\n    return errors ? errors.map(normalizeError) : undefined;\r\n}\r\nexports.validateSlicer = validateSlicer;\r\nfunction validateSlicerState(input) {\r\n    var errors = validator_1.Validators.slicerStateValidator.validate(input);\r\n    return errors ? errors.map(normalizeError) : undefined;\r\n}\r\nexports.validateSlicerState = validateSlicerState;\r\nfunction validatePlayBookmarkRequest(input) {\r\n    var errors = validator_1.Validators.playBookmarkRequestValidator.validate(input);\r\n    return errors ? errors.map(normalizeError) : undefined;\r\n}\r\nexports.validatePlayBookmarkRequest = validatePlayBookmarkRequest;\r\nfunction validateAddBookmarkRequest(input) {\r\n    var errors = validator_1.Validators.addBookmarkRequestValidator.validate(input);\r\n    return errors ? errors.map(normalizeError) : undefined;\r\n}\r\nexports.validateAddBookmarkRequest = validateAddBookmarkRequest;\r\nfunction validateApplyBookmarkByNameRequest(input) {\r\n    var errors = validator_1.Validators.applyBookmarkByNameRequestValidator.validate(input);\r\n    return errors ? errors.map(normalizeError) : undefined;\r\n}\r\nexports.validateApplyBookmarkByNameRequest = validateApplyBookmarkByNameRequest;\r\nfunction validateApplyBookmarkStateRequest(input) {\r\n    var errors = validator_1.Validators.applyBookmarkStateRequestValidator.validate(input);\r\n    return errors ? errors.map(normalizeError) : undefined;\r\n}\r\nexports.validateApplyBookmarkStateRequest = validateApplyBookmarkStateRequest;\r\nfunction validateCaptureBookmarkRequest(input) {\r\n    var errors = validator_1.Validators.captureBookmarkRequestValidator.validate(input);\r\n    return errors ? errors.map(normalizeError) : undefined;\r\n}\r\nexports.validateCaptureBookmarkRequest = validateCaptureBookmarkRequest;\r\nfunction validateSettings(input) {\r\n    var errors = validator_1.Validators.settingsValidator.validate(input);\r\n    return errors ? errors.map(normalizeError) : undefined;\r\n}\r\nexports.validateSettings = validateSettings;\r\nfunction validatePanes(input) {\r\n    var errors = validator_1.Validators.reportPanesValidator.validate(input);\r\n    return errors ? errors.map(normalizeError) : undefined;\r\n}\r\nexports.validatePanes = validatePanes;\r\nfunction validateBookmarksPane(input) {\r\n    var errors = validator_1.Validators.bookmarksPaneValidator.validate(input);\r\n    return errors ? errors.map(normalizeError) : undefined;\r\n}\r\nexports.validateBookmarksPane = validateBookmarksPane;\r\nfunction validateFiltersPane(input) {\r\n    var errors = validator_1.Validators.filtersPaneValidator.validate(input);\r\n    return errors ? errors.map(normalizeError) : undefined;\r\n}\r\nexports.validateFiltersPane = validateFiltersPane;\r\nfunction validateFieldsPane(input) {\r\n    var errors = validator_1.Validators.fieldsPaneValidator.validate(input);\r\n    return errors ? errors.map(normalizeError) : undefined;\r\n}\r\nexports.validateFieldsPane = validateFieldsPane;\r\nfunction validatePageNavigationPane(input) {\r\n    var errors = validator_1.Validators.pageNavigationPaneValidator.validate(input);\r\n    return errors ? errors.map(normalizeError) : undefined;\r\n}\r\nexports.validatePageNavigationPane = validatePageNavigationPane;\r\nfunction validateSelectionPane(input) {\r\n    var errors = validator_1.Validators.selectionPaneValidator.validate(input);\r\n    return errors ? errors.map(normalizeError) : undefined;\r\n}\r\nexports.validateSelectionPane = validateSelectionPane;\r\nfunction validateSyncSlicersPane(input) {\r\n    var errors = validator_1.Validators.syncSlicersPaneValidator.validate(input);\r\n    return errors ? errors.map(normalizeError) : undefined;\r\n}\r\nexports.validateSyncSlicersPane = validateSyncSlicersPane;\r\nfunction validateVisualizationsPane(input) {\r\n    var errors = validator_1.Validators.visualizationsPaneValidator.validate(input);\r\n    return errors ? errors.map(normalizeError) : undefined;\r\n}\r\nexports.validateVisualizationsPane = validateVisualizationsPane;\r\nfunction validateCustomPageSize(input) {\r\n    var errors = validator_1.Validators.customPageSizeValidator.validate(input);\r\n    return errors ? errors.map(normalizeError) : undefined;\r\n}\r\nexports.validateCustomPageSize = validateCustomPageSize;\r\nfunction validateExtension(input) {\r\n    var errors = validator_1.Validators.extensionValidator.validate(input);\r\n    return errors ? errors.map(normalizeError) : undefined;\r\n}\r\nexports.validateExtension = validateExtension;\r\nfunction validateMenuGroupExtension(input) {\r\n    var errors = validator_1.Validators.menuGroupExtensionValidator.validate(input);\r\n    return errors ? errors.map(normalizeError) : undefined;\r\n}\r\nexports.validateMenuGroupExtension = validateMenuGroupExtension;\r\nfunction validateReportLoad(input) {\r\n    var errors = validator_1.Validators.reportLoadValidator.validate(input);\r\n    return errors ? errors.map(normalizeError) : undefined;\r\n}\r\nexports.validateReportLoad = validateReportLoad;\r\nfunction validatePaginatedReportLoad(input) {\r\n    var errors = validator_1.Validators.paginatedReportLoadValidator.validate(input);\r\n    return errors ? errors.map(normalizeError) : undefined;\r\n}\r\nexports.validatePaginatedReportLoad = validatePaginatedReportLoad;\r\nfunction validateCreateReport(input) {\r\n    var errors = validator_1.Validators.reportCreateValidator.validate(input);\r\n    return errors ? errors.map(normalizeError) : undefined;\r\n}\r\nexports.validateCreateReport = validateCreateReport;\r\nfunction validateQuickCreate(input) {\r\n    var errors = validator_1.Validators.quickCreateValidator.validate(input);\r\n    return errors ? errors.map(normalizeError) : undefined;\r\n}\r\nexports.validateQuickCreate = validateQuickCreate;\r\nfunction validateDashboardLoad(input) {\r\n    var errors = validator_1.Validators.dashboardLoadValidator.validate(input);\r\n    return errors ? errors.map(normalizeError) : undefined;\r\n}\r\nexports.validateDashboardLoad = validateDashboardLoad;\r\nfunction validateTileLoad(input) {\r\n    var errors = validator_1.Validators.tileLoadValidator.validate(input);\r\n    return errors ? errors.map(normalizeError) : undefined;\r\n}\r\nexports.validateTileLoad = validateTileLoad;\r\nfunction validatePage(input) {\r\n    var errors = validator_1.Validators.pageValidator.validate(input);\r\n    return errors ? errors.map(normalizeError) : undefined;\r\n}\r\nexports.validatePage = validatePage;\r\nfunction validateFilter(input) {\r\n    var errors = validator_1.Validators.filterValidator.validate(input);\r\n    return errors ? errors.map(normalizeError) : undefined;\r\n}\r\nexports.validateFilter = validateFilter;\r\nfunction validateUpdateFiltersRequest(input) {\r\n    var errors = validator_1.Validators.updateFiltersRequestValidator.validate(input);\r\n    return errors ? errors.map(normalizeError) : undefined;\r\n}\r\nexports.validateUpdateFiltersRequest = validateUpdateFiltersRequest;\r\nfunction validateSaveAsParameters(input) {\r\n    var errors = validator_1.Validators.saveAsParametersValidator.validate(input);\r\n    return errors ? errors.map(normalizeError) : undefined;\r\n}\r\nexports.validateSaveAsParameters = validateSaveAsParameters;\r\nfunction validateLoadQnaConfiguration(input) {\r\n    var errors = validator_1.Validators.loadQnaValidator.validate(input);\r\n    return errors ? errors.map(normalizeError) : undefined;\r\n}\r\nexports.validateLoadQnaConfiguration = validateLoadQnaConfiguration;\r\nfunction validateQnaInterpretInputData(input) {\r\n    var errors = validator_1.Validators.qnaInterpretInputDataValidator.validate(input);\r\n    return errors ? errors.map(normalizeError) : undefined;\r\n}\r\nexports.validateQnaInterpretInputData = validateQnaInterpretInputData;\r\nfunction validateExportDataRequest(input) {\r\n    var errors = validator_1.Validators.exportDataRequestValidator.validate(input);\r\n    return errors ? errors.map(normalizeError) : undefined;\r\n}\r\nexports.validateExportDataRequest = validateExportDataRequest;\r\nfunction validateVisualHeader(input) {\r\n    var errors = validator_1.Validators.visualHeaderValidator.validate(input);\r\n    return errors ? errors.map(normalizeError) : undefined;\r\n}\r\nexports.validateVisualHeader = validateVisualHeader;\r\nfunction validateVisualSettings(input) {\r\n    var errors = validator_1.Validators.visualSettingsValidator.validate(input);\r\n    return errors ? errors.map(normalizeError) : undefined;\r\n}\r\nexports.validateVisualSettings = validateVisualSettings;\r\nfunction validateCommandsSettings(input) {\r\n    var errors = validator_1.Validators.commandsSettingsValidator.validate(input);\r\n    return errors ? errors.map(normalizeError) : undefined;\r\n}\r\nexports.validateCommandsSettings = validateCommandsSettings;\r\nfunction validateCustomTheme(input) {\r\n    var errors = validator_1.Validators.customThemeValidator.validate(input);\r\n    return errors ? errors.map(normalizeError) : undefined;\r\n}\r\nexports.validateCustomTheme = validateCustomTheme;\r\nfunction validateZoomLevel(input) {\r\n    var errors = validator_1.Validators.zoomLevelValidator.validate(input);\r\n    return errors ? errors.map(normalizeError) : undefined;\r\n}\r\nexports.validateZoomLevel = validateZoomLevel;\r\nfunction validatePrintSettings(input) {\r\n    var errors = validator_1.Validators.printSettingsValidator.validate(input);\r\n    return errors ? errors.map(normalizeError) : undefined;\r\n}\r\nexports.validatePrintSettings = validatePrintSettings;\r\n\n\n/***/ }),\n/* 1 */\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.Validators = void 0;\r\nvar barsValidator_1 = __webpack_require__(2);\r\nvar bookmarkValidator_1 = __webpack_require__(5);\r\nvar commandsSettingsValidator_1 = __webpack_require__(6);\r\nvar customThemeValidator_1 = __webpack_require__(7);\r\nvar dashboardLoadValidator_1 = __webpack_require__(8);\r\nvar datasetBindingValidator_1 = __webpack_require__(9);\r\nvar exportDataValidator_1 = __webpack_require__(10);\r\nvar extensionsValidator_1 = __webpack_require__(11);\r\nvar filtersValidator_1 = __webpack_require__(12);\r\nvar layoutValidator_1 = __webpack_require__(13);\r\nvar pageValidator_1 = __webpack_require__(14);\r\nvar panesValidator_1 = __webpack_require__(15);\r\nvar qnaValidator_1 = __webpack_require__(16);\r\nvar reportCreateValidator_1 = __webpack_require__(17);\r\nvar reportLoadValidator_1 = __webpack_require__(18);\r\nvar paginatedReportLoadValidator_1 = __webpack_require__(19);\r\nvar saveAsParametersValidator_1 = __webpack_require__(20);\r\nvar selectorsValidator_1 = __webpack_require__(21);\r\nvar settingsValidator_1 = __webpack_require__(22);\r\nvar slicersValidator_1 = __webpack_require__(23);\r\nvar tileLoadValidator_1 = __webpack_require__(24);\r\nvar visualSettingsValidator_1 = __webpack_require__(25);\r\nvar anyOfValidator_1 = __webpack_require__(26);\r\nvar fieldForbiddenValidator_1 = __webpack_require__(27);\r\nvar fieldRequiredValidator_1 = __webpack_require__(28);\r\nvar mapValidator_1 = __webpack_require__(29);\r\nvar typeValidator_1 = __webpack_require__(4);\r\nvar parameterPanelValidator_1 = __webpack_require__(30);\r\nvar datasetCreateConfigValidator_1 = __webpack_require__(31);\r\nvar quickCreateValidator_1 = __webpack_require__(32);\r\nvar printSettingsValidator_1 = __webpack_require__(33);\r\nexports.Validators = {\r\n    addBookmarkRequestValidator: new bookmarkValidator_1.AddBookmarkRequestValidator(),\r\n    advancedFilterTypeValidator: new typeValidator_1.EnumValidator([0]),\r\n    advancedFilterValidator: new filtersValidator_1.AdvancedFilterValidator(),\r\n    anyArrayValidator: new typeValidator_1.ArrayValidator([new anyOfValidator_1.AnyOfValidator([new typeValidator_1.StringValidator(), new typeValidator_1.NumberValidator(), new typeValidator_1.BooleanValidator()])]),\r\n    anyFilterValidator: new anyOfValidator_1.AnyOfValidator([new filtersValidator_1.BasicFilterValidator(), new filtersValidator_1.AdvancedFilterValidator(), new filtersValidator_1.IncludeExcludeFilterValidator(), new filtersValidator_1.NotSupportedFilterValidator(), new filtersValidator_1.RelativeDateFilterValidator(), new filtersValidator_1.TopNFilterValidator(), new filtersValidator_1.RelativeTimeFilterValidator(), new filtersValidator_1.HierarchyFilterValidator()]),\r\n    anyValueValidator: new anyOfValidator_1.AnyOfValidator([new typeValidator_1.StringValidator(), new typeValidator_1.NumberValidator(), new typeValidator_1.BooleanValidator()]),\r\n    actionBarValidator: new barsValidator_1.ActionBarValidator(),\r\n    statusBarValidator: new barsValidator_1.StatusBarValidator(),\r\n    applyBookmarkByNameRequestValidator: new bookmarkValidator_1.ApplyBookmarkByNameRequestValidator(),\r\n    applyBookmarkStateRequestValidator: new bookmarkValidator_1.ApplyBookmarkStateRequestValidator(),\r\n    applyBookmarkValidator: new anyOfValidator_1.AnyOfValidator([new bookmarkValidator_1.ApplyBookmarkByNameRequestValidator(), new bookmarkValidator_1.ApplyBookmarkStateRequestValidator()]),\r\n    backgroundValidator: new typeValidator_1.EnumValidator([0, 1]),\r\n    basicFilterTypeValidator: new typeValidator_1.EnumValidator([1]),\r\n    basicFilterValidator: new filtersValidator_1.BasicFilterValidator(),\r\n    booleanArrayValidator: new typeValidator_1.BooleanArrayValidator(),\r\n    booleanValidator: new typeValidator_1.BooleanValidator(),\r\n    bookmarksPaneValidator: new panesValidator_1.BookmarksPaneValidator(),\r\n    captureBookmarkOptionsValidator: new bookmarkValidator_1.CaptureBookmarkOptionsValidator(),\r\n    captureBookmarkRequestValidator: new bookmarkValidator_1.CaptureBookmarkRequestValidator(),\r\n    columnSchemaArrayValidator: new typeValidator_1.ArrayValidator([new datasetCreateConfigValidator_1.ColumnSchemaValidator()]),\r\n    commandDisplayOptionValidator: new typeValidator_1.EnumValidator([0, 1, 2]),\r\n    commandExtensionSelectorValidator: new anyOfValidator_1.AnyOfValidator([new selectorsValidator_1.VisualSelectorValidator(), new selectorsValidator_1.VisualTypeSelectorValidator()]),\r\n    commandExtensionArrayValidator: new typeValidator_1.ArrayValidator([new extensionsValidator_1.CommandExtensionValidator()]),\r\n    commandExtensionValidator: new extensionsValidator_1.CommandExtensionValidator(),\r\n    commandsSettingsArrayValidator: new typeValidator_1.ArrayValidator([new commandsSettingsValidator_1.CommandsSettingsValidator()]),\r\n    commandsSettingsValidator: new commandsSettingsValidator_1.CommandsSettingsValidator(),\r\n    conditionItemValidator: new filtersValidator_1.ConditionItemValidator(),\r\n    contrastModeValidator: new typeValidator_1.EnumValidator([0, 1, 2, 3, 4]),\r\n    credentialDetailsValidator: new mapValidator_1.MapValidator([new typeValidator_1.StringValidator()], [new typeValidator_1.StringValidator()]),\r\n    credentialsValidator: new datasetCreateConfigValidator_1.CredentialsValidator(),\r\n    credentialTypeValidator: new typeValidator_1.EnumValidator([0, 1, 2]),\r\n    customLayoutDisplayOptionValidator: new typeValidator_1.EnumValidator([0, 1, 2]),\r\n    customLayoutValidator: new layoutValidator_1.CustomLayoutValidator(),\r\n    customPageSizeValidator: new pageValidator_1.CustomPageSizeValidator(),\r\n    customThemeValidator: new customThemeValidator_1.CustomThemeValidator(),\r\n    dashboardLoadValidator: new dashboardLoadValidator_1.DashboardLoadValidator(),\r\n    dataCacheModeValidator: new typeValidator_1.EnumValidator([0, 1]),\r\n    datasetBindingValidator: new datasetBindingValidator_1.DatasetBindingValidator(),\r\n    datasetCreateConfigValidator: new datasetCreateConfigValidator_1.DatasetCreateConfigValidator(),\r\n    datasourceConnectionConfigValidator: new datasetCreateConfigValidator_1.DatasourceConnectionConfigValidator(),\r\n    displayStateModeValidator: new typeValidator_1.EnumValidator([0, 1]),\r\n    displayStateValidator: new layoutValidator_1.DisplayStateValidator(),\r\n    exportDataRequestValidator: new exportDataValidator_1.ExportDataRequestValidator(),\r\n    extensionArrayValidator: new typeValidator_1.ArrayValidator([new extensionsValidator_1.ExtensionValidator()]),\r\n    extensionsValidator: new anyOfValidator_1.AnyOfValidator([new typeValidator_1.ArrayValidator([new extensionsValidator_1.ExtensionValidator()]), new extensionsValidator_1.ExtensionsValidator()]),\r\n    extensionPointsValidator: new extensionsValidator_1.ExtensionPointsValidator(),\r\n    extensionValidator: new extensionsValidator_1.ExtensionValidator(),\r\n    fieldForbiddenValidator: new fieldForbiddenValidator_1.FieldForbiddenValidator(),\r\n    fieldRequiredValidator: new fieldRequiredValidator_1.FieldRequiredValidator(),\r\n    fieldsPaneValidator: new panesValidator_1.FieldsPaneValidator(),\r\n    filterColumnTargetValidator: new filtersValidator_1.FilterColumnTargetValidator(),\r\n    filterDisplaySettingsValidator: new filtersValidator_1.FilterDisplaySettingsValidator(),\r\n    filterConditionsValidator: new typeValidator_1.ArrayValidator([new filtersValidator_1.ConditionItemValidator()]),\r\n    filterHierarchyTargetValidator: new filtersValidator_1.FilterHierarchyTargetValidator(),\r\n    filterMeasureTargetValidator: new filtersValidator_1.FilterMeasureTargetValidator(),\r\n    filterTargetValidator: new anyOfValidator_1.AnyOfValidator([new filtersValidator_1.FilterColumnTargetValidator(), new filtersValidator_1.FilterHierarchyTargetValidator(), new filtersValidator_1.FilterMeasureTargetValidator(), new typeValidator_1.ArrayValidator([new anyOfValidator_1.AnyOfValidator([new filtersValidator_1.FilterColumnTargetValidator(), new filtersValidator_1.FilterHierarchyTargetValidator(), new filtersValidator_1.FilterMeasureTargetValidator(), new filtersValidator_1.FilterKeyColumnsTargetValidator(), new filtersValidator_1.FilterKeyHierarchyTargetValidator()])])]),\r\n    filterValidator: new filtersValidator_1.FilterValidator(),\r\n    filterTypeValidator: new typeValidator_1.EnumValidator([0, 1, 2, 3, 4, 5, 6, 7, 9]),\r\n    filtersArrayValidator: new typeValidator_1.ArrayValidator([new filtersValidator_1.FilterValidator()]),\r\n    filtersOperationsUpdateValidator: new typeValidator_1.EnumValidator([1, 2, 3]),\r\n    filtersOperationsRemoveAllValidator: new typeValidator_1.EnumValidator([0]),\r\n    filtersPaneValidator: new panesValidator_1.FiltersPaneValidator(),\r\n    hyperlinkClickBehaviorValidator: new typeValidator_1.EnumValidator([0, 1, 2]),\r\n    includeExcludeFilterValidator: new filtersValidator_1.IncludeExcludeFilterValidator(),\r\n    includeExludeFilterTypeValidator: new typeValidator_1.EnumValidator([3]),\r\n    hierarchyFilterTypeValidator: new typeValidator_1.EnumValidator([9]),\r\n    hierarchyFilterValuesValidator: new typeValidator_1.ArrayValidator([new filtersValidator_1.HierarchyFilterNodeValidator()]),\r\n    layoutTypeValidator: new typeValidator_1.EnumValidator([0, 1, 2, 3]),\r\n    loadQnaValidator: new qnaValidator_1.LoadQnaValidator(),\r\n    menuExtensionValidator: new anyOfValidator_1.AnyOfValidator([new extensionsValidator_1.FlatMenuExtensionValidator(), new extensionsValidator_1.GroupedMenuExtensionValidator()]),\r\n    menuGroupExtensionArrayValidator: new typeValidator_1.ArrayValidator([new extensionsValidator_1.MenuGroupExtensionValidator()]),\r\n    menuGroupExtensionValidator: new extensionsValidator_1.MenuGroupExtensionValidator(),\r\n    menuLocationValidator: new typeValidator_1.EnumValidator([0, 1]),\r\n    notSupportedFilterTypeValidator: new typeValidator_1.EnumValidator([2]),\r\n    notSupportedFilterValidator: new filtersValidator_1.NotSupportedFilterValidator(),\r\n    numberArrayValidator: new typeValidator_1.NumberArrayValidator(),\r\n    numberValidator: new typeValidator_1.NumberValidator(),\r\n    onLoadFiltersBaseValidator: new anyOfValidator_1.AnyOfValidator([new filtersValidator_1.OnLoadFiltersBaseValidator(), new filtersValidator_1.OnLoadFiltersBaseRemoveOperationValidator()]),\r\n    pageLayoutValidator: new mapValidator_1.MapValidator([new typeValidator_1.StringValidator()], [new layoutValidator_1.VisualLayoutValidator()]),\r\n    pageNavigationPaneValidator: new panesValidator_1.PageNavigationPaneValidator(),\r\n    pageNavigationPositionValidator: new typeValidator_1.EnumValidator([0, 1]),\r\n    pageSizeTypeValidator: new typeValidator_1.EnumValidator([0, 1, 2, 3, 4, 5]),\r\n    pageSizeValidator: new pageValidator_1.PageSizeValidator(),\r\n    pageValidator: new pageValidator_1.PageValidator(),\r\n    pageViewFieldValidator: new pageValidator_1.PageViewFieldValidator(),\r\n    pagesLayoutValidator: new mapValidator_1.MapValidator([new typeValidator_1.StringValidator()], [new layoutValidator_1.PageLayoutValidator()]),\r\n    paginatedReportCommandsValidator: new commandsSettingsValidator_1.PaginatedReportCommandsValidator(),\r\n    paginatedReportLoadValidator: new paginatedReportLoadValidator_1.PaginatedReportLoadValidator(),\r\n    paginatedReportsettingsValidator: new settingsValidator_1.PaginatedReportSettingsValidator(),\r\n    parameterValuesArrayValidator: new typeValidator_1.ArrayValidator([new paginatedReportLoadValidator_1.ReportParameterFieldsValidator()]),\r\n    parametersPanelValidator: new parameterPanelValidator_1.ParametersPanelValidator(),\r\n    permissionsValidator: new typeValidator_1.EnumValidator([0, 1, 2, 4, 7]),\r\n    playBookmarkRequestValidator: new bookmarkValidator_1.PlayBookmarkRequestValidator(),\r\n    printSettingsValidator: new printSettingsValidator_1.PrintSettingsValidator(),\r\n    qnaInterpretInputDataValidator: new qnaValidator_1.QnaInterpretInputDataValidator(),\r\n    qnaPanesValidator: new panesValidator_1.QnaPanesValidator(),\r\n    qnaSettingValidator: new qnaValidator_1.QnaSettingsValidator(),\r\n    quickCreateValidator: new quickCreateValidator_1.QuickCreateValidator(),\r\n    rawDataValidator: new typeValidator_1.ArrayValidator([new typeValidator_1.ArrayValidator([new typeValidator_1.StringValidator()])]),\r\n    relativeDateFilterOperatorValidator: new typeValidator_1.EnumValidator([0, 1, 2]),\r\n    relativeDateFilterTimeUnitTypeValidator: new typeValidator_1.EnumValidator([0, 1, 2, 3, 4, 5, 6]),\r\n    relativeDateFilterTypeValidator: new typeValidator_1.EnumValidator([4]),\r\n    relativeDateFilterValidator: new filtersValidator_1.RelativeDateFilterValidator(),\r\n    relativeDateTimeFilterTypeValidator: new typeValidator_1.EnumValidator([4, 7]),\r\n    relativeDateTimeFilterUnitTypeValidator: new typeValidator_1.EnumValidator([0, 1, 2, 3, 4, 5, 6, 7, 8]),\r\n    relativeTimeFilterTimeUnitTypeValidator: new typeValidator_1.EnumValidator([7, 8]),\r\n    relativeTimeFilterTypeValidator: new typeValidator_1.EnumValidator([7]),\r\n    relativeTimeFilterValidator: new filtersValidator_1.RelativeTimeFilterValidator(),\r\n    reportBarsValidator: new barsValidator_1.ReportBarsValidator(),\r\n    reportCreateValidator: new reportCreateValidator_1.ReportCreateValidator(),\r\n    reportLoadFiltersValidator: new anyOfValidator_1.AnyOfValidator([new typeValidator_1.ArrayValidator([new filtersValidator_1.FilterValidator()]), new filtersValidator_1.OnLoadFiltersValidator()]),\r\n    reportLoadValidator: new reportLoadValidator_1.ReportLoadValidator(),\r\n    reportPanesValidator: new panesValidator_1.ReportPanesValidator(),\r\n    saveAsParametersValidator: new saveAsParametersValidator_1.SaveAsParametersValidator(),\r\n    selectionPaneValidator: new panesValidator_1.SelectionPaneValidator(),\r\n    settingsValidator: new settingsValidator_1.SettingsValidator(),\r\n    singleCommandSettingsValidator: new commandsSettingsValidator_1.SingleCommandSettingsValidator(),\r\n    slicerSelectorValidator: new anyOfValidator_1.AnyOfValidator([new selectorsValidator_1.VisualSelectorValidator(), new selectorsValidator_1.SlicerTargetSelectorValidator()]),\r\n    slicerStateValidator: new slicersValidator_1.SlicerStateValidator(),\r\n    slicerTargetValidator: new anyOfValidator_1.AnyOfValidator([new filtersValidator_1.FilterColumnTargetValidator(), new filtersValidator_1.FilterHierarchyTargetValidator(), new filtersValidator_1.FilterMeasureTargetValidator(), new filtersValidator_1.FilterKeyColumnsTargetValidator(), new filtersValidator_1.FilterKeyHierarchyTargetValidator()]),\r\n    slicerValidator: new slicersValidator_1.SlicerValidator(),\r\n    stringArrayValidator: new typeValidator_1.StringArrayValidator(),\r\n    stringValidator: new typeValidator_1.StringValidator(),\r\n    syncSlicersPaneValidator: new panesValidator_1.SyncSlicersPaneValidator(),\r\n    tableDataArrayValidator: new typeValidator_1.ArrayValidator([new datasetCreateConfigValidator_1.TableDataValidator()]),\r\n    tableSchemaListValidator: new typeValidator_1.ArrayValidator([new datasetCreateConfigValidator_1.TableSchemaValidator()]),\r\n    tileLoadValidator: new tileLoadValidator_1.TileLoadValidator(),\r\n    tokenTypeValidator: new typeValidator_1.EnumValidator([0, 1]),\r\n    topNFilterTypeValidator: new typeValidator_1.EnumValidator([5]),\r\n    topNFilterValidator: new filtersValidator_1.TopNFilterValidator(),\r\n    updateFiltersRequestValidator: new anyOfValidator_1.AnyOfValidator([new filtersValidator_1.UpdateFiltersRequestValidator(), new filtersValidator_1.RemoveFiltersRequestValidator()]),\r\n    viewModeValidator: new typeValidator_1.EnumValidator([0, 1]),\r\n    visualCommandSelectorValidator: new anyOfValidator_1.AnyOfValidator([new selectorsValidator_1.VisualSelectorValidator(), new selectorsValidator_1.VisualTypeSelectorValidator()]),\r\n    visualHeaderSelectorValidator: new anyOfValidator_1.AnyOfValidator([new selectorsValidator_1.VisualSelectorValidator(), new selectorsValidator_1.VisualTypeSelectorValidator()]),\r\n    visualHeaderSettingsValidator: new visualSettingsValidator_1.VisualHeaderSettingsValidator(),\r\n    visualHeaderValidator: new visualSettingsValidator_1.VisualHeaderValidator(),\r\n    visualHeadersValidator: new typeValidator_1.ArrayValidator([new visualSettingsValidator_1.VisualHeaderValidator()]),\r\n    visualizationsPaneValidator: new panesValidator_1.VisualizationsPaneValidator(),\r\n    visualLayoutValidator: new layoutValidator_1.VisualLayoutValidator(),\r\n    visualSelectorValidator: new selectorsValidator_1.VisualSelectorValidator(),\r\n    visualSettingsValidator: new visualSettingsValidator_1.VisualSettingsValidator(),\r\n    visualTypeSelectorValidator: new selectorsValidator_1.VisualTypeSelectorValidator(),\r\n    zoomLevelValidator: new typeValidator_1.RangeValidator(0.25, 4),\r\n};\r\n\n\n/***/ }),\n/* 2 */\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\nvar __extends = (this && this.__extends) || (function () {\r\n    var 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    return function (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\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.StatusBarValidator = exports.ActionBarValidator = exports.ReportBarsValidator = void 0;\r\nvar multipleFieldsValidator_1 = __webpack_require__(3);\r\nvar typeValidator_1 = __webpack_require__(4);\r\nvar validator_1 = __webpack_require__(1);\r\nvar ReportBarsValidator = /** @class */ (function (_super) {\r\n    __extends(ReportBarsValidator, _super);\r\n    function ReportBarsValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    ReportBarsValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"actionBar\",\r\n                validators: [validator_1.Validators.actionBarValidator]\r\n            },\r\n            {\r\n                field: \"statusBar\",\r\n                validators: [validator_1.Validators.statusBarValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return ReportBarsValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.ReportBarsValidator = ReportBarsValidator;\r\nvar ActionBarValidator = /** @class */ (function (_super) {\r\n    __extends(ActionBarValidator, _super);\r\n    function ActionBarValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    ActionBarValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"visible\",\r\n                validators: [validator_1.Validators.booleanValidator]\r\n            },\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return ActionBarValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.ActionBarValidator = ActionBarValidator;\r\nvar StatusBarValidator = /** @class */ (function (_super) {\r\n    __extends(StatusBarValidator, _super);\r\n    function StatusBarValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    StatusBarValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"visible\",\r\n                validators: [validator_1.Validators.booleanValidator]\r\n            },\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return StatusBarValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.StatusBarValidator = StatusBarValidator;\r\n\n\n/***/ }),\n/* 3 */\n/***/ ((__unused_webpack_module, exports) => {\n\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.MultipleFieldsValidator = void 0;\r\nvar MultipleFieldsValidator = /** @class */ (function () {\r\n    function MultipleFieldsValidator(fieldValidatorsPairs) {\r\n        this.fieldValidatorsPairs = fieldValidatorsPairs;\r\n    }\r\n    MultipleFieldsValidator.prototype.validate = function (input, path, field) {\r\n        if (!this.fieldValidatorsPairs) {\r\n            return null;\r\n        }\r\n        var fieldsPath = path ? path + \".\" + field : field;\r\n        for (var _i = 0, _a = this.fieldValidatorsPairs; _i < _a.length; _i++) {\r\n            var fieldValidators = _a[_i];\r\n            for (var _b = 0, _c = fieldValidators.validators; _b < _c.length; _b++) {\r\n                var validator = _c[_b];\r\n                var errors = validator.validate(input[fieldValidators.field], fieldsPath, fieldValidators.field);\r\n                if (errors) {\r\n                    return errors;\r\n                }\r\n            }\r\n        }\r\n        return null;\r\n    };\r\n    return MultipleFieldsValidator;\r\n}());\r\nexports.MultipleFieldsValidator = MultipleFieldsValidator;\r\n\n\n/***/ }),\n/* 4 */\n/***/ (function(__unused_webpack_module, exports) {\n\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\nvar __extends = (this && this.__extends) || (function () {\r\n    var 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    return function (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\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.RangeValidator = exports.NumberArrayValidator = exports.BooleanArrayValidator = exports.StringArrayValidator = exports.EnumValidator = exports.SchemaValidator = exports.ValueValidator = exports.NumberValidator = exports.BooleanValidator = exports.StringValidator = exports.TypeValidator = exports.ArrayValidator = exports.ObjectValidator = void 0;\r\nvar ObjectValidator = /** @class */ (function () {\r\n    function ObjectValidator() {\r\n    }\r\n    ObjectValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        if (typeof input !== \"object\" || Array.isArray(input)) {\r\n            return [{\r\n                    message: field !== undefined ? field + \" must be an object\" : \"input must be an object\",\r\n                    path: path,\r\n                    keyword: \"type\"\r\n                }];\r\n        }\r\n        return null;\r\n    };\r\n    return ObjectValidator;\r\n}());\r\nexports.ObjectValidator = ObjectValidator;\r\nvar ArrayValidator = /** @class */ (function () {\r\n    function ArrayValidator(itemValidators) {\r\n        this.itemValidators = itemValidators;\r\n    }\r\n    ArrayValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        if (!(Array.isArray(input))) {\r\n            return [{\r\n                    message: field + \" property is invalid\",\r\n                    path: (path ? path + \".\" : \"\") + field,\r\n                    keyword: \"type\"\r\n                }];\r\n        }\r\n        for (var i = 0; i < input.length; i++) {\r\n            var fieldsPath = (path ? path + \".\" : \"\") + field + \".\" + i.toString();\r\n            for (var _i = 0, _a = this.itemValidators; _i < _a.length; _i++) {\r\n                var validator = _a[_i];\r\n                var errors = validator.validate(input[i], fieldsPath, field);\r\n                if (errors) {\r\n                    return [{\r\n                            message: field + \" property is invalid\",\r\n                            path: (path ? path + \".\" : \"\") + field,\r\n                            keyword: \"type\"\r\n                        }];\r\n                }\r\n            }\r\n        }\r\n        return null;\r\n    };\r\n    return ArrayValidator;\r\n}());\r\nexports.ArrayValidator = ArrayValidator;\r\nvar TypeValidator = /** @class */ (function () {\r\n    function TypeValidator(expectedType) {\r\n        this.expectedType = expectedType;\r\n    }\r\n    TypeValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        if (!(typeof input === this.expectedType)) {\r\n            return [{\r\n                    message: field + \" must be a \" + this.expectedType,\r\n                    path: (path ? path + \".\" : \"\") + field,\r\n                    keyword: \"type\"\r\n                }];\r\n        }\r\n        return null;\r\n    };\r\n    return TypeValidator;\r\n}());\r\nexports.TypeValidator = TypeValidator;\r\nvar StringValidator = /** @class */ (function (_super) {\r\n    __extends(StringValidator, _super);\r\n    function StringValidator() {\r\n        return _super.call(this, \"string\") || this;\r\n    }\r\n    return StringValidator;\r\n}(TypeValidator));\r\nexports.StringValidator = StringValidator;\r\nvar BooleanValidator = /** @class */ (function (_super) {\r\n    __extends(BooleanValidator, _super);\r\n    function BooleanValidator() {\r\n        return _super.call(this, \"boolean\") || this;\r\n    }\r\n    return BooleanValidator;\r\n}(TypeValidator));\r\nexports.BooleanValidator = BooleanValidator;\r\nvar NumberValidator = /** @class */ (function (_super) {\r\n    __extends(NumberValidator, _super);\r\n    function NumberValidator() {\r\n        return _super.call(this, \"number\") || this;\r\n    }\r\n    return NumberValidator;\r\n}(TypeValidator));\r\nexports.NumberValidator = NumberValidator;\r\nvar ValueValidator = /** @class */ (function () {\r\n    function ValueValidator(possibleValues) {\r\n        this.possibleValues = possibleValues;\r\n    }\r\n    ValueValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        if (this.possibleValues.indexOf(input) < 0) {\r\n            return [{\r\n                    message: field + \" property is invalid\",\r\n                    path: (path ? path + \".\" : \"\") + field,\r\n                    keyword: \"invalid\"\r\n                }];\r\n        }\r\n        return null;\r\n    };\r\n    return ValueValidator;\r\n}());\r\nexports.ValueValidator = ValueValidator;\r\nvar SchemaValidator = /** @class */ (function (_super) {\r\n    __extends(SchemaValidator, _super);\r\n    function SchemaValidator(schemaValue) {\r\n        var _this = _super.call(this, [schemaValue]) || this;\r\n        _this.schemaValue = schemaValue;\r\n        return _this;\r\n    }\r\n    SchemaValidator.prototype.validate = function (input, path, field) {\r\n        return _super.prototype.validate.call(this, input, path, field);\r\n    };\r\n    return SchemaValidator;\r\n}(ValueValidator));\r\nexports.SchemaValidator = SchemaValidator;\r\nvar EnumValidator = /** @class */ (function (_super) {\r\n    __extends(EnumValidator, _super);\r\n    function EnumValidator(possibleValues) {\r\n        var _this = _super.call(this) || this;\r\n        _this.possibleValues = possibleValues;\r\n        return _this;\r\n    }\r\n    EnumValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var valueValidator = new ValueValidator(this.possibleValues);\r\n        return valueValidator.validate(input, path, field);\r\n    };\r\n    return EnumValidator;\r\n}(NumberValidator));\r\nexports.EnumValidator = EnumValidator;\r\nvar StringArrayValidator = /** @class */ (function (_super) {\r\n    __extends(StringArrayValidator, _super);\r\n    function StringArrayValidator() {\r\n        return _super.call(this, [new StringValidator()]) || this;\r\n    }\r\n    StringArrayValidator.prototype.validate = function (input, path, field) {\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return [{\r\n                    message: field + \" must be an array of strings\",\r\n                    path: (path ? path + \".\" : \"\") + field,\r\n                    keyword: \"type\"\r\n                }];\r\n        }\r\n        return null;\r\n    };\r\n    return StringArrayValidator;\r\n}(ArrayValidator));\r\nexports.StringArrayValidator = StringArrayValidator;\r\nvar BooleanArrayValidator = /** @class */ (function (_super) {\r\n    __extends(BooleanArrayValidator, _super);\r\n    function BooleanArrayValidator() {\r\n        return _super.call(this, [new BooleanValidator()]) || this;\r\n    }\r\n    BooleanArrayValidator.prototype.validate = function (input, path, field) {\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return [{\r\n                    message: field + \" must be an array of booleans\",\r\n                    path: (path ? path + \".\" : \"\") + field,\r\n                    keyword: \"type\"\r\n                }];\r\n        }\r\n        return null;\r\n    };\r\n    return BooleanArrayValidator;\r\n}(ArrayValidator));\r\nexports.BooleanArrayValidator = BooleanArrayValidator;\r\nvar NumberArrayValidator = /** @class */ (function (_super) {\r\n    __extends(NumberArrayValidator, _super);\r\n    function NumberArrayValidator() {\r\n        return _super.call(this, [new NumberValidator()]) || this;\r\n    }\r\n    NumberArrayValidator.prototype.validate = function (input, path, field) {\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return [{\r\n                    message: field + \" must be an array of numbers\",\r\n                    path: (path ? path + \".\" : \"\") + field,\r\n                    keyword: \"type\"\r\n                }];\r\n        }\r\n        return null;\r\n    };\r\n    return NumberArrayValidator;\r\n}(ArrayValidator));\r\nexports.NumberArrayValidator = NumberArrayValidator;\r\nvar RangeValidator = /** @class */ (function (_super) {\r\n    __extends(RangeValidator, _super);\r\n    function RangeValidator(minValue, maxValue) {\r\n        var _this = _super.call(this) || this;\r\n        _this.minValue = minValue;\r\n        _this.maxValue = maxValue;\r\n        return _this;\r\n    }\r\n    RangeValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        // input is a number, now check if it's in the given range\r\n        if (input > this.maxValue || input < this.minValue) {\r\n            return [{\r\n                    message: field + \" must be a number between \" + this.minValue.toString() + \" and \" + this.maxValue.toString(),\r\n                    path: (path ? path + \".\" : \"\") + field,\r\n                    keyword: \"range\"\r\n                }];\r\n        }\r\n        return null;\r\n    };\r\n    return RangeValidator;\r\n}(NumberValidator));\r\nexports.RangeValidator = RangeValidator;\r\n\n\n/***/ }),\n/* 5 */\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\nvar __extends = (this && this.__extends) || (function () {\r\n    var 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    return function (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\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CaptureBookmarkRequestValidator = exports.CaptureBookmarkOptionsValidator = exports.ApplyBookmarkStateRequestValidator = exports.ApplyBookmarkByNameRequestValidator = exports.AddBookmarkRequestValidator = exports.PlayBookmarkRequestValidator = void 0;\r\nvar multipleFieldsValidator_1 = __webpack_require__(3);\r\nvar typeValidator_1 = __webpack_require__(4);\r\nvar validator_1 = __webpack_require__(1);\r\nvar PlayBookmarkRequestValidator = /** @class */ (function (_super) {\r\n    __extends(PlayBookmarkRequestValidator, _super);\r\n    function PlayBookmarkRequestValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    PlayBookmarkRequestValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"playMode\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, new typeValidator_1.EnumValidator([0, 1])]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return PlayBookmarkRequestValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.PlayBookmarkRequestValidator = PlayBookmarkRequestValidator;\r\nvar AddBookmarkRequestValidator = /** @class */ (function (_super) {\r\n    __extends(AddBookmarkRequestValidator, _super);\r\n    function AddBookmarkRequestValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    AddBookmarkRequestValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"state\",\r\n                validators: [validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"displayName\",\r\n                validators: [validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"apply\",\r\n                validators: [validator_1.Validators.booleanValidator]\r\n            },\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return AddBookmarkRequestValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.AddBookmarkRequestValidator = AddBookmarkRequestValidator;\r\nvar ApplyBookmarkByNameRequestValidator = /** @class */ (function (_super) {\r\n    __extends(ApplyBookmarkByNameRequestValidator, _super);\r\n    function ApplyBookmarkByNameRequestValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    ApplyBookmarkByNameRequestValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"name\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return ApplyBookmarkByNameRequestValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.ApplyBookmarkByNameRequestValidator = ApplyBookmarkByNameRequestValidator;\r\nvar ApplyBookmarkStateRequestValidator = /** @class */ (function (_super) {\r\n    __extends(ApplyBookmarkStateRequestValidator, _super);\r\n    function ApplyBookmarkStateRequestValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    ApplyBookmarkStateRequestValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"state\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return ApplyBookmarkStateRequestValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.ApplyBookmarkStateRequestValidator = ApplyBookmarkStateRequestValidator;\r\nvar CaptureBookmarkOptionsValidator = /** @class */ (function (_super) {\r\n    __extends(CaptureBookmarkOptionsValidator, _super);\r\n    function CaptureBookmarkOptionsValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    CaptureBookmarkOptionsValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"personalizeVisuals\",\r\n                validators: [validator_1.Validators.booleanValidator]\r\n            },\r\n            {\r\n                field: \"allPages\",\r\n                validators: [validator_1.Validators.booleanValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return CaptureBookmarkOptionsValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.CaptureBookmarkOptionsValidator = CaptureBookmarkOptionsValidator;\r\nvar CaptureBookmarkRequestValidator = /** @class */ (function (_super) {\r\n    __extends(CaptureBookmarkRequestValidator, _super);\r\n    function CaptureBookmarkRequestValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    CaptureBookmarkRequestValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"options\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.captureBookmarkOptionsValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return CaptureBookmarkRequestValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.CaptureBookmarkRequestValidator = CaptureBookmarkRequestValidator;\r\n\n\n/***/ }),\n/* 6 */\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\nvar __extends = (this && this.__extends) || (function () {\r\n    var 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    return function (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\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.PaginatedReportCommandsValidator = exports.SingleCommandSettingsValidator = exports.CommandsSettingsValidator = void 0;\r\nvar multipleFieldsValidator_1 = __webpack_require__(3);\r\nvar typeValidator_1 = __webpack_require__(4);\r\nvar validator_1 = __webpack_require__(1);\r\nvar CommandsSettingsValidator = /** @class */ (function (_super) {\r\n    __extends(CommandsSettingsValidator, _super);\r\n    function CommandsSettingsValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    CommandsSettingsValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"copy\",\r\n                validators: [validator_1.Validators.singleCommandSettingsValidator]\r\n            },\r\n            {\r\n                field: \"drill\",\r\n                validators: [validator_1.Validators.singleCommandSettingsValidator]\r\n            },\r\n            {\r\n                field: \"drillthrough\",\r\n                validators: [validator_1.Validators.singleCommandSettingsValidator]\r\n            },\r\n            {\r\n                field: \"expandCollapse\",\r\n                validators: [validator_1.Validators.singleCommandSettingsValidator]\r\n            },\r\n            {\r\n                field: \"exportData\",\r\n                validators: [validator_1.Validators.singleCommandSettingsValidator]\r\n            },\r\n            {\r\n                field: \"includeExclude\",\r\n                validators: [validator_1.Validators.singleCommandSettingsValidator]\r\n            },\r\n            {\r\n                field: \"removeVisual\",\r\n                validators: [validator_1.Validators.singleCommandSettingsValidator]\r\n            },\r\n            {\r\n                field: \"search\",\r\n                validators: [validator_1.Validators.singleCommandSettingsValidator]\r\n            },\r\n            {\r\n                field: \"seeData\",\r\n                validators: [validator_1.Validators.singleCommandSettingsValidator]\r\n            },\r\n            {\r\n                field: \"sort\",\r\n                validators: [validator_1.Validators.singleCommandSettingsValidator]\r\n            },\r\n            {\r\n                field: \"spotlight\",\r\n                validators: [validator_1.Validators.singleCommandSettingsValidator]\r\n            },\r\n            {\r\n                field: \"insightsAnalysis\",\r\n                validators: [validator_1.Validators.singleCommandSettingsValidator]\r\n            },\r\n            {\r\n                field: \"addComment\",\r\n                validators: [validator_1.Validators.singleCommandSettingsValidator]\r\n            },\r\n            {\r\n                field: \"groupVisualContainers\",\r\n                validators: [validator_1.Validators.singleCommandSettingsValidator]\r\n            },\r\n            {\r\n                field: \"summarize\",\r\n                validators: [validator_1.Validators.singleCommandSettingsValidator]\r\n            },\r\n            {\r\n                field: \"clearSelection\",\r\n                validators: [validator_1.Validators.singleCommandSettingsValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return CommandsSettingsValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.CommandsSettingsValidator = CommandsSettingsValidator;\r\nvar SingleCommandSettingsValidator = /** @class */ (function (_super) {\r\n    __extends(SingleCommandSettingsValidator, _super);\r\n    function SingleCommandSettingsValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    SingleCommandSettingsValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"displayOption\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.commandDisplayOptionValidator]\r\n            },\r\n            {\r\n                field: \"selector\",\r\n                validators: [validator_1.Validators.visualCommandSelectorValidator]\r\n            },\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return SingleCommandSettingsValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.SingleCommandSettingsValidator = SingleCommandSettingsValidator;\r\nvar PaginatedReportCommandsValidator = /** @class */ (function (_super) {\r\n    __extends(PaginatedReportCommandsValidator, _super);\r\n    function PaginatedReportCommandsValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    PaginatedReportCommandsValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"parameterPanel\",\r\n                validators: [validator_1.Validators.parametersPanelValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return PaginatedReportCommandsValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.PaginatedReportCommandsValidator = PaginatedReportCommandsValidator;\r\n\n\n/***/ }),\n/* 7 */\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\nvar __extends = (this && this.__extends) || (function () {\r\n    var 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    return function (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\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CustomThemeValidator = void 0;\r\nvar multipleFieldsValidator_1 = __webpack_require__(3);\r\nvar typeValidator_1 = __webpack_require__(4);\r\nvar CustomThemeValidator = /** @class */ (function (_super) {\r\n    __extends(CustomThemeValidator, _super);\r\n    function CustomThemeValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    CustomThemeValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"themeJson\",\r\n                validators: [new typeValidator_1.ObjectValidator()]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return CustomThemeValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.CustomThemeValidator = CustomThemeValidator;\r\n\n\n/***/ }),\n/* 8 */\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\nvar __extends = (this && this.__extends) || (function () {\r\n    var 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    return function (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\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.DashboardLoadValidator = void 0;\r\nvar multipleFieldsValidator_1 = __webpack_require__(3);\r\nvar typeValidator_1 = __webpack_require__(4);\r\nvar validator_1 = __webpack_require__(1);\r\nvar DashboardLoadValidator = /** @class */ (function (_super) {\r\n    __extends(DashboardLoadValidator, _super);\r\n    function DashboardLoadValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    DashboardLoadValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"accessToken\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"id\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"groupId\",\r\n                validators: [validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"pageView\",\r\n                validators: [validator_1.Validators.pageViewFieldValidator]\r\n            },\r\n            {\r\n                field: \"tokenType\",\r\n                validators: [validator_1.Validators.tokenTypeValidator]\r\n            },\r\n            {\r\n                field: \"embedUrl\",\r\n                validators: [validator_1.Validators.stringValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return DashboardLoadValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.DashboardLoadValidator = DashboardLoadValidator;\r\n\n\n/***/ }),\n/* 9 */\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\nvar __extends = (this && this.__extends) || (function () {\r\n    var 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    return function (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\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.DatasetBindingValidator = void 0;\r\nvar multipleFieldsValidator_1 = __webpack_require__(3);\r\nvar typeValidator_1 = __webpack_require__(4);\r\nvar validator_1 = __webpack_require__(1);\r\nvar DatasetBindingValidator = /** @class */ (function (_super) {\r\n    __extends(DatasetBindingValidator, _super);\r\n    function DatasetBindingValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    DatasetBindingValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"datasetId\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return DatasetBindingValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.DatasetBindingValidator = DatasetBindingValidator;\r\n\n\n/***/ }),\n/* 10 */\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\nvar __extends = (this && this.__extends) || (function () {\r\n    var 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    return function (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\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.ExportDataRequestValidator = void 0;\r\nvar multipleFieldsValidator_1 = __webpack_require__(3);\r\nvar typeValidator_1 = __webpack_require__(4);\r\nvar ExportDataRequestValidator = /** @class */ (function (_super) {\r\n    __extends(ExportDataRequestValidator, _super);\r\n    function ExportDataRequestValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    ExportDataRequestValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"rows\",\r\n                validators: [new typeValidator_1.NumberValidator()]\r\n            },\r\n            {\r\n                field: \"exportDataType\",\r\n                validators: [new typeValidator_1.EnumValidator([0, 1])]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return ExportDataRequestValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.ExportDataRequestValidator = ExportDataRequestValidator;\r\n\n\n/***/ }),\n/* 11 */\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\nvar __extends = (this && this.__extends) || (function () {\r\n    var 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    return function (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\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.ExtensionsValidator = exports.MenuGroupExtensionValidator = exports.ExtensionValidator = exports.CommandExtensionValidator = exports.ExtensionItemValidator = exports.ExtensionPointsValidator = exports.GroupedMenuExtensionValidator = exports.FlatMenuExtensionValidator = exports.MenuExtensionBaseValidator = void 0;\r\nvar multipleFieldsValidator_1 = __webpack_require__(3);\r\nvar typeValidator_1 = __webpack_require__(4);\r\nvar validator_1 = __webpack_require__(1);\r\nvar MenuExtensionBaseValidator = /** @class */ (function (_super) {\r\n    __extends(MenuExtensionBaseValidator, _super);\r\n    function MenuExtensionBaseValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    MenuExtensionBaseValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"title\",\r\n                validators: [validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"icon\",\r\n                validators: [validator_1.Validators.stringValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return MenuExtensionBaseValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.MenuExtensionBaseValidator = MenuExtensionBaseValidator;\r\nvar FlatMenuExtensionValidator = /** @class */ (function (_super) {\r\n    __extends(FlatMenuExtensionValidator, _super);\r\n    function FlatMenuExtensionValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    FlatMenuExtensionValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"menuLocation\",\r\n                validators: [validator_1.Validators.menuLocationValidator]\r\n            },\r\n            {\r\n                field: \"groupName\",\r\n                validators: [validator_1.Validators.fieldForbiddenValidator]\r\n            },\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return FlatMenuExtensionValidator;\r\n}(MenuExtensionBaseValidator));\r\nexports.FlatMenuExtensionValidator = FlatMenuExtensionValidator;\r\nvar GroupedMenuExtensionValidator = /** @class */ (function (_super) {\r\n    __extends(GroupedMenuExtensionValidator, _super);\r\n    function GroupedMenuExtensionValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    GroupedMenuExtensionValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"groupName\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"menuLocation\",\r\n                validators: [validator_1.Validators.fieldForbiddenValidator]\r\n            },\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return GroupedMenuExtensionValidator;\r\n}(MenuExtensionBaseValidator));\r\nexports.GroupedMenuExtensionValidator = GroupedMenuExtensionValidator;\r\nvar ExtensionPointsValidator = /** @class */ (function (_super) {\r\n    __extends(ExtensionPointsValidator, _super);\r\n    function ExtensionPointsValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    ExtensionPointsValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"visualContextMenu\",\r\n                validators: [validator_1.Validators.menuExtensionValidator]\r\n            },\r\n            {\r\n                field: \"visualOptionsMenu\",\r\n                validators: [validator_1.Validators.menuExtensionValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return ExtensionPointsValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.ExtensionPointsValidator = ExtensionPointsValidator;\r\nvar ExtensionItemValidator = /** @class */ (function (_super) {\r\n    __extends(ExtensionItemValidator, _super);\r\n    function ExtensionItemValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    ExtensionItemValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"name\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"extend\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.extensionPointsValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return ExtensionItemValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.ExtensionItemValidator = ExtensionItemValidator;\r\nvar CommandExtensionValidator = /** @class */ (function (_super) {\r\n    __extends(CommandExtensionValidator, _super);\r\n    function CommandExtensionValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    CommandExtensionValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"title\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"icon\",\r\n                validators: [validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"selector\",\r\n                validators: [validator_1.Validators.commandExtensionSelectorValidator]\r\n            },\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return CommandExtensionValidator;\r\n}(ExtensionItemValidator));\r\nexports.CommandExtensionValidator = CommandExtensionValidator;\r\nvar ExtensionValidator = /** @class */ (function (_super) {\r\n    __extends(ExtensionValidator, _super);\r\n    function ExtensionValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    ExtensionValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"command\",\r\n                validators: [validator_1.Validators.commandExtensionValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return ExtensionValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.ExtensionValidator = ExtensionValidator;\r\nvar MenuGroupExtensionValidator = /** @class */ (function (_super) {\r\n    __extends(MenuGroupExtensionValidator, _super);\r\n    function MenuGroupExtensionValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    MenuGroupExtensionValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"name\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"title\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"menuLocation\",\r\n                validators: [validator_1.Validators.menuLocationValidator]\r\n            },\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return MenuGroupExtensionValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.MenuGroupExtensionValidator = MenuGroupExtensionValidator;\r\nvar ExtensionsValidator = /** @class */ (function (_super) {\r\n    __extends(ExtensionsValidator, _super);\r\n    function ExtensionsValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    ExtensionsValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"commands\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.commandExtensionArrayValidator]\r\n            },\r\n            {\r\n                field: \"groups\",\r\n                validators: [validator_1.Validators.menuGroupExtensionArrayValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return ExtensionsValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.ExtensionsValidator = ExtensionsValidator;\r\n\n\n/***/ }),\n/* 12 */\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\nvar __extends = (this && this.__extends) || (function () {\r\n    var 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    return function (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\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.OnLoadFiltersValidator = exports.OnLoadFiltersBaseRemoveOperationValidator = exports.OnLoadFiltersBaseValidator = exports.ConditionItemValidator = exports.RemoveFiltersRequestValidator = exports.UpdateFiltersRequestValidator = exports.FilterValidator = exports.HierarchyFilterNodeValidator = exports.HierarchyFilterValidator = exports.IncludeExcludeFilterValidator = exports.NotSupportedFilterValidator = exports.TopNFilterValidator = exports.RelativeTimeFilterValidator = exports.RelativeDateFilterValidator = exports.RelativeDateTimeFilterValidator = exports.AdvancedFilterValidator = exports.BasicFilterValidator = exports.FilterValidatorBase = exports.FilterDisplaySettingsValidator = exports.FilterMeasureTargetValidator = exports.FilterKeyHierarchyTargetValidator = exports.FilterHierarchyTargetValidator = exports.FilterKeyColumnsTargetValidator = exports.FilterColumnTargetValidator = void 0;\r\nvar multipleFieldsValidator_1 = __webpack_require__(3);\r\nvar typeValidator_1 = __webpack_require__(4);\r\nvar validator_1 = __webpack_require__(1);\r\nvar FilterColumnTargetValidator = /** @class */ (function (_super) {\r\n    __extends(FilterColumnTargetValidator, _super);\r\n    function FilterColumnTargetValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    FilterColumnTargetValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"table\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"column\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return FilterColumnTargetValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.FilterColumnTargetValidator = FilterColumnTargetValidator;\r\nvar FilterKeyColumnsTargetValidator = /** @class */ (function (_super) {\r\n    __extends(FilterKeyColumnsTargetValidator, _super);\r\n    function FilterKeyColumnsTargetValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    FilterKeyColumnsTargetValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"keys\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringArrayValidator]\r\n            },\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return FilterKeyColumnsTargetValidator;\r\n}(FilterColumnTargetValidator));\r\nexports.FilterKeyColumnsTargetValidator = FilterKeyColumnsTargetValidator;\r\nvar FilterHierarchyTargetValidator = /** @class */ (function (_super) {\r\n    __extends(FilterHierarchyTargetValidator, _super);\r\n    function FilterHierarchyTargetValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    FilterHierarchyTargetValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"table\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"hierarchy\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"hierarchyLevel\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return FilterHierarchyTargetValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.FilterHierarchyTargetValidator = FilterHierarchyTargetValidator;\r\nvar FilterKeyHierarchyTargetValidator = /** @class */ (function (_super) {\r\n    __extends(FilterKeyHierarchyTargetValidator, _super);\r\n    function FilterKeyHierarchyTargetValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    FilterKeyHierarchyTargetValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"keys\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringArrayValidator]\r\n            },\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return FilterKeyHierarchyTargetValidator;\r\n}(FilterHierarchyTargetValidator));\r\nexports.FilterKeyHierarchyTargetValidator = FilterKeyHierarchyTargetValidator;\r\nvar FilterMeasureTargetValidator = /** @class */ (function (_super) {\r\n    __extends(FilterMeasureTargetValidator, _super);\r\n    function FilterMeasureTargetValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    FilterMeasureTargetValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"table\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"measure\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return FilterMeasureTargetValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.FilterMeasureTargetValidator = FilterMeasureTargetValidator;\r\nvar FilterDisplaySettingsValidator = /** @class */ (function (_super) {\r\n    __extends(FilterDisplaySettingsValidator, _super);\r\n    function FilterDisplaySettingsValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    FilterDisplaySettingsValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"isLockedInViewMode\",\r\n                validators: [validator_1.Validators.booleanValidator]\r\n            },\r\n            {\r\n                field: \"isHiddenInViewMode\",\r\n                validators: [validator_1.Validators.booleanValidator]\r\n            },\r\n            {\r\n                field: \"displayName\",\r\n                validators: [validator_1.Validators.stringValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return FilterDisplaySettingsValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.FilterDisplaySettingsValidator = FilterDisplaySettingsValidator;\r\nvar FilterValidatorBase = /** @class */ (function (_super) {\r\n    __extends(FilterValidatorBase, _super);\r\n    function FilterValidatorBase() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    FilterValidatorBase.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"target\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.filterTargetValidator]\r\n            },\r\n            {\r\n                field: \"$schema\",\r\n                validators: [validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"filterType\",\r\n                validators: [validator_1.Validators.filterTypeValidator]\r\n            },\r\n            {\r\n                field: \"displaySettings\",\r\n                validators: [validator_1.Validators.filterDisplaySettingsValidator]\r\n            },\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return FilterValidatorBase;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.FilterValidatorBase = FilterValidatorBase;\r\nvar BasicFilterValidator = /** @class */ (function (_super) {\r\n    __extends(BasicFilterValidator, _super);\r\n    function BasicFilterValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    BasicFilterValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"operator\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"values\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.anyArrayValidator]\r\n            },\r\n            {\r\n                field: \"filterType\",\r\n                validators: [validator_1.Validators.basicFilterTypeValidator]\r\n            },\r\n            {\r\n                field: \"requireSingleSelection\",\r\n                validators: [validator_1.Validators.booleanValidator]\r\n            },\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return BasicFilterValidator;\r\n}(FilterValidatorBase));\r\nexports.BasicFilterValidator = BasicFilterValidator;\r\nvar AdvancedFilterValidator = /** @class */ (function (_super) {\r\n    __extends(AdvancedFilterValidator, _super);\r\n    function AdvancedFilterValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    AdvancedFilterValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"logicalOperator\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"conditions\",\r\n                validators: [validator_1.Validators.filterConditionsValidator]\r\n            },\r\n            {\r\n                field: \"filterType\",\r\n                validators: [validator_1.Validators.advancedFilterTypeValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return AdvancedFilterValidator;\r\n}(FilterValidatorBase));\r\nexports.AdvancedFilterValidator = AdvancedFilterValidator;\r\nvar RelativeDateTimeFilterValidator = /** @class */ (function (_super) {\r\n    __extends(RelativeDateTimeFilterValidator, _super);\r\n    function RelativeDateTimeFilterValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    RelativeDateTimeFilterValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"operator\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.relativeDateFilterOperatorValidator]\r\n            },\r\n            {\r\n                field: \"timeUnitsCount\",\r\n                validators: [validator_1.Validators.numberValidator]\r\n            },\r\n            {\r\n                field: \"timeUnitType\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.relativeDateTimeFilterUnitTypeValidator]\r\n            },\r\n            {\r\n                field: \"filterType\",\r\n                validators: [validator_1.Validators.relativeDateTimeFilterTypeValidator]\r\n            },\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return RelativeDateTimeFilterValidator;\r\n}(FilterValidatorBase));\r\nexports.RelativeDateTimeFilterValidator = RelativeDateTimeFilterValidator;\r\nvar RelativeDateFilterValidator = /** @class */ (function (_super) {\r\n    __extends(RelativeDateFilterValidator, _super);\r\n    function RelativeDateFilterValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    RelativeDateFilterValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"includeToday\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.booleanValidator]\r\n            },\r\n            {\r\n                field: \"timeUnitType\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.relativeDateFilterTimeUnitTypeValidator]\r\n            },\r\n            {\r\n                field: \"filterType\",\r\n                validators: [validator_1.Validators.relativeDateFilterTypeValidator]\r\n            },\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return RelativeDateFilterValidator;\r\n}(RelativeDateTimeFilterValidator));\r\nexports.RelativeDateFilterValidator = RelativeDateFilterValidator;\r\nvar RelativeTimeFilterValidator = /** @class */ (function (_super) {\r\n    __extends(RelativeTimeFilterValidator, _super);\r\n    function RelativeTimeFilterValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    RelativeTimeFilterValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"timeUnitType\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.relativeTimeFilterTimeUnitTypeValidator]\r\n            },\r\n            {\r\n                field: \"filterType\",\r\n                validators: [validator_1.Validators.relativeTimeFilterTypeValidator]\r\n            },\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return RelativeTimeFilterValidator;\r\n}(RelativeDateTimeFilterValidator));\r\nexports.RelativeTimeFilterValidator = RelativeTimeFilterValidator;\r\nvar TopNFilterValidator = /** @class */ (function (_super) {\r\n    __extends(TopNFilterValidator, _super);\r\n    function TopNFilterValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    TopNFilterValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"operator\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"itemCount\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.numberValidator]\r\n            },\r\n            {\r\n                field: \"filterType\",\r\n                validators: [validator_1.Validators.topNFilterTypeValidator]\r\n            },\r\n            {\r\n                field: \"orderBy\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.filterTargetValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return TopNFilterValidator;\r\n}(FilterValidatorBase));\r\nexports.TopNFilterValidator = TopNFilterValidator;\r\nvar NotSupportedFilterValidator = /** @class */ (function (_super) {\r\n    __extends(NotSupportedFilterValidator, _super);\r\n    function NotSupportedFilterValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    NotSupportedFilterValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"message\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"notSupportedTypeName\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"filterType\",\r\n                validators: [validator_1.Validators.notSupportedFilterTypeValidator]\r\n            },\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return NotSupportedFilterValidator;\r\n}(FilterValidatorBase));\r\nexports.NotSupportedFilterValidator = NotSupportedFilterValidator;\r\nvar IncludeExcludeFilterValidator = /** @class */ (function (_super) {\r\n    __extends(IncludeExcludeFilterValidator, _super);\r\n    function IncludeExcludeFilterValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    IncludeExcludeFilterValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"isExclude\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.booleanValidator]\r\n            },\r\n            {\r\n                field: \"values\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.anyArrayValidator]\r\n            },\r\n            {\r\n                field: \"filterType\",\r\n                validators: [validator_1.Validators.includeExludeFilterTypeValidator]\r\n            },\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return IncludeExcludeFilterValidator;\r\n}(FilterValidatorBase));\r\nexports.IncludeExcludeFilterValidator = IncludeExcludeFilterValidator;\r\nvar HierarchyFilterValidator = /** @class */ (function (_super) {\r\n    __extends(HierarchyFilterValidator, _super);\r\n    function HierarchyFilterValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    HierarchyFilterValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"hierarchyData\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.hierarchyFilterValuesValidator]\r\n            },\r\n            {\r\n                field: \"filterType\",\r\n                validators: [validator_1.Validators.hierarchyFilterTypeValidator]\r\n            },\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return HierarchyFilterValidator;\r\n}(FilterValidatorBase));\r\nexports.HierarchyFilterValidator = HierarchyFilterValidator;\r\nvar HierarchyFilterNodeValidator = /** @class */ (function (_super) {\r\n    __extends(HierarchyFilterNodeValidator, _super);\r\n    function HierarchyFilterNodeValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    HierarchyFilterNodeValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"value\",\r\n                validators: [validator_1.Validators.anyValueValidator]\r\n            },\r\n            {\r\n                field: \"keyValues\",\r\n                validators: [validator_1.Validators.anyArrayValidator]\r\n            },\r\n            {\r\n                field: \"children\",\r\n                validators: [validator_1.Validators.hierarchyFilterValuesValidator]\r\n            },\r\n            {\r\n                field: \"operator\",\r\n                validators: [validator_1.Validators.stringValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return HierarchyFilterNodeValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.HierarchyFilterNodeValidator = HierarchyFilterNodeValidator;\r\nvar FilterValidator = /** @class */ (function (_super) {\r\n    __extends(FilterValidator, _super);\r\n    function FilterValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    FilterValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        return validator_1.Validators.anyFilterValidator.validate(input, path, field);\r\n    };\r\n    return FilterValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.FilterValidator = FilterValidator;\r\nvar UpdateFiltersRequestValidator = /** @class */ (function (_super) {\r\n    __extends(UpdateFiltersRequestValidator, _super);\r\n    function UpdateFiltersRequestValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    UpdateFiltersRequestValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"filtersOperation\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.filtersOperationsUpdateValidator]\r\n            },\r\n            {\r\n                field: \"filters\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.filtersArrayValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return UpdateFiltersRequestValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.UpdateFiltersRequestValidator = UpdateFiltersRequestValidator;\r\nvar RemoveFiltersRequestValidator = /** @class */ (function (_super) {\r\n    __extends(RemoveFiltersRequestValidator, _super);\r\n    function RemoveFiltersRequestValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    RemoveFiltersRequestValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"filtersOperation\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.filtersOperationsRemoveAllValidator]\r\n            },\r\n            {\r\n                field: \"filters\",\r\n                validators: [validator_1.Validators.fieldForbiddenValidator, validator_1.Validators.filtersArrayValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return RemoveFiltersRequestValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.RemoveFiltersRequestValidator = RemoveFiltersRequestValidator;\r\nvar ConditionItemValidator = /** @class */ (function (_super) {\r\n    __extends(ConditionItemValidator, _super);\r\n    function ConditionItemValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    ConditionItemValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"value\",\r\n                validators: [validator_1.Validators.anyValueValidator]\r\n            },\r\n            {\r\n                field: \"operator\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return ConditionItemValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.ConditionItemValidator = ConditionItemValidator;\r\nvar OnLoadFiltersBaseValidator = /** @class */ (function (_super) {\r\n    __extends(OnLoadFiltersBaseValidator, _super);\r\n    function OnLoadFiltersBaseValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    OnLoadFiltersBaseValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"operation\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.filtersOperationsUpdateValidator]\r\n            },\r\n            {\r\n                field: \"filters\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.filtersArrayValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return OnLoadFiltersBaseValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.OnLoadFiltersBaseValidator = OnLoadFiltersBaseValidator;\r\nvar OnLoadFiltersBaseRemoveOperationValidator = /** @class */ (function (_super) {\r\n    __extends(OnLoadFiltersBaseRemoveOperationValidator, _super);\r\n    function OnLoadFiltersBaseRemoveOperationValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    OnLoadFiltersBaseRemoveOperationValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"operation\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.filtersOperationsRemoveAllValidator]\r\n            },\r\n            {\r\n                field: \"filters\",\r\n                validators: [validator_1.Validators.fieldForbiddenValidator, validator_1.Validators.filtersArrayValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return OnLoadFiltersBaseRemoveOperationValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.OnLoadFiltersBaseRemoveOperationValidator = OnLoadFiltersBaseRemoveOperationValidator;\r\nvar OnLoadFiltersValidator = /** @class */ (function (_super) {\r\n    __extends(OnLoadFiltersValidator, _super);\r\n    function OnLoadFiltersValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    OnLoadFiltersValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"allPages\",\r\n                validators: [validator_1.Validators.onLoadFiltersBaseValidator]\r\n            },\r\n            {\r\n                field: \"currentPage\",\r\n                validators: [validator_1.Validators.onLoadFiltersBaseValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return OnLoadFiltersValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.OnLoadFiltersValidator = OnLoadFiltersValidator;\r\n\n\n/***/ }),\n/* 13 */\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\nvar __extends = (this && this.__extends) || (function () {\r\n    var 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    return function (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\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.PageLayoutValidator = exports.DisplayStateValidator = exports.VisualLayoutValidator = exports.CustomLayoutValidator = void 0;\r\nvar multipleFieldsValidator_1 = __webpack_require__(3);\r\nvar typeValidator_1 = __webpack_require__(4);\r\nvar validator_1 = __webpack_require__(1);\r\nvar CustomLayoutValidator = /** @class */ (function (_super) {\r\n    __extends(CustomLayoutValidator, _super);\r\n    function CustomLayoutValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    CustomLayoutValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"pageSize\",\r\n                validators: [validator_1.Validators.pageSizeValidator]\r\n            },\r\n            {\r\n                field: \"displayOption\",\r\n                validators: [validator_1.Validators.customLayoutDisplayOptionValidator]\r\n            },\r\n            {\r\n                field: \"pagesLayout\",\r\n                validators: [validator_1.Validators.pagesLayoutValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return CustomLayoutValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.CustomLayoutValidator = CustomLayoutValidator;\r\nvar VisualLayoutValidator = /** @class */ (function (_super) {\r\n    __extends(VisualLayoutValidator, _super);\r\n    function VisualLayoutValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    VisualLayoutValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"x\",\r\n                validators: [validator_1.Validators.numberValidator]\r\n            },\r\n            {\r\n                field: \"y\",\r\n                validators: [validator_1.Validators.numberValidator]\r\n            },\r\n            {\r\n                field: \"z\",\r\n                validators: [validator_1.Validators.numberValidator]\r\n            },\r\n            {\r\n                field: \"width\",\r\n                validators: [validator_1.Validators.numberValidator]\r\n            },\r\n            {\r\n                field: \"height\",\r\n                validators: [validator_1.Validators.numberValidator]\r\n            },\r\n            {\r\n                field: \"displayState\",\r\n                validators: [validator_1.Validators.displayStateValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return VisualLayoutValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.VisualLayoutValidator = VisualLayoutValidator;\r\nvar DisplayStateValidator = /** @class */ (function (_super) {\r\n    __extends(DisplayStateValidator, _super);\r\n    function DisplayStateValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    DisplayStateValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"mode\",\r\n                validators: [validator_1.Validators.displayStateModeValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return DisplayStateValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.DisplayStateValidator = DisplayStateValidator;\r\nvar PageLayoutValidator = /** @class */ (function (_super) {\r\n    __extends(PageLayoutValidator, _super);\r\n    function PageLayoutValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    PageLayoutValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"visualsLayout\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.pageLayoutValidator]\r\n            },\r\n            {\r\n                field: \"defaultLayout\",\r\n                validators: [validator_1.Validators.visualLayoutValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return PageLayoutValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.PageLayoutValidator = PageLayoutValidator;\r\n\n\n/***/ }),\n/* 14 */\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\nvar __extends = (this && this.__extends) || (function () {\r\n    var 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    return function (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\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.PageViewFieldValidator = exports.PageValidator = exports.CustomPageSizeValidator = exports.PageSizeValidator = void 0;\r\nvar multipleFieldsValidator_1 = __webpack_require__(3);\r\nvar typeValidator_1 = __webpack_require__(4);\r\nvar validator_1 = __webpack_require__(1);\r\nvar PageSizeValidator = /** @class */ (function (_super) {\r\n    __extends(PageSizeValidator, _super);\r\n    function PageSizeValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    PageSizeValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"type\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.pageSizeTypeValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return PageSizeValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.PageSizeValidator = PageSizeValidator;\r\nvar CustomPageSizeValidator = /** @class */ (function (_super) {\r\n    __extends(CustomPageSizeValidator, _super);\r\n    function CustomPageSizeValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    CustomPageSizeValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"width\",\r\n                validators: [validator_1.Validators.numberValidator]\r\n            },\r\n            {\r\n                field: \"height\",\r\n                validators: [validator_1.Validators.numberValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return CustomPageSizeValidator;\r\n}(PageSizeValidator));\r\nexports.CustomPageSizeValidator = CustomPageSizeValidator;\r\nvar PageValidator = /** @class */ (function (_super) {\r\n    __extends(PageValidator, _super);\r\n    function PageValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    PageValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"name\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return PageValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.PageValidator = PageValidator;\r\nvar PageViewFieldValidator = /** @class */ (function (_super) {\r\n    __extends(PageViewFieldValidator, _super);\r\n    function PageViewFieldValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    PageViewFieldValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var possibleValues = [\"actualSize\", \"fitToWidth\", \"oneColumn\"];\r\n        if (possibleValues.indexOf(input) < 0) {\r\n            return [{\r\n                    message: \"pageView must be a string with one of the following values: \\\"actualSize\\\", \\\"fitToWidth\\\", \\\"oneColumn\\\"\"\r\n                }];\r\n        }\r\n        return null;\r\n    };\r\n    return PageViewFieldValidator;\r\n}(typeValidator_1.StringValidator));\r\nexports.PageViewFieldValidator = PageViewFieldValidator;\r\n\n\n/***/ }),\n/* 15 */\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\nvar __extends = (this && this.__extends) || (function () {\r\n    var 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    return function (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\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.VisualizationsPaneValidator = exports.SyncSlicersPaneValidator = exports.SelectionPaneValidator = exports.PageNavigationPaneValidator = exports.FiltersPaneValidator = exports.FieldsPaneValidator = exports.BookmarksPaneValidator = exports.QnaPanesValidator = exports.ReportPanesValidator = void 0;\r\nvar multipleFieldsValidator_1 = __webpack_require__(3);\r\nvar typeValidator_1 = __webpack_require__(4);\r\nvar validator_1 = __webpack_require__(1);\r\nvar ReportPanesValidator = /** @class */ (function (_super) {\r\n    __extends(ReportPanesValidator, _super);\r\n    function ReportPanesValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    ReportPanesValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"bookmarks\",\r\n                validators: [validator_1.Validators.bookmarksPaneValidator]\r\n            },\r\n            {\r\n                field: \"fields\",\r\n                validators: [validator_1.Validators.fieldsPaneValidator]\r\n            },\r\n            {\r\n                field: \"filters\",\r\n                validators: [validator_1.Validators.filtersPaneValidator]\r\n            },\r\n            {\r\n                field: \"pageNavigation\",\r\n                validators: [validator_1.Validators.pageNavigationPaneValidator]\r\n            },\r\n            {\r\n                field: \"selection\",\r\n                validators: [validator_1.Validators.selectionPaneValidator]\r\n            },\r\n            {\r\n                field: \"syncSlicers\",\r\n                validators: [validator_1.Validators.syncSlicersPaneValidator]\r\n            },\r\n            {\r\n                field: \"visualizations\",\r\n                validators: [validator_1.Validators.visualizationsPaneValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return ReportPanesValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.ReportPanesValidator = ReportPanesValidator;\r\nvar QnaPanesValidator = /** @class */ (function (_super) {\r\n    __extends(QnaPanesValidator, _super);\r\n    function QnaPanesValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    QnaPanesValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"filters\",\r\n                validators: [validator_1.Validators.filtersPaneValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return QnaPanesValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.QnaPanesValidator = QnaPanesValidator;\r\nvar BookmarksPaneValidator = /** @class */ (function (_super) {\r\n    __extends(BookmarksPaneValidator, _super);\r\n    function BookmarksPaneValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    BookmarksPaneValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"visible\",\r\n                validators: [validator_1.Validators.booleanValidator]\r\n            },\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return BookmarksPaneValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.BookmarksPaneValidator = BookmarksPaneValidator;\r\nvar FieldsPaneValidator = /** @class */ (function (_super) {\r\n    __extends(FieldsPaneValidator, _super);\r\n    function FieldsPaneValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    FieldsPaneValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"expanded\",\r\n                validators: [validator_1.Validators.booleanValidator]\r\n            },\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return FieldsPaneValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.FieldsPaneValidator = FieldsPaneValidator;\r\nvar FiltersPaneValidator = /** @class */ (function (_super) {\r\n    __extends(FiltersPaneValidator, _super);\r\n    function FiltersPaneValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    FiltersPaneValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"visible\",\r\n                validators: [validator_1.Validators.booleanValidator]\r\n            },\r\n            {\r\n                field: \"expanded\",\r\n                validators: [validator_1.Validators.booleanValidator]\r\n            },\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return FiltersPaneValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.FiltersPaneValidator = FiltersPaneValidator;\r\nvar PageNavigationPaneValidator = /** @class */ (function (_super) {\r\n    __extends(PageNavigationPaneValidator, _super);\r\n    function PageNavigationPaneValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    PageNavigationPaneValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"visible\",\r\n                validators: [validator_1.Validators.booleanValidator]\r\n            },\r\n            {\r\n                field: \"position\",\r\n                validators: [validator_1.Validators.pageNavigationPositionValidator]\r\n            },\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return PageNavigationPaneValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.PageNavigationPaneValidator = PageNavigationPaneValidator;\r\nvar SelectionPaneValidator = /** @class */ (function (_super) {\r\n    __extends(SelectionPaneValidator, _super);\r\n    function SelectionPaneValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    SelectionPaneValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"visible\",\r\n                validators: [validator_1.Validators.booleanValidator]\r\n            },\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return SelectionPaneValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.SelectionPaneValidator = SelectionPaneValidator;\r\nvar SyncSlicersPaneValidator = /** @class */ (function (_super) {\r\n    __extends(SyncSlicersPaneValidator, _super);\r\n    function SyncSlicersPaneValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    SyncSlicersPaneValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"visible\",\r\n                validators: [validator_1.Validators.booleanValidator]\r\n            },\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return SyncSlicersPaneValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.SyncSlicersPaneValidator = SyncSlicersPaneValidator;\r\nvar VisualizationsPaneValidator = /** @class */ (function (_super) {\r\n    __extends(VisualizationsPaneValidator, _super);\r\n    function VisualizationsPaneValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    VisualizationsPaneValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"expanded\",\r\n                validators: [validator_1.Validators.booleanValidator]\r\n            },\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return VisualizationsPaneValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.VisualizationsPaneValidator = VisualizationsPaneValidator;\r\n\n\n/***/ }),\n/* 16 */\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\nvar __extends = (this && this.__extends) || (function () {\r\n    var 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    return function (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\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.QnaInterpretInputDataValidator = exports.QnaSettingsValidator = exports.LoadQnaValidator = void 0;\r\nvar multipleFieldsValidator_1 = __webpack_require__(3);\r\nvar typeValidator_1 = __webpack_require__(4);\r\nvar validator_1 = __webpack_require__(1);\r\nvar LoadQnaValidator = /** @class */ (function (_super) {\r\n    __extends(LoadQnaValidator, _super);\r\n    function LoadQnaValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    LoadQnaValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"accessToken\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"datasetIds\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringArrayValidator]\r\n            },\r\n            {\r\n                field: \"question\",\r\n                validators: [validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"viewMode\",\r\n                validators: [validator_1.Validators.viewModeValidator]\r\n            },\r\n            {\r\n                field: \"settings\",\r\n                validators: [validator_1.Validators.qnaSettingValidator]\r\n            },\r\n            {\r\n                field: \"tokenType\",\r\n                validators: [validator_1.Validators.tokenTypeValidator]\r\n            },\r\n            {\r\n                field: \"groupId\",\r\n                validators: [validator_1.Validators.stringValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return LoadQnaValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.LoadQnaValidator = LoadQnaValidator;\r\nvar QnaSettingsValidator = /** @class */ (function (_super) {\r\n    __extends(QnaSettingsValidator, _super);\r\n    function QnaSettingsValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    QnaSettingsValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"filterPaneEnabled\",\r\n                validators: [validator_1.Validators.booleanValidator]\r\n            },\r\n            {\r\n                field: \"hideErrors\",\r\n                validators: [validator_1.Validators.booleanValidator]\r\n            },\r\n            {\r\n                field: \"panes\",\r\n                validators: [validator_1.Validators.qnaPanesValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return QnaSettingsValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.QnaSettingsValidator = QnaSettingsValidator;\r\nvar QnaInterpretInputDataValidator = /** @class */ (function (_super) {\r\n    __extends(QnaInterpretInputDataValidator, _super);\r\n    function QnaInterpretInputDataValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    QnaInterpretInputDataValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"datasetIds\",\r\n                validators: [validator_1.Validators.stringArrayValidator]\r\n            },\r\n            {\r\n                field: \"question\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            },\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return QnaInterpretInputDataValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.QnaInterpretInputDataValidator = QnaInterpretInputDataValidator;\r\n\n\n/***/ }),\n/* 17 */\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\nvar __extends = (this && this.__extends) || (function () {\r\n    var 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    return function (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\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.ReportCreateValidator = void 0;\r\nvar multipleFieldsValidator_1 = __webpack_require__(3);\r\nvar typeValidator_1 = __webpack_require__(4);\r\nvar validator_1 = __webpack_require__(1);\r\nvar ReportCreateValidator = /** @class */ (function (_super) {\r\n    __extends(ReportCreateValidator, _super);\r\n    function ReportCreateValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    ReportCreateValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"accessToken\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"datasetId\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"groupId\",\r\n                validators: [validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"tokenType\",\r\n                validators: [validator_1.Validators.tokenTypeValidator]\r\n            },\r\n            {\r\n                field: \"theme\",\r\n                validators: [validator_1.Validators.customThemeValidator]\r\n            },\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return ReportCreateValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.ReportCreateValidator = ReportCreateValidator;\r\n\n\n/***/ }),\n/* 18 */\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\nvar __extends = (this && this.__extends) || (function () {\r\n    var 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    return function (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\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.ReportLoadValidator = void 0;\r\nvar multipleFieldsValidator_1 = __webpack_require__(3);\r\nvar typeValidator_1 = __webpack_require__(4);\r\nvar validator_1 = __webpack_require__(1);\r\nvar ReportLoadValidator = /** @class */ (function (_super) {\r\n    __extends(ReportLoadValidator, _super);\r\n    function ReportLoadValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    ReportLoadValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"accessToken\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"id\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"groupId\",\r\n                validators: [validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"settings\",\r\n                validators: [validator_1.Validators.settingsValidator]\r\n            },\r\n            {\r\n                field: \"pageName\",\r\n                validators: [validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"filters\",\r\n                validators: [validator_1.Validators.reportLoadFiltersValidator]\r\n            },\r\n            {\r\n                field: \"permissions\",\r\n                validators: [validator_1.Validators.permissionsValidator]\r\n            },\r\n            {\r\n                field: \"viewMode\",\r\n                validators: [validator_1.Validators.viewModeValidator]\r\n            },\r\n            {\r\n                field: \"tokenType\",\r\n                validators: [validator_1.Validators.tokenTypeValidator]\r\n            },\r\n            {\r\n                field: \"bookmark\",\r\n                validators: [validator_1.Validators.applyBookmarkValidator]\r\n            },\r\n            {\r\n                field: \"theme\",\r\n                validators: [validator_1.Validators.customThemeValidator]\r\n            },\r\n            {\r\n                field: \"embedUrl\",\r\n                validators: [validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"datasetBinding\",\r\n                validators: [validator_1.Validators.datasetBindingValidator]\r\n            },\r\n            {\r\n                field: \"contrastMode\",\r\n                validators: [validator_1.Validators.contrastModeValidator]\r\n            },\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return ReportLoadValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.ReportLoadValidator = ReportLoadValidator;\r\n\n\n/***/ }),\n/* 19 */\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\nvar __extends = (this && this.__extends) || (function () {\r\n    var 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    return function (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\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.ReportParameterFieldsValidator = exports.PaginatedReportLoadValidator = void 0;\r\nvar multipleFieldsValidator_1 = __webpack_require__(3);\r\nvar typeValidator_1 = __webpack_require__(4);\r\nvar validator_1 = __webpack_require__(1);\r\nvar PaginatedReportLoadValidator = /** @class */ (function (_super) {\r\n    __extends(PaginatedReportLoadValidator, _super);\r\n    function PaginatedReportLoadValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    PaginatedReportLoadValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"accessToken\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"id\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"groupId\",\r\n                validators: [validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"settings\",\r\n                validators: [validator_1.Validators.paginatedReportsettingsValidator]\r\n            },\r\n            {\r\n                field: \"tokenType\",\r\n                validators: [validator_1.Validators.tokenTypeValidator]\r\n            },\r\n            {\r\n                field: \"embedUrl\",\r\n                validators: [validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"type\",\r\n                validators: [validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"parameterValues\",\r\n                validators: [validator_1.Validators.parameterValuesArrayValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return PaginatedReportLoadValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.PaginatedReportLoadValidator = PaginatedReportLoadValidator;\r\nvar ReportParameterFieldsValidator = /** @class */ (function () {\r\n    function ReportParameterFieldsValidator() {\r\n    }\r\n    ReportParameterFieldsValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"name\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"value\",\r\n                validators: [validator_1.Validators.stringValidator]\r\n            },\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return ReportParameterFieldsValidator;\r\n}());\r\nexports.ReportParameterFieldsValidator = ReportParameterFieldsValidator;\r\n\n\n/***/ }),\n/* 20 */\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\nvar __extends = (this && this.__extends) || (function () {\r\n    var 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    return function (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\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.SaveAsParametersValidator = void 0;\r\nvar multipleFieldsValidator_1 = __webpack_require__(3);\r\nvar typeValidator_1 = __webpack_require__(4);\r\nvar validator_1 = __webpack_require__(1);\r\nvar SaveAsParametersValidator = /** @class */ (function (_super) {\r\n    __extends(SaveAsParametersValidator, _super);\r\n    function SaveAsParametersValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    SaveAsParametersValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"name\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return SaveAsParametersValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.SaveAsParametersValidator = SaveAsParametersValidator;\r\n\n\n/***/ }),\n/* 21 */\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\nvar __extends = (this && this.__extends) || (function () {\r\n    var 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    return function (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\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.SlicerTargetSelectorValidator = exports.VisualTypeSelectorValidator = exports.VisualSelectorValidator = void 0;\r\nvar multipleFieldsValidator_1 = __webpack_require__(3);\r\nvar typeValidator_1 = __webpack_require__(4);\r\nvar typeValidator_2 = __webpack_require__(4);\r\nvar validator_1 = __webpack_require__(1);\r\nvar VisualSelectorValidator = /** @class */ (function (_super) {\r\n    __extends(VisualSelectorValidator, _super);\r\n    function VisualSelectorValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    VisualSelectorValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                // Not required for this selector only - Backward compatibility\r\n                field: \"$schema\",\r\n                validators: [validator_1.Validators.stringValidator, new typeValidator_2.SchemaValidator(\"http://powerbi.com/product/schema#visualSelector\")]\r\n            },\r\n            {\r\n                field: \"visualName\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return VisualSelectorValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.VisualSelectorValidator = VisualSelectorValidator;\r\nvar VisualTypeSelectorValidator = /** @class */ (function (_super) {\r\n    __extends(VisualTypeSelectorValidator, _super);\r\n    function VisualTypeSelectorValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    VisualTypeSelectorValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"$schema\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator, new typeValidator_2.SchemaValidator(\"http://powerbi.com/product/schema#visualTypeSelector\")]\r\n            },\r\n            {\r\n                field: \"visualType\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return VisualTypeSelectorValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.VisualTypeSelectorValidator = VisualTypeSelectorValidator;\r\nvar SlicerTargetSelectorValidator = /** @class */ (function (_super) {\r\n    __extends(SlicerTargetSelectorValidator, _super);\r\n    function SlicerTargetSelectorValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    SlicerTargetSelectorValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"$schema\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator, new typeValidator_2.SchemaValidator(\"http://powerbi.com/product/schema#slicerTargetSelector\")]\r\n            },\r\n            {\r\n                field: \"target\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.slicerTargetValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return SlicerTargetSelectorValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.SlicerTargetSelectorValidator = SlicerTargetSelectorValidator;\r\n\n\n/***/ }),\n/* 22 */\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\nvar __extends = (this && this.__extends) || (function () {\r\n    var 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    return function (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\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.PaginatedReportSettingsValidator = exports.SettingsValidator = void 0;\r\nvar multipleFieldsValidator_1 = __webpack_require__(3);\r\nvar typeValidator_1 = __webpack_require__(4);\r\nvar validator_1 = __webpack_require__(1);\r\nvar SettingsValidator = /** @class */ (function (_super) {\r\n    __extends(SettingsValidator, _super);\r\n    function SettingsValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    SettingsValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"filterPaneEnabled\",\r\n                validators: [validator_1.Validators.booleanValidator]\r\n            },\r\n            {\r\n                field: \"navContentPaneEnabled\",\r\n                validators: [validator_1.Validators.booleanValidator]\r\n            },\r\n            {\r\n                field: \"bookmarksPaneEnabled\",\r\n                validators: [validator_1.Validators.booleanValidator]\r\n            },\r\n            {\r\n                field: \"useCustomSaveAsDialog\",\r\n                validators: [validator_1.Validators.booleanValidator]\r\n            },\r\n            {\r\n                field: \"extensions\",\r\n                validators: [validator_1.Validators.extensionsValidator]\r\n            },\r\n            {\r\n                field: \"layoutType\",\r\n                validators: [validator_1.Validators.layoutTypeValidator]\r\n            },\r\n            {\r\n                field: \"customLayout\",\r\n                validators: [validator_1.Validators.customLayoutValidator]\r\n            },\r\n            {\r\n                field: \"background\",\r\n                validators: [validator_1.Validators.backgroundValidator]\r\n            },\r\n            {\r\n                field: \"visualSettings\",\r\n                validators: [validator_1.Validators.visualSettingsValidator]\r\n            },\r\n            {\r\n                field: \"hideErrors\",\r\n                validators: [validator_1.Validators.booleanValidator]\r\n            },\r\n            {\r\n                field: \"commands\",\r\n                validators: [validator_1.Validators.commandsSettingsArrayValidator]\r\n            },\r\n            {\r\n                field: \"hyperlinkClickBehavior\",\r\n                validators: [validator_1.Validators.hyperlinkClickBehaviorValidator]\r\n            },\r\n            {\r\n                field: \"bars\",\r\n                validators: [validator_1.Validators.reportBarsValidator]\r\n            },\r\n            {\r\n                field: \"panes\",\r\n                validators: [validator_1.Validators.reportPanesValidator]\r\n            },\r\n            {\r\n                field: \"personalBookmarksEnabled\",\r\n                validators: [validator_1.Validators.booleanValidator]\r\n            },\r\n            {\r\n                field: \"persistentFiltersEnabled\",\r\n                validators: [validator_1.Validators.booleanValidator]\r\n            },\r\n            {\r\n                field: \"visualRenderedEvents\",\r\n                validators: [validator_1.Validators.booleanValidator]\r\n            },\r\n            {\r\n                field: \"authoringHintsEnabled\",\r\n                validators: [validator_1.Validators.booleanValidator]\r\n            },\r\n            {\r\n                field: \"printSettings\",\r\n                validators: [validator_1.Validators.printSettingsValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return SettingsValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.SettingsValidator = SettingsValidator;\r\nvar PaginatedReportSettingsValidator = /** @class */ (function (_super) {\r\n    __extends(PaginatedReportSettingsValidator, _super);\r\n    function PaginatedReportSettingsValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    PaginatedReportSettingsValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"commands\",\r\n                validators: [validator_1.Validators.paginatedReportCommandsValidator]\r\n            },\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return PaginatedReportSettingsValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.PaginatedReportSettingsValidator = PaginatedReportSettingsValidator;\r\n\n\n/***/ }),\n/* 23 */\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\nvar __extends = (this && this.__extends) || (function () {\r\n    var 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    return function (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\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.SlicerStateValidator = exports.SlicerValidator = void 0;\r\nvar multipleFieldsValidator_1 = __webpack_require__(3);\r\nvar typeValidator_1 = __webpack_require__(4);\r\nvar validator_1 = __webpack_require__(1);\r\nvar SlicerValidator = /** @class */ (function (_super) {\r\n    __extends(SlicerValidator, _super);\r\n    function SlicerValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    SlicerValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"selector\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.slicerSelectorValidator]\r\n            },\r\n            {\r\n                field: \"state\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.slicerStateValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return SlicerValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.SlicerValidator = SlicerValidator;\r\nvar SlicerStateValidator = /** @class */ (function (_super) {\r\n    __extends(SlicerStateValidator, _super);\r\n    function SlicerStateValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    SlicerStateValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"filters\",\r\n                validators: [validator_1.Validators.filtersArrayValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return SlicerStateValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.SlicerStateValidator = SlicerStateValidator;\r\n\n\n/***/ }),\n/* 24 */\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\nvar __extends = (this && this.__extends) || (function () {\r\n    var 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    return function (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\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.TileLoadValidator = void 0;\r\nvar multipleFieldsValidator_1 = __webpack_require__(3);\r\nvar typeValidator_1 = __webpack_require__(4);\r\nvar validator_1 = __webpack_require__(1);\r\nvar TileLoadValidator = /** @class */ (function (_super) {\r\n    __extends(TileLoadValidator, _super);\r\n    function TileLoadValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    TileLoadValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"accessToken\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"id\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"dashboardId\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"groupId\",\r\n                validators: [validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"pageView\",\r\n                validators: [validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"tokenType\",\r\n                validators: [validator_1.Validators.tokenTypeValidator]\r\n            },\r\n            {\r\n                field: \"width\",\r\n                validators: [validator_1.Validators.numberValidator]\r\n            },\r\n            {\r\n                field: \"height\",\r\n                validators: [validator_1.Validators.numberValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return TileLoadValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.TileLoadValidator = TileLoadValidator;\r\n\n\n/***/ }),\n/* 25 */\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\nvar __extends = (this && this.__extends) || (function () {\r\n    var 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    return function (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\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.VisualHeaderValidator = exports.VisualHeaderSettingsValidator = exports.VisualSettingsValidator = void 0;\r\nvar multipleFieldsValidator_1 = __webpack_require__(3);\r\nvar typeValidator_1 = __webpack_require__(4);\r\nvar validator_1 = __webpack_require__(1);\r\nvar VisualSettingsValidator = /** @class */ (function (_super) {\r\n    __extends(VisualSettingsValidator, _super);\r\n    function VisualSettingsValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    VisualSettingsValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"visualHeaders\",\r\n                validators: [validator_1.Validators.visualHeadersValidator]\r\n            },\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return VisualSettingsValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.VisualSettingsValidator = VisualSettingsValidator;\r\nvar VisualHeaderSettingsValidator = /** @class */ (function (_super) {\r\n    __extends(VisualHeaderSettingsValidator, _super);\r\n    function VisualHeaderSettingsValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    VisualHeaderSettingsValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"visible\",\r\n                validators: [validator_1.Validators.booleanValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return VisualHeaderSettingsValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.VisualHeaderSettingsValidator = VisualHeaderSettingsValidator;\r\nvar VisualHeaderValidator = /** @class */ (function (_super) {\r\n    __extends(VisualHeaderValidator, _super);\r\n    function VisualHeaderValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    VisualHeaderValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"settings\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.visualHeaderSettingsValidator]\r\n            },\r\n            {\r\n                field: \"selector\",\r\n                validators: [validator_1.Validators.visualHeaderSelectorValidator]\r\n            },\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return VisualHeaderValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.VisualHeaderValidator = VisualHeaderValidator;\r\n\n\n/***/ }),\n/* 26 */\n/***/ ((__unused_webpack_module, exports) => {\n\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.AnyOfValidator = void 0;\r\nvar AnyOfValidator = /** @class */ (function () {\r\n    function AnyOfValidator(validators) {\r\n        this.validators = validators;\r\n    }\r\n    AnyOfValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var valid = false;\r\n        for (var _i = 0, _a = this.validators; _i < _a.length; _i++) {\r\n            var validator = _a[_i];\r\n            var errors = validator.validate(input, path, field);\r\n            if (!errors) {\r\n                valid = true;\r\n                break;\r\n            }\r\n        }\r\n        if (!valid) {\r\n            return [{\r\n                    message: field + \" property is invalid\",\r\n                    path: (path ? path + \".\" : \"\") + field,\r\n                    keyword: \"invalid\"\r\n                }];\r\n        }\r\n        return null;\r\n    };\r\n    return AnyOfValidator;\r\n}());\r\nexports.AnyOfValidator = AnyOfValidator;\r\n\n\n/***/ }),\n/* 27 */\n/***/ ((__unused_webpack_module, exports) => {\n\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.FieldForbiddenValidator = void 0;\r\nvar FieldForbiddenValidator = /** @class */ (function () {\r\n    function FieldForbiddenValidator() {\r\n    }\r\n    FieldForbiddenValidator.prototype.validate = function (input, path, field) {\r\n        if (input !== undefined) {\r\n            return [{\r\n                    message: field + \" is forbidden\",\r\n                    path: (path ? path + \".\" : \"\") + field,\r\n                    keyword: \"forbidden\"\r\n                }];\r\n        }\r\n        return null;\r\n    };\r\n    return FieldForbiddenValidator;\r\n}());\r\nexports.FieldForbiddenValidator = FieldForbiddenValidator;\r\n\n\n/***/ }),\n/* 28 */\n/***/ ((__unused_webpack_module, exports) => {\n\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.FieldRequiredValidator = void 0;\r\nvar FieldRequiredValidator = /** @class */ (function () {\r\n    function FieldRequiredValidator() {\r\n    }\r\n    FieldRequiredValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return [{\r\n                    message: field + \" is required\",\r\n                    path: (path ? path + \".\" : \"\") + field,\r\n                    keyword: \"required\"\r\n                }];\r\n        }\r\n        return null;\r\n    };\r\n    return FieldRequiredValidator;\r\n}());\r\nexports.FieldRequiredValidator = FieldRequiredValidator;\r\n\n\n/***/ }),\n/* 29 */\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\nvar __extends = (this && this.__extends) || (function () {\r\n    var 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    return function (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\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.MapValidator = void 0;\r\nvar typeValidator_1 = __webpack_require__(4);\r\nvar MapValidator = /** @class */ (function (_super) {\r\n    __extends(MapValidator, _super);\r\n    function MapValidator(keyValidators, valueValidators) {\r\n        var _this = _super.call(this) || this;\r\n        _this.keyValidators = keyValidators;\r\n        _this.valueValidators = valueValidators;\r\n        return _this;\r\n    }\r\n    MapValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        for (var key in input) {\r\n            if (input.hasOwnProperty(key)) {\r\n                var fieldsPath = (path ? path + \".\" : \"\") + field + \".\" + key;\r\n                for (var _i = 0, _a = this.keyValidators; _i < _a.length; _i++) {\r\n                    var keyValidator = _a[_i];\r\n                    errors = keyValidator.validate(key, fieldsPath, field);\r\n                    if (errors) {\r\n                        return errors;\r\n                    }\r\n                }\r\n                for (var _b = 0, _c = this.valueValidators; _b < _c.length; _b++) {\r\n                    var valueValidator = _c[_b];\r\n                    errors = valueValidator.validate(input[key], fieldsPath, field);\r\n                    if (errors) {\r\n                        return errors;\r\n                    }\r\n                }\r\n            }\r\n        }\r\n        return null;\r\n    };\r\n    return MapValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.MapValidator = MapValidator;\r\n\n\n/***/ }),\n/* 30 */\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\nvar __extends = (this && this.__extends) || (function () {\r\n    var 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    return function (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\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.ParametersPanelValidator = void 0;\r\nvar multipleFieldsValidator_1 = __webpack_require__(3);\r\nvar typeValidator_1 = __webpack_require__(4);\r\nvar validator_1 = __webpack_require__(1);\r\nvar ParametersPanelValidator = /** @class */ (function (_super) {\r\n    __extends(ParametersPanelValidator, _super);\r\n    function ParametersPanelValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    ParametersPanelValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"expanded\",\r\n                validators: [validator_1.Validators.booleanValidator]\r\n            },\r\n            {\r\n                field: \"enabled\",\r\n                validators: [validator_1.Validators.booleanValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return ParametersPanelValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.ParametersPanelValidator = ParametersPanelValidator;\r\n\n\n/***/ }),\n/* 31 */\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\nvar __extends = (this && this.__extends) || (function () {\r\n    var 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    return function (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\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.TableDataValidator = exports.TableSchemaValidator = exports.ColumnSchemaValidator = exports.CredentialsValidator = exports.DatasourceConnectionConfigValidator = exports.DatasetCreateConfigValidator = void 0;\r\nvar multipleFieldsValidator_1 = __webpack_require__(3);\r\nvar typeValidator_1 = __webpack_require__(4);\r\nvar validator_1 = __webpack_require__(1);\r\nvar DatasetCreateConfigValidator = /** @class */ (function (_super) {\r\n    __extends(DatasetCreateConfigValidator, _super);\r\n    function DatasetCreateConfigValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    DatasetCreateConfigValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"locale\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"mashupDocument\",\r\n                validators: [validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"datasourceConnectionConfig\",\r\n                validators: [validator_1.Validators.datasourceConnectionConfigValidator]\r\n            },\r\n            {\r\n                field: \"tableSchemaList\",\r\n                validators: [validator_1.Validators.tableSchemaListValidator]\r\n            },\r\n            {\r\n                field: \"data\",\r\n                validators: [validator_1.Validators.tableDataArrayValidator]\r\n            },\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        errors = multipleFieldsValidator.validate(input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        if (input[\"datasourceConnectionConfig\"] && input[\"mashupDocument\"] == null) {\r\n            return [{\r\n                    message: \"mashupDocument cannot be empty when datasourceConnectionConfig is presented\"\r\n                }];\r\n        }\r\n        if (input[\"data\"] && input[\"tableSchemaList\"] == null) {\r\n            return [{\r\n                    message: \"tableSchemaList cannot be empty when data is provided\"\r\n                }];\r\n        }\r\n        if (input[\"data\"] == null && input[\"mashupDocument\"] == null) {\r\n            return [{\r\n                    message: \"At least one of data or mashupDocument must be provided\"\r\n                }];\r\n        }\r\n    };\r\n    return DatasetCreateConfigValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.DatasetCreateConfigValidator = DatasetCreateConfigValidator;\r\nvar DatasourceConnectionConfigValidator = /** @class */ (function (_super) {\r\n    __extends(DatasourceConnectionConfigValidator, _super);\r\n    function DatasourceConnectionConfigValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    DatasourceConnectionConfigValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"dataCacheMode\",\r\n                validators: [validator_1.Validators.dataCacheModeValidator]\r\n            },\r\n            {\r\n                field: \"credentials\",\r\n                validators: [validator_1.Validators.credentialsValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return DatasourceConnectionConfigValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.DatasourceConnectionConfigValidator = DatasourceConnectionConfigValidator;\r\nvar CredentialsValidator = /** @class */ (function (_super) {\r\n    __extends(CredentialsValidator, _super);\r\n    function CredentialsValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    CredentialsValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"credentialType\",\r\n                validators: [validator_1.Validators.credentialTypeValidator]\r\n            },\r\n            {\r\n                field: \"credentialDetails\",\r\n                validators: [validator_1.Validators.credentialDetailsValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return CredentialsValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.CredentialsValidator = CredentialsValidator;\r\nvar ColumnSchemaValidator = /** @class */ (function (_super) {\r\n    __extends(ColumnSchemaValidator, _super);\r\n    function ColumnSchemaValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    ColumnSchemaValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"name\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"displayName\",\r\n                validators: [validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"dataType\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return ColumnSchemaValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.ColumnSchemaValidator = ColumnSchemaValidator;\r\nvar TableSchemaValidator = /** @class */ (function (_super) {\r\n    __extends(TableSchemaValidator, _super);\r\n    function TableSchemaValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    TableSchemaValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"name\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"columns\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.columnSchemaArrayValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return TableSchemaValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.TableSchemaValidator = TableSchemaValidator;\r\nvar TableDataValidator = /** @class */ (function (_super) {\r\n    __extends(TableDataValidator, _super);\r\n    function TableDataValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    TableDataValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"name\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"rows\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.rawDataValidator]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return TableDataValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.TableDataValidator = TableDataValidator;\r\n\n\n/***/ }),\n/* 32 */\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\nvar __extends = (this && this.__extends) || (function () {\r\n    var 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    return function (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\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.QuickCreateValidator = void 0;\r\nvar multipleFieldsValidator_1 = __webpack_require__(3);\r\nvar typeValidator_1 = __webpack_require__(4);\r\nvar validator_1 = __webpack_require__(1);\r\nvar QuickCreateValidator = /** @class */ (function (_super) {\r\n    __extends(QuickCreateValidator, _super);\r\n    function QuickCreateValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    QuickCreateValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"accessToken\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"groupId\",\r\n                validators: [validator_1.Validators.stringValidator]\r\n            },\r\n            {\r\n                field: \"tokenType\",\r\n                validators: [validator_1.Validators.tokenTypeValidator]\r\n            },\r\n            {\r\n                field: \"theme\",\r\n                validators: [validator_1.Validators.customThemeValidator]\r\n            },\r\n            {\r\n                field: \"datasetCreateConfig\",\r\n                validators: [validator_1.Validators.fieldRequiredValidator, validator_1.Validators.datasetCreateConfigValidator]\r\n            },\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return QuickCreateValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.QuickCreateValidator = QuickCreateValidator;\r\n\n\n/***/ }),\n/* 33 */\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\nvar __extends = (this && this.__extends) || (function () {\r\n    var 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    return function (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\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.PrintSettingsValidator = void 0;\r\nvar multipleFieldsValidator_1 = __webpack_require__(3);\r\nvar typeValidator_1 = __webpack_require__(4);\r\nvar PrintSettingsValidator = /** @class */ (function (_super) {\r\n    __extends(PrintSettingsValidator, _super);\r\n    function PrintSettingsValidator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    PrintSettingsValidator.prototype.validate = function (input, path, field) {\r\n        if (input == null) {\r\n            return null;\r\n        }\r\n        var errors = _super.prototype.validate.call(this, input, path, field);\r\n        if (errors) {\r\n            return errors;\r\n        }\r\n        var fields = [\r\n            {\r\n                field: \"browserPrintAdjustmentsMode\",\r\n                validators: [new typeValidator_1.EnumValidator([0, 1])]\r\n            }\r\n        ];\r\n        var multipleFieldsValidator = new multipleFieldsValidator_1.MultipleFieldsValidator(fields);\r\n        return multipleFieldsValidator.validate(input, path, field);\r\n    };\r\n    return PrintSettingsValidator;\r\n}(typeValidator_1.ObjectValidator));\r\nexports.PrintSettingsValidator = PrintSettingsValidator;\r\n\n\n/***/ })\n/******/ \t]);\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \t// This entry module is referenced by other modules so it can't be inlined\n/******/ \tvar __webpack_exports__ = __webpack_require__(0);\n/******/ \t\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});\n//# sourceMappingURL=models.js.map\r\n// SIG // Begin signature block\r\n// SIG // MIIrSwYJKoZIhvcNAQcCoIIrPDCCKzgCAQExDzANBglg\r\n// SIG // hkgBZQMEAgEFADB3BgorBgEEAYI3AgEEoGkwZzAyBgor\r\n// SIG // BgEEAYI3AgEeMCQCAQEEEBDgyQbOONQRoqMAEEvTUJAC\r\n// SIG // AQACAQACAQACAQACAQAwMTANBglghkgBZQMEAgEFAAQg\r\n// SIG // xLtrVunVRrJVSWB0LPK/F3mt1yXA1Ex5UedxSKIGn6Kg\r\n// SIG // ghFuMIIIfjCCB2agAwIBAgITNgAAAahTK9ZQq6y5UwAC\r\n// SIG // AAABqDANBgkqhkiG9w0BAQsFADBBMRMwEQYKCZImiZPy\r\n// SIG // LGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRUw\r\n// SIG // EwYDVQQDEwxBTUUgQ1MgQ0EgMDEwHhcNMjIwNjEwMTgy\r\n// SIG // NzAzWhcNMjMwNjEwMTgyNzAzWjAkMSIwIAYDVQQDExlN\r\n// SIG // aWNyb3NvZnQgQXp1cmUgQ29kZSBTaWduMIIBIjANBgkq\r\n// SIG // hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnEdeHxP889b7\r\n// SIG // mrwL0Z0koWl4LoJ+zeHJ7UDmhaQAxyRIIw9tXSK910U/\r\n// SIG // pTle2lfbvL9vZR1U8zyRwy6WaVNT/rh+wOm9AKqrsbaB\r\n// SIG // qlCsTRliD/TIgibyDuKIf/aV+Aok1yvoWVg2eNn/06XE\r\n// SIG // bXA/k554/MzRFwxHJNnO9dGc8hke+UZxb94AZB6JWfXQ\r\n// SIG // 3xzYYQtPQmVsTI2iQ/aDYkkS+nIgs/IjbConhB93V4oc\r\n// SIG // 4rL8r9C5D29kDOZRQ2Y2/1eqXV5wb7QSdahpxk3457cf\r\n// SIG // caTGsmz6nPQq7DqO9RqDO5dYD22V5bGQkf5wMhC0jlQq\r\n// SIG // 1qFAhbD3nkXka5eErruzcwIDAQABo4IFijCCBYYwKQYJ\r\n// SIG // KwYBBAGCNxUKBBwwGjAMBgorBgEEAYI3WwEBMAoGCCsG\r\n// SIG // AQUFBwMDMD0GCSsGAQQBgjcVBwQwMC4GJisGAQQBgjcV\r\n// SIG // CIaQ4w2E1bR4hPGLPoWb3RbOnRKBYIPdzWaGlIwyAgFk\r\n// SIG // AgEMMIICdgYIKwYBBQUHAQEEggJoMIICZDBiBggrBgEF\r\n// SIG // BQcwAoZWaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3Br\r\n// SIG // aWluZnJhL0NlcnRzL0JZMlBLSUNTQ0EwMS5BTUUuR0JM\r\n// SIG // X0FNRSUyMENTJTIwQ0ElMjAwMSgyKS5jcnQwUgYIKwYB\r\n// SIG // BQUHMAKGRmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JZ\r\n// SIG // MlBLSUNTQ0EwMS5BTUUuR0JMX0FNRSUyMENTJTIwQ0El\r\n// SIG // MjAwMSgyKS5jcnQwUgYIKwYBBQUHMAKGRmh0dHA6Ly9j\r\n// SIG // cmwyLmFtZS5nYmwvYWlhL0JZMlBLSUNTQ0EwMS5BTUUu\r\n// SIG // R0JMX0FNRSUyMENTJTIwQ0ElMjAwMSgyKS5jcnQwUgYI\r\n// SIG // KwYBBQUHMAKGRmh0dHA6Ly9jcmwzLmFtZS5nYmwvYWlh\r\n// SIG // L0JZMlBLSUNTQ0EwMS5BTUUuR0JMX0FNRSUyMENTJTIw\r\n// SIG // Q0ElMjAwMSgyKS5jcnQwUgYIKwYBBQUHMAKGRmh0dHA6\r\n// SIG // Ly9jcmw0LmFtZS5nYmwvYWlhL0JZMlBLSUNTQ0EwMS5B\r\n// SIG // TUUuR0JMX0FNRSUyMENTJTIwQ0ElMjAwMSgyKS5jcnQw\r\n// SIG // ga0GCCsGAQUFBzAChoGgbGRhcDovLy9DTj1BTUUlMjBD\r\n// SIG // UyUyMENBJTIwMDEsQ049QUlBLENOPVB1YmxpYyUyMEtl\r\n// SIG // eSUyMFNlcnZpY2VzLENOPVNlcnZpY2VzLENOPUNvbmZp\r\n// SIG // Z3VyYXRpb24sREM9QU1FLERDPUdCTD9jQUNlcnRpZmlj\r\n// SIG // YXRlP2Jhc2U/b2JqZWN0Q2xhc3M9Y2VydGlmaWNhdGlv\r\n// SIG // bkF1dGhvcml0eTAdBgNVHQ4EFgQUUchb+1j7hxhVLQdr\r\n// SIG // TBwsRVxqi/IwDgYDVR0PAQH/BAQDAgeAMEUGA1UdEQQ+\r\n// SIG // MDykOjA4MR4wHAYDVQQLExVNaWNyb3NvZnQgQ29ycG9y\r\n// SIG // YXRpb24xFjAUBgNVBAUTDTIzNjE2Nys0NzA4NjAwggHm\r\n// SIG // BgNVHR8EggHdMIIB2TCCAdWgggHRoIIBzYY/aHR0cDov\r\n// SIG // L2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9B\r\n// SIG // TUUlMjBDUyUyMENBJTIwMDEoMikuY3JshjFodHRwOi8v\r\n// SIG // Y3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBDUyUyMENBJTIw\r\n// SIG // MDEoMikuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2Ny\r\n// SIG // bC9BTUUlMjBDUyUyMENBJTIwMDEoMikuY3JshjFodHRw\r\n// SIG // Oi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBDUyUyMENB\r\n// SIG // JTIwMDEoMikuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2Js\r\n// SIG // L2NybC9BTUUlMjBDUyUyMENBJTIwMDEoMikuY3JshoG9\r\n// SIG // bGRhcDovLy9DTj1BTUUlMjBDUyUyMENBJTIwMDEoMiks\r\n// SIG // Q049QlkyUEtJQ1NDQTAxLENOPUNEUCxDTj1QdWJsaWMl\r\n// SIG // MjBLZXklMjBTZXJ2aWNlcyxDTj1TZXJ2aWNlcyxDTj1D\r\n// SIG // b25maWd1cmF0aW9uLERDPUFNRSxEQz1HQkw/Y2VydGlm\r\n// SIG // aWNhdGVSZXZvY2F0aW9uTGlzdD9iYXNlP29iamVjdENs\r\n// SIG // YXNzPWNSTERpc3RyaWJ1dGlvblBvaW50MB8GA1UdIwQY\r\n// SIG // MBaAFJZRhOBrb3v+2Aarw/KF5imuavnUMB8GA1UdJQQY\r\n// SIG // MBYGCisGAQQBgjdbAQEGCCsGAQUFBwMDMA0GCSqGSIb3\r\n// SIG // DQEBCwUAA4IBAQAOoFAbE6qv+1RAKHjMn56sREYNiKvh\r\n// SIG // i11baGKOgpeVXuKztX5x9fQ2/DpXdUOkVe0w6cVoute2\r\n// SIG // 4WQACXKU+8ANjEMqaJq5DqsR52Q86V6LvjUQwMSfNgnj\r\n// SIG // nb+mktUX1s8gNAQ2NUWsqG+Q0cmKbEGNFjnbsFvCKgDH\r\n// SIG // OFHVJaYb5tNCU0nkWkMn1aA0y78u2wLvaQhSSx3I2A8O\r\n// SIG // WLXWXahlAhV8ZEF04UatM/QwA5DubCgiUwK/TCXfRohY\r\n// SIG // IouOD4h4MQ533o0sC3kVzvhSXdk2DXmgyBqzHrP+tJPQ\r\n// SIG // A8IK5AJweyeJrKpdN39ZxV961rru4GXgQMfZ4L6+5v09\r\n// SIG // zP/7MIII6DCCBtCgAwIBAgITHwAAAFHqj/accwyoOwAA\r\n// SIG // AAAAUTANBgkqhkiG9w0BAQsFADA8MRMwEQYKCZImiZPy\r\n// SIG // LGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRAw\r\n// SIG // DgYDVQQDEwdhbWVyb290MB4XDTIxMDUyMTE4NDQxNFoX\r\n// SIG // DTI2MDUyMTE4NTQxNFowQTETMBEGCgmSJomT8ixkARkW\r\n// SIG // A0dCTDETMBEGCgmSJomT8ixkARkWA0FNRTEVMBMGA1UE\r\n// SIG // AxMMQU1FIENTIENBIDAxMIIBIjANBgkqhkiG9w0BAQEF\r\n// SIG // AAOCAQ8AMIIBCgKCAQEAyZpSCX0Bno1W1yqXMhT6BUlJ\r\n// SIG // ZWpa4p3xFeiTHO4vm2Q6C/azR5xwxnyYHrkSGDtS2P9X\r\n// SIG // +KDE64V20mmEQkubxnPNeOVnE2RvdPGxgwlq+BhS3ONd\r\n// SIG // VsQPj79q7XgHM9HhzB9+qk0PC9KN1zm9p/seyiRS6JF1\r\n// SIG // dbOqRf1pUl7FAVxmgiCFgV8hHIb/rDPXig7FDi3S0yEx\r\n// SIG // 2CUDVpIq8jEhG8anUFE1WYxM+ni0S5KHwwKPKV4qyGDo\r\n// SIG // DO+9AmDoma3Chyu5WDlW5cdtqXTWsGPE3umtnX6Amlld\r\n// SIG // UFLms4OVR4guKf+n5LIBCC6bTiocfXPomqYjYTKx7AGM\r\n// SIG // faVLaaXmhQIDAQABo4IE3DCCBNgwEgYJKwYBBAGCNxUB\r\n// SIG // BAUCAwIAAjAjBgkrBgEEAYI3FQIEFgQUEmgkQiFHy9Rr\r\n// SIG // vjHPIKTACyN/P0cwHQYDVR0OBBYEFJZRhOBrb3v+2Aar\r\n// SIG // w/KF5imuavnUMIIBBAYDVR0lBIH8MIH5BgcrBgEFAgMF\r\n// SIG // BggrBgEFBQcDAQYIKwYBBQUHAwIGCisGAQQBgjcUAgEG\r\n// SIG // CSsGAQQBgjcVBgYKKwYBBAGCNwoDDAYJKwYBBAGCNxUG\r\n// SIG // BggrBgEFBQcDCQYIKwYBBQUIAgIGCisGAQQBgjdAAQEG\r\n// SIG // CysGAQQBgjcKAwQBBgorBgEEAYI3CgMEBgkrBgEEAYI3\r\n// SIG // FQUGCisGAQQBgjcUAgIGCisGAQQBgjcUAgMGCCsGAQUF\r\n// SIG // BwMDBgorBgEEAYI3WwEBBgorBgEEAYI3WwIBBgorBgEE\r\n// SIG // AYI3WwMBBgorBgEEAYI3WwUBBgorBgEEAYI3WwQBBgor\r\n// SIG // BgEEAYI3WwQCMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIA\r\n// SIG // QwBBMAsGA1UdDwQEAwIBhjASBgNVHRMBAf8ECDAGAQH/\r\n// SIG // AgEAMB8GA1UdIwQYMBaAFCleUV5krjS566ycDaeMdQHR\r\n// SIG // CQsoMIIBaAYDVR0fBIIBXzCCAVswggFXoIIBU6CCAU+G\r\n// SIG // MWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2lpbmZy\r\n// SIG // YS9jcmwvYW1lcm9vdC5jcmyGI2h0dHA6Ly9jcmwyLmFt\r\n// SIG // ZS5nYmwvY3JsL2FtZXJvb3QuY3JshiNodHRwOi8vY3Js\r\n// SIG // My5hbWUuZ2JsL2NybC9hbWVyb290LmNybIYjaHR0cDov\r\n// SIG // L2NybDEuYW1lLmdibC9jcmwvYW1lcm9vdC5jcmyGgaps\r\n// SIG // ZGFwOi8vL0NOPWFtZXJvb3QsQ049QU1FUm9vdCxDTj1D\r\n// SIG // RFAsQ049UHVibGljJTIwS2V5JTIwU2VydmljZXMsQ049\r\n// SIG // U2VydmljZXMsQ049Q29uZmlndXJhdGlvbixEQz1BTUUs\r\n// SIG // REM9R0JMP2NlcnRpZmljYXRlUmV2b2NhdGlvbkxpc3Q/\r\n// SIG // YmFzZT9vYmplY3RDbGFzcz1jUkxEaXN0cmlidXRpb25Q\r\n// SIG // b2ludDCCAasGCCsGAQUFBwEBBIIBnTCCAZkwRwYIKwYB\r\n// SIG // BQUHMAKGO2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9w\r\n// SIG // a2lpbmZyYS9jZXJ0cy9BTUVSb290X2FtZXJvb3QuY3J0\r\n// SIG // MDcGCCsGAQUFBzAChitodHRwOi8vY3JsMi5hbWUuZ2Js\r\n// SIG // L2FpYS9BTUVSb290X2FtZXJvb3QuY3J0MDcGCCsGAQUF\r\n// SIG // BzAChitodHRwOi8vY3JsMy5hbWUuZ2JsL2FpYS9BTUVS\r\n// SIG // b290X2FtZXJvb3QuY3J0MDcGCCsGAQUFBzAChitodHRw\r\n// SIG // Oi8vY3JsMS5hbWUuZ2JsL2FpYS9BTUVSb290X2FtZXJv\r\n// SIG // b3QuY3J0MIGiBggrBgEFBQcwAoaBlWxkYXA6Ly8vQ049\r\n// SIG // YW1lcm9vdCxDTj1BSUEsQ049UHVibGljJTIwS2V5JTIw\r\n// SIG // U2VydmljZXMsQ049U2VydmljZXMsQ049Q29uZmlndXJh\r\n// SIG // dGlvbixEQz1BTUUsREM9R0JMP2NBQ2VydGlmaWNhdGU/\r\n// SIG // YmFzZT9vYmplY3RDbGFzcz1jZXJ0aWZpY2F0aW9uQXV0\r\n// SIG // aG9yaXR5MA0GCSqGSIb3DQEBCwUAA4ICAQBQECO3Tw/o\r\n// SIG // 317Rrd7yadqcswPx1LvIYymkaTN6KcmuRt6HKa0Xe73U\r\n// SIG // x2/AQ30TfgA9GBJngweRykKBusRzyOU17iIubJvy3gA2\r\n// SIG // 1dwtqtB0DsoEv1U/ptVu2v++doTCJ/i+GbssVXkgaX8H\r\n// SIG // +6EOGEmT4evp4GbwR4HwWlc+Dvf8HH8PdUA2Z04CvcwI\r\n// SIG // fckSipbNm84jxJ8XjmTFTWscldL9edj2NsY6iGnyJFIy\r\n// SIG // ur2PS7VRYyV3p1VAJp91gj1jRQtWEyCB8P5g9nE3z8u0\r\n// SIG // ANaU/hjwEQCrdGyravWgnf2JtG+bT26YAokbc8m+32zU\r\n// SIG // tXRO+NK3tAjhOu2FdsG3qNrF4sc7y37R/C+7Pcb/cFfh\r\n// SIG // ttqsirepZii4xStcjMODYuXzGm3IJs0b0owHG6oKd7ZO\r\n// SIG // GvHpmmh9K8/DLriD/sq8bURD10qi/wuW8zM7IpLg1vcR\r\n// SIG // 9dIK2mc0pj44pc6UX0XbttP/VEJgu3lT2eI9VjWtaKjx\r\n// SIG // 38xE9woSMyekPRtzTwgfuysF9DkJisr+yA4po/FPxpbB\r\n// SIG // w9c/hBf32DH/GFxteS2pmjgKIbMP8sDukmEq3lVvuWNJ\r\n// SIG // sybrZwQvQpvaM49fv+JKpLK5YWYEfwksYRR9wU8Hh/ID\r\n// SIG // 9hRCEkbUoQ2W7mMpsp2Nbp/kcn4ivfolUy3Q9Yf0scsQ\r\n// SIG // 6WTLYpm+AoCUJTGCGTUwghkxAgEBMFgwQTETMBEGCgmS\r\n// SIG // JomT8ixkARkWA0dCTDETMBEGCgmSJomT8ixkARkWA0FN\r\n// SIG // RTEVMBMGA1UEAxMMQU1FIENTIENBIDAxAhM2AAABqFMr\r\n// SIG // 1lCrrLlTAAIAAAGoMA0GCWCGSAFlAwQCAQUAoIGuMBkG\r\n// SIG // CSqGSIb3DQEJAzEMBgorBgEEAYI3AgEEMBwGCisGAQQB\r\n// SIG // gjcCAQsxDjAMBgorBgEEAYI3AgEVMC8GCSqGSIb3DQEJ\r\n// SIG // BDEiBCBjRLYF14HDc56jvQAj1c/QH6Ok/nZz0hMCsCKZ\r\n// SIG // Z76EhDBCBgorBgEEAYI3AgEMMTQwMqAUgBIATQBpAGMA\r\n// SIG // cgBvAHMAbwBmAHShGoAYaHR0cDovL3d3dy5taWNyb3Nv\r\n// SIG // ZnQuY29tMA0GCSqGSIb3DQEBAQUABIIBAIS+c42bOiEJ\r\n// SIG // uQm4GLm2goBw8vLg23FrpNm95muZplv7Z1kIND9FN4kM\r\n// SIG // K78rEpqfFgsz9PDvRpKDp0p/gmDaAeNcaDerca2Rfsab\r\n// SIG // uyk4cHU2FHvRka1LuJewRO1n7W92FbeDdN/WrR81VSLq\r\n// SIG // 5FaWCXH+GdIRXVM4inLo22uVhxBn5Oyn4SxVuSuBFPSN\r\n// SIG // q2jz7kYlOTSCkQVmj2CnyHVzwUov4r5RCJGTWQW6j4lb\r\n// SIG // UXPhKvoP2Tjtp+MC29DWJFgO60lYe3ihsUtdOb21KHg1\r\n// SIG // lPWovJIb8BtQTwbcidFV3WAFUFwS2hHJ/X6pEZ9W4Jks\r\n// SIG // bHdP2S0bd/U8xg17TUuSQyChghb9MIIW+QYKKwYBBAGC\r\n// SIG // NwMDATGCFukwghblBgkqhkiG9w0BBwKgghbWMIIW0gIB\r\n// SIG // AzEPMA0GCWCGSAFlAwQCAQUAMIIBUQYLKoZIhvcNAQkQ\r\n// SIG // AQSgggFABIIBPDCCATgCAQEGCisGAQQBhFkKAwEwMTAN\r\n// SIG // BglghkgBZQMEAgEFAAQg/ZMAqe6x9fkTf00oQUJdUGoT\r\n// SIG // oUvevXnPC0muAJQCF6YCBmPmYpKr+BgTMjAyMzAyMTMx\r\n// SIG // MjIzNDMuNjcxWjAEgAIB9KCB0KSBzTCByjELMAkGA1UE\r\n// SIG // BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNV\r\n// SIG // BAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD\r\n// SIG // b3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFt\r\n// SIG // ZXJpY2EgT3BlcmF0aW9uczEmMCQGA1UECxMdVGhhbGVz\r\n// SIG // IFRTUyBFU046M0U3QS1FMzU5LUEyNUQxJTAjBgNVBAMT\r\n// SIG // HE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2WgghFU\r\n// SIG // MIIHDDCCBPSgAwIBAgITMwAAAcn61Y4lIHQCXgABAAAB\r\n// SIG // yTANBgkqhkiG9w0BAQsFADB8MQswCQYDVQQGEwJVUzET\r\n// SIG // MBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk\r\n// SIG // bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0\r\n// SIG // aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFt\r\n// SIG // cCBQQ0EgMjAxMDAeFw0yMjExMDQxOTAxMzhaFw0yNDAy\r\n// SIG // MDIxOTAxMzhaMIHKMQswCQYDVQQGEwJVUzETMBEGA1UE\r\n// SIG // CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe\r\n// SIG // MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUw\r\n// SIG // IwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRp\r\n// SIG // b25zMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjozRTdB\r\n// SIG // LUUzNTktQTI1RDElMCMGA1UEAxMcTWljcm9zb2Z0IFRp\r\n// SIG // bWUtU3RhbXAgU2VydmljZTCCAiIwDQYJKoZIhvcNAQEB\r\n// SIG // BQADggIPADCCAgoCggIBANZy4uWOb8/CvlqMYZO6hlv7\r\n// SIG // wsYuXrkzNNU4hGxThvIO0hQdFTI2IKOk4kc4DkPgjedz\r\n// SIG // gTipcjB1s0S+Mb2ktN2ZSIHrSCC2IgEqILBLZY8xJURz\r\n// SIG // u3wxgxVnHc/pQjWJiaM7WxtzzK58W5VBx1JK+AuxAR29\r\n// SIG // mNOxneRiQYD/PuQGTbE5bBxnMx7OOZpj+61IHDJ//3PE\r\n// SIG // PxmEqnU+DlxC6ed4ffRJ8heM3LHdmRY8XY9ZT/EBsGWU\r\n// SIG // uBfNiQRntqQq0mpMhY08cxSlDsHEHq8AUf2GkJcu5rQq\r\n// SIG // 2uDzXMhEJvp/yw3Hv1VYkGvDjNpwWRysOgsjKhMxSScu\r\n// SIG // R4s8/Gesa6qiyrYvL4iVENBbapE10kd//8PDwCsgZbyG\r\n// SIG // ExRfy8tyYd3G1XjoEprmzlcL/JzHoXEG9gLcXFP5XchF\r\n// SIG // KsvP7YRByFjWm8x18eTvQ+G7UuqCXYC5h8a0wbRrHFUK\r\n// SIG // sdM+f31CJCxO7W8H6KvOHBf1ESxMsN6ueyldlOIDoXN+\r\n// SIG // el2BFUHSV6OlRVgUA2G82p0Nuc2NtVApI/NtQsg/dIKq\r\n// SIG // zt60D5XEKOnq8Ftgxdn7JoAG1as0LM+kZJmn8+K3te5J\r\n// SIG // u6ntPT7sB8OXt8eWSBhKFZXzZyb+vvOdbsCl+gKWRcT8\r\n// SIG // 3kKO1v+QbWk5pGRIcGOQHQj4D79GmiBEJ9qhezLxcAnL\r\n// SIG // AgMBAAGjggE2MIIBMjAdBgNVHQ4EFgQUBW+dZ0bCPKG+\r\n// SIG // eDoUxXlRe0QuMsswHwYDVR0jBBgwFoAUn6cVXQBeYl2D\r\n// SIG // 9OXSZacbUzUZ6XIwXwYDVR0fBFgwVjBUoFKgUIZOaHR0\r\n// SIG // cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwv\r\n// SIG // TWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIw\r\n// SIG // MTAoMSkuY3JsMGwGCCsGAQUFBwEBBGAwXjBcBggrBgEF\r\n// SIG // BQcwAoZQaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3Br\r\n// SIG // aW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUaW1lLVN0YW1w\r\n// SIG // JTIwUENBJTIwMjAxMCgxKS5jcnQwDAYDVR0TAQH/BAIw\r\n// SIG // ADATBgNVHSUEDDAKBggrBgEFBQcDCDANBgkqhkiG9w0B\r\n// SIG // AQsFAAOCAgEANqi6nGbfR4pCB3I+wJZx4Y6LsUozngWk\r\n// SIG // xPhCvGl3FS5vXAPA9v2WNjlKWLznYbgxFfYRJVZs6KYi\r\n// SIG // bpP8QWIenViU0YZku4VY6xras0hVtC337EcrI8ZKbqso\r\n// SIG // R4gQ8TFzBmehnc1H6lT9mXdjvifwWECYLPTR2M/wjOF2\r\n// SIG // kT/k9lTNyRNZkjtai2vpnweNu0Ii4/yQu01GIIeEWPqC\r\n// SIG // zBVbkCWb12Jf4yExX1KaSaAGpAa9FXNq9ZD+Q4iWjb2V\r\n// SIG // if3LmGolkOJPcacOsBs96qu8QFp5Rs7GsMBYY7cKuRB/\r\n// SIG // 7N+ywn3ocrgsPGUSfVt7YEhXqQFTO7FBPj691Lvoj7wV\r\n// SIG // eE7EwzRS9AlSD1/tVziemERmCdpBxqaBnP+bIANiCkHJ\r\n// SIG // fe2Q2CSKosYMCjX7cje9DtAE26U1YbGzdNRVZYtB/r4H\r\n// SIG // Bocs5Oo6QMsBzw0kP8aBHhlOPujxU1zETv3zMxnFHH9G\r\n// SIG // R6mTJtFIaB/LTrZNfJOge+SiV07WN2TO6U37q0r9kK7+\r\n// SIG // c8wgYssrLTj8PyCSPpPaKU4Grawt/S+vfysMrQ9Me7dI\r\n// SIG // 5k17ZS2Whr6EpY3csq+kA0VZKrAmi1EkrAIlnmr+aoOu\r\n// SIG // FN5i5nnpKNBPUyecs7Tf43Is5R8dF7IDrjerLm9wj1ew\r\n// SIG // ADDIiqKXUGKoj17vSMb6l0+whP0jAtqXDckwggdxMIIF\r\n// SIG // WaADAgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqG\r\n// SIG // SIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UE\r\n// SIG // CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe\r\n// SIG // MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIw\r\n// SIG // MAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0\r\n// SIG // ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIyMjVa\r\n// SIG // Fw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMw\r\n// SIG // EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt\r\n// SIG // b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp\r\n// SIG // b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w\r\n// SIG // IFBDQSAyMDEwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A\r\n// SIG // MIICCgKCAgEA5OGmTOe0ciELeaLL1yR5vQ7VgtP97pwH\r\n// SIG // B9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa\r\n// SIG // 4n5KWv64NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZr\r\n// SIG // BxTzxXb1hlDcwUTIcVxRMTegCjhuje3XD9gmU3w5YQJ6\r\n// SIG // xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv62\r\n// SIG // 6GIl3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlw\r\n// SIG // aQ3KNi1wjjHINSi947SHJMPgyY9+tVSP3PoFVZhtaDua\r\n// SIG // Rr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I\r\n// SIG // 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF80\r\n// SIG // 3RKJ1v2lIH1+/NmeRd+2ci/bfV+AutuqfjbsNkz2K26o\r\n// SIG // ElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/TNuv\r\n// SIG // XsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFz\r\n// SIG // ymeiXtcodgLiMxhy16cg8ML6EgrXY28MyTZki1ugpoMh\r\n// SIG // XV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y1BzFa/Zc\r\n// SIG // UlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgV\r\n// SIG // GD94q0W29R6HXtqPnhZyacaue7e3PmriLq0CAwEAAaOC\r\n// SIG // Ad0wggHZMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYB\r\n// SIG // BAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0G\r\n// SIG // A1UdDgQWBBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNV\r\n// SIG // HSAEVTBTMFEGDCsGAQQBgjdMg30BATBBMD8GCCsGAQUF\r\n// SIG // BwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtp\r\n// SIG // b3BzL0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAww\r\n// SIG // CgYIKwYBBQUHAwgwGQYJKwYBBAGCNxQCBAweCgBTAHUA\r\n// SIG // YgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB\r\n// SIG // Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186a\r\n// SIG // GMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2NybC5t\r\n// SIG // aWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWlj\r\n// SIG // Um9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUF\r\n// SIG // BwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDovL3d3dy5t\r\n// SIG // aWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJB\r\n// SIG // dXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQAD\r\n// SIG // ggIBAJ1VffwqreEsH2cBMSRb4Z5yS/ypb+pcFLY+Tkdk\r\n// SIG // eLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27DzHkwo/7bNGh\r\n// SIG // lBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6\r\n// SIG // Ce5732pvvinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7nd\r\n// SIG // n/OOPcbzaN9l9qRWqveVtihVJ9AkvUCgvxm2EhIRXT0n\r\n// SIG // 4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZ\r\n// SIG // UnWKNsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA\r\n// SIG // 0j3mSj5mO0+7hvoyGtmW9I/2kQH2zsZ0/fZMcm8Qq3Uw\r\n// SIG // xTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+\r\n// SIG // c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxko\r\n// SIG // JLo4S5pu+yFUa2pFEUep8beuyOiJXk+d0tBMdrVXVAmx\r\n// SIG // aQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+DvktxW/\r\n// SIG // tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM\r\n// SIG // +Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU5nR0W2rR\r\n// SIG // nj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/2XBjU02N\r\n// SIG // 7oJtpQUQwXEGahC0HVUzWLOhcGbyoYICyzCCAjQCAQEw\r\n// SIG // gfihgdCkgc0wgcoxCzAJBgNVBAYTAlVTMRMwEQYDVQQI\r\n// SIG // EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4w\r\n// SIG // HAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAj\r\n// SIG // BgNVBAsTHE1pY3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlv\r\n// SIG // bnMxJjAkBgNVBAsTHVRoYWxlcyBUU1MgRVNOOjNFN0Et\r\n// SIG // RTM1OS1BMjVEMSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt\r\n// SIG // ZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQB9\r\n// SIG // 6YvL/h4Bm41ULOBt+nUcVgbdDqCBgzCBgKR+MHwxCzAJ\r\n// SIG // BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw\r\n// SIG // DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv\r\n// SIG // ZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29m\r\n// SIG // dCBUaW1lLVN0YW1wIFBDQSAyMDEwMA0GCSqGSIb3DQEB\r\n// SIG // BQUAAgUA55QsqjAiGA8yMDIzMDIxMzExMjczOFoYDzIw\r\n// SIG // MjMwMjE0MTEyNzM4WjB0MDoGCisGAQQBhFkKBAExLDAq\r\n// SIG // MAoCBQDnlCyqAgEAMAcCAQACAgotMAcCAQACAhKYMAoC\r\n// SIG // BQDnlX4qAgEAMDYGCisGAQQBhFkKBAIxKDAmMAwGCisG\r\n// SIG // AQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAw\r\n// SIG // DQYJKoZIhvcNAQEFBQADgYEAWH/j3j4dJ+ftP/fpoWoM\r\n// SIG // dzibyxT1Zfv0jP4VCw+AbG/qhdm7YFDjP6GJ9O09OcZ4\r\n// SIG // zmDEgjxkHVolakT2bZOHlYG+QgPpxg5OUMCSh+hM1coP\r\n// SIG // 2bOl1w3Iq4jd8xeqxJvSjMqr52k4DsSS0C36LFViRllf\r\n// SIG // eBrKC2GbnA6OYDxbBJcxggQNMIIECQIBATCBkzB8MQsw\r\n// SIG // CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ\r\n// SIG // MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z\r\n// SIG // b2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3Nv\r\n// SIG // ZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAcn61Y4l\r\n// SIG // IHQCXgABAAAByTANBglghkgBZQMEAgEFAKCCAUowGgYJ\r\n// SIG // KoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8GCSqGSIb3\r\n// SIG // DQEJBDEiBCAnSycMArNSomfY7ha5/0IoVSwgYJe4NIr2\r\n// SIG // Zu5PXklibDCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQw\r\n// SIG // gb0EIIF1zn9S3VFLECd4Kdh/YA0jIYkA/8194V184dk5\r\n// SIG // dv2BMIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNV\r\n// SIG // BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx\r\n// SIG // HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEm\r\n// SIG // MCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB\r\n// SIG // IDIwMTACEzMAAAHJ+tWOJSB0Al4AAQAAAckwIgQgKq8V\r\n// SIG // K74aQfHbKF2QOPZa23JRXUDLBs1wVRbiih+lxsYwDQYJ\r\n// SIG // KoZIhvcNAQELBQAEggIAaQM4H0gzID/OUj2Z+WkvozrL\r\n// SIG // o97FygMaSQb/5DkaODPJvQ7uIRVGirFDK+DEB7glUz4B\r\n// SIG // pIbDxQw6Tdqy8krkgOcNtuIp48VBFRlyss6jqKWbXk7o\r\n// SIG // zrLuRVw2AdsZtR2jV1aIQYOuz+EA+Vmn0udsq7y1nxKr\r\n// SIG // ahZHYQqud2qw/l92C8XAqBExEtaP5+dAjz1jS27vAkAi\r\n// SIG // sL/yI5mGd73pixoE6if2phYBF0KoqJyFQkFLfSuMRQ7L\r\n// SIG // 4gA3di+jAz5BRx2MxbdyV3qqmvC4NbQFZBN9P4RxYx3l\r\n// SIG // HeR+Tg2znNl87bfr+pjues0sbO7lloeMPF2lthrp7Kdw\r\n// SIG // nUSGBMnhW691Z9Q5xLVuaEfIQogWr3IZlkA4sKuP1PyM\r\n// SIG // XUMfLcqBuSVRz1+ryjN2jQxgS1WRQvvGxPDtpVOPXVo3\r\n// SIG // /bQ04B61Pi6Wh6d1XqXuFsKy7nISwvMXLPp/gVgYNdCg\r\n// SIG // hgS8BnnzbzeythHPLddnHBECwjF7PSs2AKT/chMKpfK/\r\n// SIG // odvm6dnJDz81VMCZ0IvhlvISBAULam8DaC5pieM7mXCR\r\n// SIG // ZeTgaWO+7U2kJIKopIsD3ZjBIYLV2EeulhwDPp0JPit3\r\n// SIG // bZ/ISGcvQeP0cEuozPBAOzbdEYxB2tM4i2Ucu3P7NeUW\r\n// SIG // LWdEXlwm5ZIsOkBR1wPzOc2wU97v17qo/aIKOhVTjHQ=\r\n// SIG // End signature block\r\n","/*! powerbi-router v0.1.5 | (c) 2016 Microsoft Corporation MIT */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"powerbi-router\"] = factory();\n\telse\n\t\troot[\"powerbi-router\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tvar RouteRecognizer = __webpack_require__(1);\n\tvar Router = (function () {\n\t    function Router(handlers) {\n\t        this.handlers = handlers;\n\t        /**\n\t         * TODO: look at generating the router dynamically based on list of supported http methods\n\t         * instead of hardcoding the creation of these and the methods.\n\t         */\n\t        this.getRouteRecognizer = new RouteRecognizer();\n\t        this.patchRouteRecognizer = new RouteRecognizer();\n\t        this.postRouteRecognizer = new RouteRecognizer();\n\t        this.putRouteRecognizer = new RouteRecognizer();\n\t        this.deleteRouteRecognizer = new RouteRecognizer();\n\t    }\n\t    Router.prototype.get = function (url, handler) {\n\t        this.registerHandler(this.getRouteRecognizer, \"GET\", url, handler);\n\t        return this;\n\t    };\n\t    Router.prototype.patch = function (url, handler) {\n\t        this.registerHandler(this.patchRouteRecognizer, \"PATCH\", url, handler);\n\t        return this;\n\t    };\n\t    Router.prototype.post = function (url, handler) {\n\t        this.registerHandler(this.postRouteRecognizer, \"POST\", url, handler);\n\t        return this;\n\t    };\n\t    Router.prototype.put = function (url, handler) {\n\t        this.registerHandler(this.putRouteRecognizer, \"PUT\", url, handler);\n\t        return this;\n\t    };\n\t    Router.prototype.delete = function (url, handler) {\n\t        this.registerHandler(this.deleteRouteRecognizer, \"DELETE\", url, handler);\n\t        return this;\n\t    };\n\t    /**\n\t     * TODO: This method could use some refactoring.  There is conflict of interest between keeping clean separation of test and handle method\n\t     * Test method only returns boolean indicating if request can be handled, and handle method has opportunity to modify response and return promise of it.\n\t     * In the case of the router with route-recognizer where handlers are associated with routes, this already guarantees that only one handler is selected and makes the test method feel complicated\n\t     * Will leave as is an investigate cleaner ways at later time.\n\t     */\n\t    Router.prototype.registerHandler = function (routeRecognizer, method, url, handler) {\n\t        var routeRecognizerHandler = function (request) {\n\t            var response = new Response();\n\t            return Promise.resolve(handler(request, response))\n\t                .then(function (x) { return response; });\n\t        };\n\t        routeRecognizer.add([\n\t            { path: url, handler: routeRecognizerHandler }\n\t        ]);\n\t        var internalHandler = {\n\t            test: function (request) {\n\t                if (request.method !== method) {\n\t                    return false;\n\t                }\n\t                var matchingRoutes = routeRecognizer.recognize(request.url);\n\t                if (matchingRoutes === undefined) {\n\t                    return false;\n\t                }\n\t                /**\n\t                 * Copy parameters from recognized route to the request so they can be used within the handler function\n\t                 * This isn't ideal because it is side affect which modifies the request instead of strictly testing for true or false\n\t                 * but I don't see a better place to put this.  If we move it between the call to test and the handle it becomes part of the window post message proxy\n\t                 * even though it's responsibility is related to routing.\n\t                 */\n\t                var route = matchingRoutes[0];\n\t                request.params = route.params;\n\t                request.queryParams = matchingRoutes.queryParams;\n\t                request.handler = route.handler;\n\t                return true;\n\t            },\n\t            handle: function (request) {\n\t                return request.handler(request);\n\t            }\n\t        };\n\t        this.handlers.addHandler(internalHandler);\n\t    };\n\t    return Router;\n\t}());\n\texports.Router = Router;\n\tvar Response = (function () {\n\t    function Response() {\n\t        this.statusCode = 200;\n\t        this.headers = {};\n\t        this.body = null;\n\t    }\n\t    Response.prototype.send = function (statusCode, body) {\n\t        this.statusCode = statusCode;\n\t        this.body = body;\n\t    };\n\t    return Response;\n\t}());\n\texports.Response = Response;\n\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(module) {(function() {\n\t    \"use strict\";\n\t    function $$route$recognizer$dsl$$Target(path, matcher, delegate) {\n\t      this.path = path;\n\t      this.matcher = matcher;\n\t      this.delegate = delegate;\n\t    }\n\t\n\t    $$route$recognizer$dsl$$Target.prototype = {\n\t      to: function(target, callback) {\n\t        var delegate = this.delegate;\n\t\n\t        if (delegate && delegate.willAddRoute) {\n\t          target = delegate.willAddRoute(this.matcher.target, target);\n\t        }\n\t\n\t        this.matcher.add(this.path, target);\n\t\n\t        if (callback) {\n\t          if (callback.length === 0) { throw new Error(\"You must have an argument in the function passed to `to`\"); }\n\t          this.matcher.addChild(this.path, target, callback, this.delegate);\n\t        }\n\t        return this;\n\t      }\n\t    };\n\t\n\t    function $$route$recognizer$dsl$$Matcher(target) {\n\t      this.routes = {};\n\t      this.children = {};\n\t      this.target = target;\n\t    }\n\t\n\t    $$route$recognizer$dsl$$Matcher.prototype = {\n\t      add: function(path, handler) {\n\t        this.routes[path] = handler;\n\t      },\n\t\n\t      addChild: function(path, target, callback, delegate) {\n\t        var matcher = new $$route$recognizer$dsl$$Matcher(target);\n\t        this.children[path] = matcher;\n\t\n\t        var match = $$route$recognizer$dsl$$generateMatch(path, matcher, delegate);\n\t\n\t        if (delegate && delegate.contextEntered) {\n\t          delegate.contextEntered(target, match);\n\t        }\n\t\n\t        callback(match);\n\t      }\n\t    };\n\t\n\t    function $$route$recognizer$dsl$$generateMatch(startingPath, matcher, delegate) {\n\t      return function(path, nestedCallback) {\n\t        var fullPath = startingPath + path;\n\t\n\t        if (nestedCallback) {\n\t          nestedCallback($$route$recognizer$dsl$$generateMatch(fullPath, matcher, delegate));\n\t        } else {\n\t          return new $$route$recognizer$dsl$$Target(startingPath + path, matcher, delegate);\n\t        }\n\t      };\n\t    }\n\t\n\t    function $$route$recognizer$dsl$$addRoute(routeArray, path, handler) {\n\t      var len = 0;\n\t      for (var i=0; i<routeArray.length; i++) {\n\t        len += routeArray[i].path.length;\n\t      }\n\t\n\t      path = path.substr(len);\n\t      var route = { path: path, handler: handler };\n\t      routeArray.push(route);\n\t    }\n\t\n\t    function $$route$recognizer$dsl$$eachRoute(baseRoute, matcher, callback, binding) {\n\t      var routes = matcher.routes;\n\t\n\t      for (var path in routes) {\n\t        if (routes.hasOwnProperty(path)) {\n\t          var routeArray = baseRoute.slice();\n\t          $$route$recognizer$dsl$$addRoute(routeArray, path, routes[path]);\n\t\n\t          if (matcher.children[path]) {\n\t            $$route$recognizer$dsl$$eachRoute(routeArray, matcher.children[path], callback, binding);\n\t          } else {\n\t            callback.call(binding, routeArray);\n\t          }\n\t        }\n\t      }\n\t    }\n\t\n\t    var $$route$recognizer$dsl$$default = function(callback, addRouteCallback) {\n\t      var matcher = new $$route$recognizer$dsl$$Matcher();\n\t\n\t      callback($$route$recognizer$dsl$$generateMatch(\"\", matcher, this.delegate));\n\t\n\t      $$route$recognizer$dsl$$eachRoute([], matcher, function(route) {\n\t        if (addRouteCallback) { addRouteCallback(this, route); }\n\t        else { this.add(route); }\n\t      }, this);\n\t    };\n\t\n\t    var $$route$recognizer$$specials = [\n\t      '/', '.', '*', '+', '?', '|',\n\t      '(', ')', '[', ']', '{', '}', '\\\\'\n\t    ];\n\t\n\t    var $$route$recognizer$$escapeRegex = new RegExp('(\\\\' + $$route$recognizer$$specials.join('|\\\\') + ')', 'g');\n\t\n\t    function $$route$recognizer$$isArray(test) {\n\t      return Object.prototype.toString.call(test) === \"[object Array]\";\n\t    }\n\t\n\t    // A Segment represents a segment in the original route description.\n\t    // Each Segment type provides an `eachChar` and `regex` method.\n\t    //\n\t    // The `eachChar` method invokes the callback with one or more character\n\t    // specifications. A character specification consumes one or more input\n\t    // characters.\n\t    //\n\t    // The `regex` method returns a regex fragment for the segment. If the\n\t    // segment is a dynamic of star segment, the regex fragment also includes\n\t    // a capture.\n\t    //\n\t    // A character specification contains:\n\t    //\n\t    // * `validChars`: a String with a list of all valid characters, or\n\t    // * `invalidChars`: a String with a list of all invalid characters\n\t    // * `repeat`: true if the character specification can repeat\n\t\n\t    function $$route$recognizer$$StaticSegment(string) { this.string = string; }\n\t    $$route$recognizer$$StaticSegment.prototype = {\n\t      eachChar: function(currentState) {\n\t        var string = this.string, ch;\n\t\n\t        for (var i=0; i<string.length; i++) {\n\t          ch = string.charAt(i);\n\t          currentState = currentState.put({ invalidChars: undefined, repeat: false, validChars: ch });\n\t        }\n\t\n\t        return currentState;\n\t      },\n\t\n\t      regex: function() {\n\t        return this.string.replace($$route$recognizer$$escapeRegex, '\\\\$1');\n\t      },\n\t\n\t      generate: function() {\n\t        return this.string;\n\t      }\n\t    };\n\t\n\t    function $$route$recognizer$$DynamicSegment(name) { this.name = name; }\n\t    $$route$recognizer$$DynamicSegment.prototype = {\n\t      eachChar: function(currentState) {\n\t        return currentState.put({ invalidChars: \"/\", repeat: true, validChars: undefined });\n\t      },\n\t\n\t      regex: function() {\n\t        return \"([^/]+)\";\n\t      },\n\t\n\t      generate: function(params) {\n\t        return params[this.name];\n\t      }\n\t    };\n\t\n\t    function $$route$recognizer$$StarSegment(name) { this.name = name; }\n\t    $$route$recognizer$$StarSegment.prototype = {\n\t      eachChar: function(currentState) {\n\t        return currentState.put({ invalidChars: \"\", repeat: true, validChars: undefined });\n\t      },\n\t\n\t      regex: function() {\n\t        return \"(.+)\";\n\t      },\n\t\n\t      generate: function(params) {\n\t        return params[this.name];\n\t      }\n\t    };\n\t\n\t    function $$route$recognizer$$EpsilonSegment() {}\n\t    $$route$recognizer$$EpsilonSegment.prototype = {\n\t      eachChar: function(currentState) {\n\t        return currentState;\n\t      },\n\t      regex: function() { return \"\"; },\n\t      generate: function() { return \"\"; }\n\t    };\n\t\n\t    function $$route$recognizer$$parse(route, names, specificity) {\n\t      // normalize route as not starting with a \"/\". Recognition will\n\t      // also normalize.\n\t      if (route.charAt(0) === \"/\") { route = route.substr(1); }\n\t\n\t      var segments = route.split(\"/\");\n\t      var results = new Array(segments.length);\n\t\n\t      // A routes has specificity determined by the order that its different segments\n\t      // appear in. This system mirrors how the magnitude of numbers written as strings\n\t      // works.\n\t      // Consider a number written as: \"abc\". An example would be \"200\". Any other number written\n\t      // \"xyz\" will be smaller than \"abc\" so long as `a > z`. For instance, \"199\" is smaller\n\t      // then \"200\", even though \"y\" and \"z\" (which are both 9) are larger than \"0\" (the value\n\t      // of (`b` and `c`). This is because the leading symbol, \"2\", is larger than the other\n\t      // leading symbol, \"1\".\n\t      // The rule is that symbols to the left carry more weight than symbols to the right\n\t      // when a number is written out as a string. In the above strings, the leading digit\n\t      // represents how many 100's are in the number, and it carries more weight than the middle\n\t      // number which represents how many 10's are in the number.\n\t      // This system of number magnitude works well for route specificity, too. A route written as\n\t      // `a/b/c` will be more specific than `x/y/z` as long as `a` is more specific than\n\t      // `x`, irrespective of the other parts.\n\t      // Because of this similarity, we assign each type of segment a number value written as a\n\t      // string. We can find the specificity of compound routes by concatenating these strings\n\t      // together, from left to right. After we have looped through all of the segments,\n\t      // we convert the string to a number.\n\t      specificity.val = '';\n\t\n\t      for (var i=0; i<segments.length; i++) {\n\t        var segment = segments[i], match;\n\t\n\t        if (match = segment.match(/^:([^\\/]+)$/)) {\n\t          results[i] = new $$route$recognizer$$DynamicSegment(match[1]);\n\t          names.push(match[1]);\n\t          specificity.val += '3';\n\t        } else if (match = segment.match(/^\\*([^\\/]+)$/)) {\n\t          results[i] = new $$route$recognizer$$StarSegment(match[1]);\n\t          specificity.val += '1';\n\t          names.push(match[1]);\n\t        } else if(segment === \"\") {\n\t          results[i] = new $$route$recognizer$$EpsilonSegment();\n\t          specificity.val += '2';\n\t        } else {\n\t          results[i] = new $$route$recognizer$$StaticSegment(segment);\n\t          specificity.val += '4';\n\t        }\n\t      }\n\t\n\t      specificity.val = +specificity.val;\n\t\n\t      return results;\n\t    }\n\t\n\t    // A State has a character specification and (`charSpec`) and a list of possible\n\t    // subsequent states (`nextStates`).\n\t    //\n\t    // If a State is an accepting state, it will also have several additional\n\t    // properties:\n\t    //\n\t    // * `regex`: A regular expression that is used to extract parameters from paths\n\t    //   that reached this accepting state.\n\t    // * `handlers`: Information on how to convert the list of captures into calls\n\t    //   to registered handlers with the specified parameters\n\t    // * `types`: How many static, dynamic or star segments in this route. Used to\n\t    //   decide which route to use if multiple registered routes match a path.\n\t    //\n\t    // Currently, State is implemented naively by looping over `nextStates` and\n\t    // comparing a character specification against a character. A more efficient\n\t    // implementation would use a hash of keys pointing at one or more next states.\n\t\n\t    function $$route$recognizer$$State(charSpec) {\n\t      this.charSpec = charSpec;\n\t      this.nextStates = [];\n\t      this.charSpecs = {};\n\t      this.regex = undefined;\n\t      this.handlers = undefined;\n\t      this.specificity = undefined;\n\t    }\n\t\n\t    $$route$recognizer$$State.prototype = {\n\t      get: function(charSpec) {\n\t        if (this.charSpecs[charSpec.validChars]) {\n\t          return this.charSpecs[charSpec.validChars];\n\t        }\n\t\n\t        var nextStates = this.nextStates;\n\t\n\t        for (var i=0; i<nextStates.length; i++) {\n\t          var child = nextStates[i];\n\t\n\t          var isEqual = child.charSpec.validChars === charSpec.validChars;\n\t          isEqual = isEqual && child.charSpec.invalidChars === charSpec.invalidChars;\n\t\n\t          if (isEqual) {\n\t            this.charSpecs[charSpec.validChars] = child;\n\t            return child;\n\t          }\n\t        }\n\t      },\n\t\n\t      put: function(charSpec) {\n\t        var state;\n\t\n\t        // If the character specification already exists in a child of the current\n\t        // state, just return that state.\n\t        if (state = this.get(charSpec)) { return state; }\n\t\n\t        // Make a new state for the character spec\n\t        state = new $$route$recognizer$$State(charSpec);\n\t\n\t        // Insert the new state as a child of the current state\n\t        this.nextStates.push(state);\n\t\n\t        // If this character specification repeats, insert the new state as a child\n\t        // of itself. Note that this will not trigger an infinite loop because each\n\t        // transition during recognition consumes a character.\n\t        if (charSpec.repeat) {\n\t          state.nextStates.push(state);\n\t        }\n\t\n\t        // Return the new state\n\t        return state;\n\t      },\n\t\n\t      // Find a list of child states matching the next character\n\t      match: function(ch) {\n\t        var nextStates = this.nextStates,\n\t            child, charSpec, chars;\n\t\n\t        var returned = [];\n\t\n\t        for (var i=0; i<nextStates.length; i++) {\n\t          child = nextStates[i];\n\t\n\t          charSpec = child.charSpec;\n\t\n\t          if (typeof (chars = charSpec.validChars) !== 'undefined') {\n\t            if (chars.indexOf(ch) !== -1) { returned.push(child); }\n\t          } else if (typeof (chars = charSpec.invalidChars) !== 'undefined') {\n\t            if (chars.indexOf(ch) === -1) { returned.push(child); }\n\t          }\n\t        }\n\t\n\t        return returned;\n\t      }\n\t    };\n\t\n\t    // Sort the routes by specificity\n\t    function $$route$recognizer$$sortSolutions(states) {\n\t      return states.sort(function(a, b) {\n\t        return b.specificity.val - a.specificity.val;\n\t      });\n\t    }\n\t\n\t    function $$route$recognizer$$recognizeChar(states, ch) {\n\t      var nextStates = [];\n\t\n\t      for (var i=0, l=states.length; i<l; i++) {\n\t        var state = states[i];\n\t\n\t        nextStates = nextStates.concat(state.match(ch));\n\t      }\n\t\n\t      return nextStates;\n\t    }\n\t\n\t    var $$route$recognizer$$oCreate = Object.create || function(proto) {\n\t      function F() {}\n\t      F.prototype = proto;\n\t      return new F();\n\t    };\n\t\n\t    function $$route$recognizer$$RecognizeResults(queryParams) {\n\t      this.queryParams = queryParams || {};\n\t    }\n\t    $$route$recognizer$$RecognizeResults.prototype = $$route$recognizer$$oCreate({\n\t      splice: Array.prototype.splice,\n\t      slice:  Array.prototype.slice,\n\t      push:   Array.prototype.push,\n\t      length: 0,\n\t      queryParams: null\n\t    });\n\t\n\t    function $$route$recognizer$$findHandler(state, path, queryParams) {\n\t      var handlers = state.handlers, regex = state.regex;\n\t      var captures = path.match(regex), currentCapture = 1;\n\t      var result = new $$route$recognizer$$RecognizeResults(queryParams);\n\t\n\t      result.length = handlers.length;\n\t\n\t      for (var i=0; i<handlers.length; i++) {\n\t        var handler = handlers[i], names = handler.names, params = {};\n\t\n\t        for (var j=0; j<names.length; j++) {\n\t          params[names[j]] = captures[currentCapture++];\n\t        }\n\t\n\t        result[i] = { handler: handler.handler, params: params, isDynamic: !!names.length };\n\t      }\n\t\n\t      return result;\n\t    }\n\t\n\t    function $$route$recognizer$$decodeQueryParamPart(part) {\n\t      // http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.1\n\t      part = part.replace(/\\+/gm, '%20');\n\t      var result;\n\t      try {\n\t        result = decodeURIComponent(part);\n\t      } catch(error) {result = '';}\n\t      return result;\n\t    }\n\t\n\t    // The main interface\n\t\n\t    var $$route$recognizer$$RouteRecognizer = function() {\n\t      this.rootState = new $$route$recognizer$$State();\n\t      this.names = {};\n\t    };\n\t\n\t\n\t    $$route$recognizer$$RouteRecognizer.prototype = {\n\t      add: function(routes, options) {\n\t        var currentState = this.rootState, regex = \"^\",\n\t            specificity = {},\n\t            handlers = new Array(routes.length), allSegments = [], name;\n\t\n\t        var isEmpty = true;\n\t\n\t        for (var i=0; i<routes.length; i++) {\n\t          var route = routes[i], names = [];\n\t\n\t          var segments = $$route$recognizer$$parse(route.path, names, specificity);\n\t\n\t          allSegments = allSegments.concat(segments);\n\t\n\t          for (var j=0; j<segments.length; j++) {\n\t            var segment = segments[j];\n\t\n\t            if (segment instanceof $$route$recognizer$$EpsilonSegment) { continue; }\n\t\n\t            isEmpty = false;\n\t\n\t            // Add a \"/\" for the new segment\n\t            currentState = currentState.put({ invalidChars: undefined, repeat: false, validChars: \"/\" });\n\t            regex += \"/\";\n\t\n\t            // Add a representation of the segment to the NFA and regex\n\t            currentState = segment.eachChar(currentState);\n\t            regex += segment.regex();\n\t          }\n\t          var handler = { handler: route.handler, names: names };\n\t          handlers[i] = handler;\n\t        }\n\t\n\t        if (isEmpty) {\n\t          currentState = currentState.put({ invalidChars: undefined, repeat: false, validChars: \"/\" });\n\t          regex += \"/\";\n\t        }\n\t\n\t        currentState.handlers = handlers;\n\t        currentState.regex = new RegExp(regex + \"$\");\n\t        currentState.specificity = specificity;\n\t\n\t        if (name = options && options.as) {\n\t          this.names[name] = {\n\t            segments: allSegments,\n\t            handlers: handlers\n\t          };\n\t        }\n\t      },\n\t\n\t      handlersFor: function(name) {\n\t        var route = this.names[name];\n\t\n\t        if (!route) { throw new Error(\"There is no route named \" + name); }\n\t\n\t        var result = new Array(route.handlers.length);\n\t\n\t        for (var i=0; i<route.handlers.length; i++) {\n\t          result[i] = route.handlers[i];\n\t        }\n\t\n\t        return result;\n\t      },\n\t\n\t      hasRoute: function(name) {\n\t        return !!this.names[name];\n\t      },\n\t\n\t      generate: function(name, params) {\n\t        var route = this.names[name], output = \"\";\n\t        if (!route) { throw new Error(\"There is no route named \" + name); }\n\t\n\t        var segments = route.segments;\n\t\n\t        for (var i=0; i<segments.length; i++) {\n\t          var segment = segments[i];\n\t\n\t          if (segment instanceof $$route$recognizer$$EpsilonSegment) { continue; }\n\t\n\t          output += \"/\";\n\t          output += segment.generate(params);\n\t        }\n\t\n\t        if (output.charAt(0) !== '/') { output = '/' + output; }\n\t\n\t        if (params && params.queryParams) {\n\t          output += this.generateQueryString(params.queryParams, route.handlers);\n\t        }\n\t\n\t        return output;\n\t      },\n\t\n\t      generateQueryString: function(params, handlers) {\n\t        var pairs = [];\n\t        var keys = [];\n\t        for(var key in params) {\n\t          if (params.hasOwnProperty(key)) {\n\t            keys.push(key);\n\t          }\n\t        }\n\t        keys.sort();\n\t        for (var i = 0; i < keys.length; i++) {\n\t          key = keys[i];\n\t          var value = params[key];\n\t          if (value == null) {\n\t            continue;\n\t          }\n\t          var pair = encodeURIComponent(key);\n\t          if ($$route$recognizer$$isArray(value)) {\n\t            for (var j = 0; j < value.length; j++) {\n\t              var arrayPair = key + '[]' + '=' + encodeURIComponent(value[j]);\n\t              pairs.push(arrayPair);\n\t            }\n\t          } else {\n\t            pair += \"=\" + encodeURIComponent(value);\n\t            pairs.push(pair);\n\t          }\n\t        }\n\t\n\t        if (pairs.length === 0) { return ''; }\n\t\n\t        return \"?\" + pairs.join(\"&\");\n\t      },\n\t\n\t      parseQueryString: function(queryString) {\n\t        var pairs = queryString.split(\"&\"), queryParams = {};\n\t        for(var i=0; i < pairs.length; i++) {\n\t          var pair      = pairs[i].split('='),\n\t              key       = $$route$recognizer$$decodeQueryParamPart(pair[0]),\n\t              keyLength = key.length,\n\t              isArray = false,\n\t              value;\n\t          if (pair.length === 1) {\n\t            value = 'true';\n\t          } else {\n\t            //Handle arrays\n\t            if (keyLength > 2 && key.slice(keyLength -2) === '[]') {\n\t              isArray = true;\n\t              key = key.slice(0, keyLength - 2);\n\t              if(!queryParams[key]) {\n\t                queryParams[key] = [];\n\t              }\n\t            }\n\t            value = pair[1] ? $$route$recognizer$$decodeQueryParamPart(pair[1]) : '';\n\t          }\n\t          if (isArray) {\n\t            queryParams[key].push(value);\n\t          } else {\n\t            queryParams[key] = value;\n\t          }\n\t        }\n\t        return queryParams;\n\t      },\n\t\n\t      recognize: function(path) {\n\t        var states = [ this.rootState ],\n\t            pathLen, i, l, queryStart, queryParams = {},\n\t            isSlashDropped = false;\n\t\n\t        queryStart = path.indexOf('?');\n\t        if (queryStart !== -1) {\n\t          var queryString = path.substr(queryStart + 1, path.length);\n\t          path = path.substr(0, queryStart);\n\t          queryParams = this.parseQueryString(queryString);\n\t        }\n\t\n\t        path = decodeURI(path);\n\t\n\t        if (path.charAt(0) !== \"/\") { path = \"/\" + path; }\n\t\n\t        pathLen = path.length;\n\t        if (pathLen > 1 && path.charAt(pathLen - 1) === \"/\") {\n\t          path = path.substr(0, pathLen - 1);\n\t          isSlashDropped = true;\n\t        }\n\t\n\t        for (i=0; i<path.length; i++) {\n\t          states = $$route$recognizer$$recognizeChar(states, path.charAt(i));\n\t          if (!states.length) { break; }\n\t        }\n\t\n\t        var solutions = [];\n\t        for (i=0; i<states.length; i++) {\n\t          if (states[i].handlers) { solutions.push(states[i]); }\n\t        }\n\t\n\t        states = $$route$recognizer$$sortSolutions(solutions);\n\t\n\t        var state = solutions[0];\n\t\n\t        if (state && state.handlers) {\n\t          // if a trailing slash was dropped and a star segment is the last segment\n\t          // specified, put the trailing slash back\n\t          if (isSlashDropped && state.regex.source.slice(-5) === \"(.+)$\") {\n\t            path = path + \"/\";\n\t          }\n\t          return $$route$recognizer$$findHandler(state, path, queryParams);\n\t        }\n\t      }\n\t    };\n\t\n\t    $$route$recognizer$$RouteRecognizer.prototype.map = $$route$recognizer$dsl$$default;\n\t\n\t    $$route$recognizer$$RouteRecognizer.VERSION = '0.1.11';\n\t\n\t    var $$route$recognizer$$default = $$route$recognizer$$RouteRecognizer;\n\t\n\t    /* global define:true module:true window: true */\n\t    if (\"function\" === 'function' && __webpack_require__(3)['amd']) {\n\t      !(__WEBPACK_AMD_DEFINE_RESULT__ = function() { return $$route$recognizer$$default; }.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t    } else if (typeof module !== 'undefined' && module['exports']) {\n\t      module['exports'] = $$route$recognizer$$default;\n\t    } else if (typeof this !== 'undefined') {\n\t      this['RouteRecognizer'] = $$route$recognizer$$default;\n\t    }\n\t}).call(this);\n\t\n\t//# sourceMappingURL=route-recognizer.js.map\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)(module)))\n\n/***/ },\n/* 2 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(module) {\r\n\t\tif(!module.webpackPolyfill) {\r\n\t\t\tmodule.deprecate = function() {};\r\n\t\t\tmodule.paths = [];\r\n\t\t\t// module.parent = undefined by default\r\n\t\t\tmodule.children = [];\r\n\t\t\tmodule.webpackPolyfill = 1;\r\n\t\t}\r\n\t\treturn module;\r\n\t}\r\n\n\n/***/ },\n/* 3 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function() { throw new Error(\"define cannot be used indirect\"); };\r\n\n\n/***/ }\n/******/ ])\n});\n;\n//# sourceMappingURL=router.js.map","// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\n\r\nimport {\r\n  AdvancedFilter,\r\n  AdvancedFilterLogicalOperators,\r\n  IAdvancedFilterCondition,\r\n  AdvancedFilterConditionOperators\r\n} from \"powerbi-models\";\r\n\r\nimport { FilterBuilder } from './filterBuilder';\r\n\r\n/**\r\n * Power BI Advanced filter builder component\r\n *\r\n * @export\r\n * @class AdvancedFilterBuilder\r\n * @extends {FilterBuilder}\r\n */\r\nexport class AdvancedFilterBuilder extends FilterBuilder {\r\n\r\n  private logicalOperator: AdvancedFilterLogicalOperators;\r\n  private conditions: IAdvancedFilterCondition[] = [];\r\n\r\n  /**\r\n   * Sets And as logical operator for Advanced filter\r\n   *\r\n   * ```javascript\r\n   *\r\n   * const advancedFilterBuilder = new AdvancedFilterBuilder().and();\r\n   * ```\r\n   *\r\n   * @returns {AdvancedFilterBuilder}\r\n   */\r\n  and(): AdvancedFilterBuilder {\r\n    this.logicalOperator = \"And\";\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Sets Or as logical operator for Advanced filter\r\n   *\r\n   * ```javascript\r\n   *\r\n   * const advancedFilterBuilder = new AdvancedFilterBuilder().or();\r\n   * ```\r\n   *\r\n   * @returns {AdvancedFilterBuilder}\r\n   */\r\n  or(): AdvancedFilterBuilder {\r\n    this.logicalOperator = \"Or\";\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Adds a condition in Advanced filter\r\n   *\r\n   * ```javascript\r\n   *\r\n   * // Add two conditions\r\n   * const advancedFilterBuilder = new AdvancedFilterBuilder().addCondition(\"Contains\", \"Wash\").addCondition(\"Contains\", \"Park\");\r\n   * ```\r\n   *\r\n   * @returns {AdvancedFilterBuilder}\r\n   */\r\n  addCondition(operator: AdvancedFilterConditionOperators, value?: (string | number | boolean | Date)): AdvancedFilterBuilder {\r\n    const condition: IAdvancedFilterCondition = {\r\n      operator: operator,\r\n      value: value\r\n    };\r\n    this.conditions.push(condition);\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Creates Advanced filter\r\n   *\r\n   * ```javascript\r\n   *\r\n   * const advancedFilterBuilder = new AdvancedFilterBuilder().build();\r\n   * ```\r\n   *\r\n   * @returns {AdvancedFilter}\r\n   */\r\n  build(): AdvancedFilter {\r\n    const advancedFilter = new AdvancedFilter(this.target, this.logicalOperator, this.conditions);\r\n    return advancedFilter;\r\n  }\r\n}\r\n","// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\n\r\nimport {\r\n  BasicFilter,\r\n  BasicFilterOperators\r\n} from \"powerbi-models\";\r\n\r\nimport { FilterBuilder } from './filterBuilder';\r\n\r\n/**\r\n * Power BI Basic filter builder component\r\n *\r\n * @export\r\n * @class BasicFilterBuilder\r\n * @extends {FilterBuilder}\r\n */\r\nexport class BasicFilterBuilder extends FilterBuilder {\r\n\r\n  private values: Array<(string | number | boolean)>;\r\n  private operator: BasicFilterOperators;\r\n  private isRequireSingleSelection = false;\r\n\r\n  /**\r\n   * Sets In as operator for Basic filter\r\n   *\r\n   * ```javascript\r\n   *\r\n   * const basicFilterBuilder = new BasicFilterBuilder().in([values]);\r\n   * ```\r\n   *\r\n   * @returns {BasicFilterBuilder}\r\n   */\r\n  in(values: Array<(string | number | boolean)>): BasicFilterBuilder {\r\n    this.operator = \"In\";\r\n    this.values = values;\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Sets NotIn as operator for Basic filter\r\n   *\r\n   * ```javascript\r\n   *\r\n   * const basicFilterBuilder = new BasicFilterBuilder().notIn([values]);\r\n   * ```\r\n   *\r\n   * @returns {BasicFilterBuilder}\r\n   */\r\n  notIn(values: Array<(string | number | boolean)>): BasicFilterBuilder {\r\n    this.operator = \"NotIn\";\r\n    this.values = values;\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Sets All as operator for Basic filter\r\n   *\r\n   * ```javascript\r\n   *\r\n   * const basicFilterBuilder = new BasicFilterBuilder().all();\r\n   * ```\r\n   *\r\n   * @returns {BasicFilterBuilder}\r\n   */\r\n  all(): BasicFilterBuilder {\r\n    this.operator = \"All\";\r\n    this.values = [];\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Sets required single selection property for Basic filter\r\n   *\r\n   * ```javascript\r\n   *\r\n   * const basicFilterBuilder = new BasicFilterBuilder().requireSingleSelection(isRequireSingleSelection);\r\n   * ```\r\n   *\r\n   * @returns {BasicFilterBuilder}\r\n   */\r\n  requireSingleSelection(isRequireSingleSelection = false): BasicFilterBuilder {\r\n    this.isRequireSingleSelection = isRequireSingleSelection;\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Creates Basic filter\r\n   *\r\n   * ```javascript\r\n   *\r\n   * const basicFilterBuilder = new BasicFilterBuilder().build();\r\n   * ```\r\n   *\r\n   * @returns {BasicFilter}\r\n   */\r\n  build(): BasicFilter {\r\n    const basicFilter = new BasicFilter(this.target, this.operator, this.values);\r\n    basicFilter.requireSingleSelection = this.isRequireSingleSelection;\r\n    return basicFilter;\r\n  }\r\n}\r\n","// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\n\r\nimport { IFilterTarget } from \"powerbi-models\";\r\n\r\n/**\r\n * Generic filter builder for BasicFilter, AdvancedFilter, RelativeDate, RelativeTime and TopN\r\n *\r\n * @class\r\n */\r\nexport class FilterBuilder {\r\n\r\n  public target: IFilterTarget;\r\n\r\n  /**\r\n   * Sets target property for filter with target object\r\n   *\r\n   * ```javascript\r\n   * const target = {\r\n   *  table: 'table1',\r\n   *  column: 'column1'\r\n   * };\r\n   *\r\n   * const filterBuilder = new FilterBuilder().withTargetObject(target);\r\n   * ```\r\n   *\r\n   * @returns {FilterBuilder}\r\n   */\r\n  withTargetObject(target: IFilterTarget): this {\r\n    this.target = target;\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Sets target property for filter with column target object\r\n   *\r\n   * ```\r\n   * const filterBuilder = new FilterBuilder().withColumnTarget(tableName, columnName);\r\n   * ```\r\n   *\r\n   * @returns {FilterBuilder}\r\n   */\r\n  withColumnTarget(tableName: string, columnName: string): this {\r\n    this.target = { table: tableName, column: columnName };\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Sets target property for filter with measure target object\r\n   *\r\n   * ```\r\n   * const filterBuilder = new FilterBuilder().withMeasureTarget(tableName, measure);\r\n   * ```\r\n   *\r\n   * @returns {FilterBuilder}\r\n   */\r\n  withMeasureTarget(tableName: string, measure: string): this {\r\n    this.target = { table: tableName, measure: measure };\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Sets target property for filter with hierarchy level target object\r\n   *\r\n   * ```\r\n   * const filterBuilder = new FilterBuilder().withHierarchyLevelTarget(tableName, hierarchy, hierarchyLevel);\r\n   * ```\r\n   *\r\n   * @returns {FilterBuilder}\r\n   */\r\n  withHierarchyLevelTarget(tableName: string, hierarchy: string, hierarchyLevel: string): this {\r\n    this.target = { table: tableName, hierarchy: hierarchy, hierarchyLevel: hierarchyLevel };\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Sets target property for filter with column aggregation target object\r\n   *\r\n   * ```\r\n   * const filterBuilder = new FilterBuilder().withColumnAggregation(tableName, columnName, aggregationFunction);\r\n   * ```\r\n   *\r\n   * @returns {FilterBuilder}\r\n   */\r\n  withColumnAggregation(tableName: string, columnName: string, aggregationFunction: string): this {\r\n    this.target = { table: tableName, column: columnName, aggregationFunction: aggregationFunction };\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Sets target property for filter with hierarchy level aggregation target object\r\n   *\r\n   * ```\r\n   * const filterBuilder = new FilterBuilder().withHierarchyLevelAggregationTarget(tableName, hierarchy, hierarchyLevel, aggregationFunction);\r\n   * ```\r\n   *\r\n   * @returns {FilterBuilder}\r\n   */\r\n  withHierarchyLevelAggregationTarget(tableName: string, hierarchy: string, hierarchyLevel: string, aggregationFunction: string): this {\r\n    this.target = { table: tableName, hierarchy: hierarchy, hierarchyLevel: hierarchyLevel, aggregationFunction: aggregationFunction };\r\n    return this;\r\n  }\r\n}\r\n","// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\n\r\nexport {\r\n  BasicFilterBuilder\r\n} from \"./basicFilterBuilder\";\r\nexport {\r\n  AdvancedFilterBuilder\r\n} from \"./advancedFilterBuilder\";\r\nexport {\r\n  TopNFilterBuilder\r\n} from \"./topNFilterBuilder\";\r\nexport {\r\n  RelativeDateFilterBuilder\r\n} from \"./relativeDateFilterBuilder\";\r\nexport {\r\n  RelativeTimeFilterBuilder\r\n} from \"./relativeTimeFilterBuilder\";\r\n","// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\n\r\nimport {\r\n  RelativeDateFilter,\r\n  RelativeDateOperators,\r\n  RelativeDateFilterTimeUnit\r\n} from \"powerbi-models\";\r\n\r\nimport { FilterBuilder } from './filterBuilder';\r\n\r\n/**\r\n * Power BI Relative Date filter builder component\r\n *\r\n * @export\r\n * @class RelativeDateFilterBuilder\r\n * @extends {FilterBuilder}\r\n */\r\nexport class RelativeDateFilterBuilder extends FilterBuilder {\r\n\r\n  private operator: RelativeDateOperators;\r\n  private timeUnitsCount: number;\r\n  private timeUnitType: RelativeDateFilterTimeUnit;\r\n  private isTodayIncluded = true;\r\n\r\n  /**\r\n   * Sets inLast as operator for Relative Date filter\r\n   *\r\n   * ```javascript\r\n   *\r\n   * const relativeDateFilterBuilder = new RelativeDateFilterBuilder().inLast(timeUnitsCount, timeUnitType);\r\n   * ```\r\n   *\r\n   * @param {number} timeUnitsCount - The amount of time units\r\n   * @param {RelativeDateFilterTimeUnit} timeUnitType - Defines the unit of time the filter is using\r\n   * @returns {RelativeDateFilterBuilder}\r\n   */\r\n  inLast(timeUnitsCount: number, timeUnitType: RelativeDateFilterTimeUnit): RelativeDateFilterBuilder {\r\n    this.operator = RelativeDateOperators.InLast;\r\n    this.timeUnitsCount = timeUnitsCount;\r\n    this.timeUnitType = timeUnitType;\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Sets inThis as operator for Relative Date filter\r\n   *\r\n   * ```javascript\r\n   *\r\n   * const relativeDateFilterBuilder = new RelativeDateFilterBuilder().inThis(timeUnitsCount, timeUnitType);\r\n   * ```\r\n   *\r\n   * @param {number} timeUnitsCount - The amount of time units\r\n   * @param {RelativeDateFilterTimeUnit} timeUnitType - Defines the unit of time the filter is using\r\n   * @returns {RelativeDateFilterBuilder}\r\n   */\r\n  inThis(timeUnitsCount: number, timeUnitType: RelativeDateFilterTimeUnit): RelativeDateFilterBuilder {\r\n    this.operator = RelativeDateOperators.InThis;\r\n    this.timeUnitsCount = timeUnitsCount;\r\n    this.timeUnitType = timeUnitType;\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Sets inNext as operator for Relative Date filter\r\n   *\r\n   * ```javascript\r\n   *\r\n   * const relativeDateFilterBuilder = new RelativeDateFilterBuilder().inNext(timeUnitsCount, timeUnitType);\r\n   * ```\r\n   *\r\n   * @param {number} timeUnitsCount - The amount of time units\r\n   * @param {RelativeDateFilterTimeUnit} timeUnitType - Defines the unit of time the filter is using\r\n   * @returns {RelativeDateFilterBuilder}\r\n   */\r\n  inNext(timeUnitsCount: number, timeUnitType: RelativeDateFilterTimeUnit): RelativeDateFilterBuilder {\r\n    this.operator = RelativeDateOperators.InNext;\r\n    this.timeUnitsCount = timeUnitsCount;\r\n    this.timeUnitType = timeUnitType;\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Sets includeToday for Relative Date filter\r\n   *\r\n   * ```javascript\r\n   *\r\n   * const relativeDateFilterBuilder = new RelativeDateFilterBuilder().includeToday(includeToday);\r\n   * ```\r\n   *\r\n   * @param {boolean} includeToday - Denotes if today is included or not\r\n   * @returns {RelativeDateFilterBuilder}\r\n   */\r\n  includeToday(includeToday: boolean): RelativeDateFilterBuilder {\r\n    this.isTodayIncluded = includeToday;\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Creates Relative Date filter\r\n   *\r\n   * ```javascript\r\n   *\r\n   * const relativeDateFilterBuilder = new RelativeDateFilterBuilder().build();\r\n   * ```\r\n   *\r\n   * @returns {RelativeDateFilter}\r\n   */\r\n  build(): RelativeDateFilter {\r\n    const relativeDateFilter = new RelativeDateFilter(this.target, this.operator, this.timeUnitsCount, this.timeUnitType, this.isTodayIncluded);\r\n    return relativeDateFilter;\r\n  }\r\n}\r\n","// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\n\r\nimport {\r\n  RelativeTimeFilter,\r\n  RelativeDateOperators,\r\n  RelativeDateFilterTimeUnit\r\n} from \"powerbi-models\";\r\n\r\nimport { FilterBuilder } from './filterBuilder';\r\n\r\n/**\r\n * Power BI Relative Time filter builder component\r\n *\r\n * @export\r\n * @class RelativeTimeFilterBuilder\r\n * @extends {FilterBuilder}\r\n */\r\nexport class RelativeTimeFilterBuilder extends FilterBuilder {\r\n\r\n  private operator: RelativeDateOperators;\r\n  private timeUnitsCount: number;\r\n  private timeUnitType: RelativeDateFilterTimeUnit;\r\n\r\n  /**\r\n   * Sets inLast as operator for Relative Time filter\r\n   *\r\n   * ```javascript\r\n   *\r\n   * const relativeTimeFilterBuilder = new RelativeTimeFilterBuilder().inLast(timeUnitsCount, timeUnitType);\r\n   * ```\r\n   *\r\n   * @param {number} timeUnitsCount - The amount of time units\r\n   * @param {RelativeDateFilterTimeUnit} timeUnitType - Defines the unit of time the filter is using\r\n   * @returns {RelativeTimeFilterBuilder}\r\n   */\r\n  inLast(timeUnitsCount: number, timeUnitType: RelativeDateFilterTimeUnit): RelativeTimeFilterBuilder {\r\n    this.operator = RelativeDateOperators.InLast;\r\n    this.timeUnitsCount = timeUnitsCount;\r\n    this.timeUnitType = timeUnitType;\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Sets inThis as operator for Relative Time filter\r\n   *\r\n   * ```javascript\r\n   *\r\n   * const relativeTimeFilterBuilder = new RelativeTimeFilterBuilder().inThis(timeUnitsCount, timeUnitType);\r\n   * ```\r\n   *\r\n   * @param {number} timeUnitsCount - The amount of time units\r\n   * @param {RelativeDateFilterTimeUnit} timeUnitType - Defines the unit of time the filter is using\r\n   * @returns {RelativeTimeFilterBuilder}\r\n   */\r\n  inThis(timeUnitsCount: number, timeUnitType: RelativeDateFilterTimeUnit): RelativeTimeFilterBuilder {\r\n    this.operator = RelativeDateOperators.InThis;\r\n    this.timeUnitsCount = timeUnitsCount;\r\n    this.timeUnitType = timeUnitType;\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Sets inNext as operator for Relative Time filter\r\n   *\r\n   * ```javascript\r\n   *\r\n   * const relativeTimeFilterBuilder = new RelativeTimeFilterBuilder().inNext(timeUnitsCount, timeUnitType);\r\n   * ```\r\n   *\r\n   * @param {number} timeUnitsCount - The amount of time units\r\n   * @param {RelativeDateFilterTimeUnit} timeUnitType - Defines the unit of time the filter is using\r\n   * @returns {RelativeTimeFilterBuilder}\r\n   */\r\n  inNext(timeUnitsCount: number, timeUnitType: RelativeDateFilterTimeUnit): RelativeTimeFilterBuilder {\r\n    this.operator = RelativeDateOperators.InNext;\r\n    this.timeUnitsCount = timeUnitsCount;\r\n    this.timeUnitType = timeUnitType;\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Creates Relative Time filter\r\n   *\r\n   * ```javascript\r\n   *\r\n   * const relativeTimeFilterBuilder = new RelativeTimeFilterBuilder().build();\r\n   * ```\r\n   *\r\n   * @returns {RelativeTimeFilter}\r\n   */\r\n  build(): RelativeTimeFilter {\r\n    const relativeTimeFilter = new RelativeTimeFilter(this.target, this.operator, this.timeUnitsCount, this.timeUnitType);\r\n    return relativeTimeFilter;\r\n  }\r\n}\r\n","// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\n\r\nimport {\r\n  ITarget,\r\n  TopNFilter,\r\n  TopNFilterOperators\r\n} from \"powerbi-models\";\r\n\r\nimport { FilterBuilder } from './filterBuilder';\r\n\r\n/**\r\n * Power BI Top N filter builder component\r\n *\r\n * @export\r\n * @class TopNFilterBuilder\r\n * @extends {FilterBuilder}\r\n */\r\nexport class TopNFilterBuilder extends FilterBuilder {\r\n\r\n  private itemCount: number;\r\n  private operator: TopNFilterOperators;\r\n  private orderByTargetValue: ITarget;\r\n\r\n  /**\r\n   * Sets Top as operator for Top N filter\r\n   *\r\n   * ```javascript\r\n   *\r\n   * const topNFilterBuilder = new TopNFilterBuilder().top(itemCount);\r\n   * ```\r\n   *\r\n   * @returns {TopNFilterBuilder}\r\n   */\r\n  top(itemCount: number): TopNFilterBuilder {\r\n    this.operator = \"Top\";\r\n    this.itemCount = itemCount;\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Sets Bottom as operator for Top N filter\r\n   *\r\n   * ```javascript\r\n   *\r\n   * const topNFilterBuilder = new TopNFilterBuilder().bottom(itemCount);\r\n   * ```\r\n   *\r\n   * @returns {TopNFilterBuilder}\r\n   */\r\n  bottom(itemCount: number): TopNFilterBuilder {\r\n    this.operator = \"Bottom\";\r\n    this.itemCount = itemCount;\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Sets order by for Top N filter\r\n   *\r\n   * ```javascript\r\n   *\r\n   * const topNFilterBuilder = new TopNFilterBuilder().orderByTarget(target);\r\n   * ```\r\n   *\r\n   * @returns {TopNFilterBuilder}\r\n   */\r\n  orderByTarget(target: ITarget): TopNFilterBuilder {\r\n    this.orderByTargetValue = target;\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Creates Top N filter\r\n   *\r\n   * ```javascript\r\n   *\r\n   * const topNFilterBuilder = new TopNFilterBuilder().build();\r\n   * ```\r\n   *\r\n   * @returns {TopNFilter}\r\n   */\r\n  build(): TopNFilter {\r\n    const topNFilter = new TopNFilter(this.target, this.operator, this.itemCount, this.orderByTargetValue);\r\n    return topNFilter;\r\n  }\r\n}\r\n","// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\n\r\nimport {\r\n  BookmarksPlayMode,\r\n  IApplyBookmarkByNameRequest,\r\n  IApplyBookmarkStateRequest,\r\n  ICaptureBookmarkOptions,\r\n  ICaptureBookmarkRequest,\r\n  IPlayBookmarkRequest,\r\n  IReportBookmark\r\n\r\n} from 'powerbi-models';\r\nimport { IHttpPostMessageResponse } from 'http-post-message';\r\nimport { Service } from './service';\r\nimport { IEmbedConfigurationBase } from './embed';\r\nimport { isRDLEmbed } from './util';\r\nimport { APINotSupportedForRDLError } from './errors';\r\n\r\n/**\r\n * APIs for managing the report bookmarks.\r\n *\r\n * @export\r\n * @interface IBookmarksManager\r\n */\r\nexport interface IBookmarksManager {\r\n  getBookmarks(): Promise<IReportBookmark[]>;\r\n  apply(bookmarkName: string): Promise<IHttpPostMessageResponse<void>>;\r\n  play(playMode: BookmarksPlayMode): Promise<IHttpPostMessageResponse<void>>;\r\n  capture(options?: ICaptureBookmarkOptions): Promise<IReportBookmark>;\r\n  applyState(state: string): Promise<IHttpPostMessageResponse<void>>;\r\n}\r\n\r\n/**\r\n * Manages report bookmarks.\r\n *\r\n * @export\r\n * @class BookmarksManager\r\n * @implements {IBookmarksManager}\r\n */\r\nexport class BookmarksManager implements IBookmarksManager {\r\n  /**\r\n   * @hidden\r\n   */\r\n  constructor(private service: Service, private config: IEmbedConfigurationBase, private iframe?: HTMLIFrameElement) {\r\n  }\r\n\r\n  /**\r\n   * Gets bookmarks that are defined in the report.\r\n   *\r\n   * ```javascript\r\n   * // Gets bookmarks that are defined in the report\r\n   * bookmarksManager.getBookmarks()\r\n   *   .then(bookmarks => {\r\n   *     ...\r\n   *   });\r\n   * ```\r\n   *\r\n   * @returns {Promise<IReportBookmark[]>}\r\n   */\r\n  async getBookmarks(): Promise<IReportBookmark[]> {\r\n    if (isRDLEmbed(this.config.embedUrl)) {\r\n      return Promise.reject(APINotSupportedForRDLError);\r\n    }\r\n\r\n    try {\r\n      const response = await this.service.hpm.get<IReportBookmark[]>(`/report/bookmarks`, { uid: this.config.uniqueId }, this.iframe.contentWindow);\r\n      return response.body;\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Apply bookmark by name.\r\n   *\r\n   * ```javascript\r\n   * bookmarksManager.apply(bookmarkName)\r\n   * ```\r\n   *\r\n   * @param {string} bookmarkName The name of the bookmark to be applied\r\n   * @returns {Promise<IHttpPostMessageResponse<void>>}\r\n   */\r\n  async apply(bookmarkName: string): Promise<IHttpPostMessageResponse<void>> {\r\n    if (isRDLEmbed(this.config.embedUrl)) {\r\n      return Promise.reject(APINotSupportedForRDLError);\r\n    }\r\n\r\n    const request: IApplyBookmarkByNameRequest = {\r\n      name: bookmarkName\r\n    };\r\n\r\n    try {\r\n      return await this.service.hpm.post<void>(`/report/bookmarks/applyByName`, request, { uid: this.config.uniqueId }, this.iframe.contentWindow);\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Play bookmarks: Enter or Exit bookmarks presentation mode.\r\n   *\r\n   * ```javascript\r\n   * // Enter presentation mode.\r\n   * bookmarksManager.play(BookmarksPlayMode.Presentation)\r\n   * ```\r\n   *\r\n   * @param {BookmarksPlayMode} playMode Play mode can be either `Presentation` or `Off`\r\n   * @returns {Promise<IHttpPostMessageResponse<void>>}\r\n   */\r\n  async play(playMode: BookmarksPlayMode): Promise<IHttpPostMessageResponse<void>> {\r\n    if (isRDLEmbed(this.config.embedUrl)) {\r\n      return Promise.reject(APINotSupportedForRDLError);\r\n    }\r\n\r\n    const playBookmarkRequest: IPlayBookmarkRequest = {\r\n      playMode: playMode\r\n    };\r\n\r\n    try {\r\n      return await this.service.hpm.post<void>(`/report/bookmarks/play`, playBookmarkRequest, { uid: this.config.uniqueId }, this.iframe.contentWindow);\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Capture bookmark from current state.\r\n   *\r\n   * ```javascript\r\n   * bookmarksManager.capture(options)\r\n   * ```\r\n   *\r\n   * @param {ICaptureBookmarkOptions} [options] Options for bookmark capturing\r\n   * @returns {Promise<IReportBookmark>}\r\n   */\r\n  async capture(options?: ICaptureBookmarkOptions): Promise<IReportBookmark> {\r\n    if (isRDLEmbed(this.config.embedUrl)) {\r\n      return Promise.reject(APINotSupportedForRDLError);\r\n    }\r\n\r\n    const request: ICaptureBookmarkRequest = {\r\n      options: options || {}\r\n    };\r\n\r\n    try {\r\n      const response = await this.service.hpm.post<IReportBookmark>(`/report/bookmarks/capture`, request, { uid: this.config.uniqueId }, this.iframe.contentWindow);\r\n      return response.body;\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Apply bookmark state.\r\n   *\r\n   * ```javascript\r\n   * bookmarksManager.applyState(bookmarkState)\r\n   * ```\r\n   *\r\n   * @param {string} state A base64 bookmark state to be applied\r\n   * @returns {Promise<IHttpPostMessageResponse<void>>}\r\n   */\r\n  async applyState(state: string): Promise<IHttpPostMessageResponse<void>> {\r\n    if (isRDLEmbed(this.config.embedUrl)) {\r\n      return Promise.reject(APINotSupportedForRDLError);\r\n    }\r\n\r\n    const request: IApplyBookmarkStateRequest = {\r\n      state: state\r\n    };\r\n\r\n    try {\r\n      return await this.service.hpm.post<void>(`/report/bookmarks/applyState`, request, { uid: this.config.uniqueId }, this.iframe.contentWindow);\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n}\r\n","// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\n\r\n/** @ignore *//** */\r\nconst config = {\r\n  version: '2.22.4',\r\n  type: 'js'\r\n};\r\n\r\nexport default config;\r\n","// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\n\r\nimport { IReportCreateConfiguration, IError, validateCreateReport } from 'powerbi-models';\r\nimport { Service } from './service';\r\nimport { Embed, IEmbedConfigurationBase, IEmbedConfiguration, ISessionHeaders } from './embed';\r\nimport * as utils from './util';\r\n\r\n/**\r\n * A Power BI Report creator component\r\n *\r\n * @export\r\n * @class Create\r\n * @extends {Embed}\r\n */\r\nexport class Create extends Embed {\r\n  /**\r\n   * Gets or sets the configuration settings for creating report.\r\n   *\r\n   * @type {IReportCreateConfiguration}\r\n   * @hidden\r\n   */\r\n  createConfig: IReportCreateConfiguration;\r\n\r\n  /*\r\n   * @hidden\r\n   */\r\n  constructor(service: Service, element: HTMLElement, config: IEmbedConfiguration | IReportCreateConfiguration, phasedRender?: boolean, isBootstrap?: boolean) {\r\n    super(service, element, config, /* iframe */ undefined, phasedRender, isBootstrap);\r\n  }\r\n\r\n  /**\r\n   * Gets the dataset ID from the first available location: createConfig or embed url.\r\n   *\r\n   * @returns {string}\r\n   */\r\n  getId(): string {\r\n    const datasetId = (this.createConfig && this.createConfig.datasetId) ? this.createConfig.datasetId : Create.findIdFromEmbedUrl(this.config.embedUrl);\r\n\r\n    if (typeof datasetId !== 'string' || datasetId.length === 0) {\r\n      throw new Error('Dataset id is required, but it was not found. You must provide an id either as part of embed configuration.');\r\n    }\r\n\r\n    return datasetId;\r\n  }\r\n\r\n  /**\r\n   * Validate create report configuration.\r\n   */\r\n  validate(config: IEmbedConfigurationBase): IError[] {\r\n    return validateCreateReport(config);\r\n  }\r\n\r\n  /**\r\n   * Handle config changes.\r\n   *\r\n   * @hidden\r\n   * @returns {void}\r\n   */\r\n  configChanged(isBootstrap: boolean): void {\r\n    if (isBootstrap) {\r\n      return;\r\n    }\r\n\r\n    const config = this.config as IEmbedConfiguration | IReportCreateConfiguration;\r\n\r\n    this.createConfig = {\r\n      accessToken: config.accessToken,\r\n      datasetId: config.datasetId || this.getId(),\r\n      groupId: config.groupId,\r\n      settings: config.settings,\r\n      tokenType: config.tokenType,\r\n      theme: config.theme\r\n    };\r\n  }\r\n\r\n  /**\r\n   * @hidden\r\n   * @returns {string}\r\n   */\r\n  getDefaultEmbedUrlEndpoint(): string {\r\n    return \"reportEmbed\";\r\n  }\r\n\r\n  /**\r\n   * checks if the report is saved.\r\n   *\r\n   * ```javascript\r\n   * report.isSaved()\r\n   * ```\r\n   *\r\n   * @returns {Promise<boolean>}\r\n   */\r\n  async isSaved(): Promise<boolean> {\r\n    return await utils.isSavedInternal(this.service.hpm, this.config.uniqueId, this.iframe.contentWindow);\r\n  }\r\n\r\n  /**\r\n   * Adds the ability to get datasetId from url.\r\n   * (e.g. http://embedded.powerbi.com/appTokenReportEmbed?datasetId=854846ed-2106-4dc2-bc58-eb77533bf2f1).\r\n   *\r\n   * By extracting the ID we can ensure that the ID is always explicitly provided as part of the create configuration.\r\n   *\r\n   * @static\r\n   * @param {string} url\r\n   * @returns {string}\r\n   * @hidden\r\n   */\r\n  static findIdFromEmbedUrl(url: string): string {\r\n    const datasetIdRegEx = /datasetId=\"?([^&]+)\"?/;\r\n    const datasetIdMatch = url.match(datasetIdRegEx);\r\n\r\n    let datasetId: string;\r\n    if (datasetIdMatch) {\r\n      datasetId = datasetIdMatch[1];\r\n    }\r\n\r\n    return datasetId;\r\n  }\r\n\r\n  /**\r\n   * Sends create configuration data.\r\n   *\r\n   * ```javascript\r\n   * create ({\r\n   *   datasetId: '5dac7a4a-4452-46b3-99f6-a25915e0fe55',\r\n   *   accessToken: 'eyJ0eXA ... TaE2rTSbmg',\r\n   * ```\r\n   *\r\n   * @hidden\r\n   * @returns {Promise<void>}\r\n   */\r\n  async create(): Promise<void> {\r\n    const errors = validateCreateReport(this.createConfig);\r\n    if (errors) {\r\n      throw errors;\r\n    }\r\n\r\n    try {\r\n      const headers: ISessionHeaders = {\r\n        uid: this.config.uniqueId,\r\n        sdkSessionId: this.service.getSdkSessionId()\r\n      };\r\n\r\n      if (!!this.eventHooks?.accessTokenProvider) {\r\n        headers.tokenProviderSupplied = true;\r\n      }\r\n\r\n      const response = await this.service.hpm.post<void>(\"/report/create\", this.createConfig, headers, this.iframe.contentWindow);\r\n      return response.body;\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n}\r\n","// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\n\r\nimport { IError, validateDashboardLoad, PageView } from 'powerbi-models';\r\nimport { Service, IService } from './service';\r\nimport { Embed, IDashboardEmbedConfiguration, IEmbedConfigurationBase } from './embed';\r\n\r\n/**\r\n * A Dashboard node within a dashboard hierarchy\r\n *\r\n * @export\r\n * @interface IDashboardNode\r\n */\r\nexport interface IDashboardNode {\r\n  iframe: HTMLIFrameElement;\r\n  service: IService;\r\n  config: IEmbedConfigurationBase;\r\n}\r\n\r\n/**\r\n * A Power BI Dashboard embed component\r\n *\r\n * @export\r\n * @class Dashboard\r\n * @extends {Embed}\r\n * @implements {IDashboardNode}\r\n */\r\nexport class Dashboard extends Embed implements IDashboardNode {\r\n  /** @hidden */\r\n  static allowedEvents = [\"tileClicked\", \"error\"];\r\n  /** @hidden */\r\n  static dashboardIdAttribute = 'powerbi-dashboard-id';\r\n  /** @hidden */\r\n  static typeAttribute = 'powerbi-type';\r\n  /** @hidden */\r\n  static type = \"Dashboard\";\r\n\r\n  /**\r\n   * Creates an instance of a Power BI Dashboard.\r\n   *\r\n   * @param {service.Service} service\r\n   * @hidden\r\n   * @param {HTMLElement} element\r\n   */\r\n  constructor(service: Service, element: HTMLElement, config: IEmbedConfigurationBase, phasedRender?: boolean, isBootstrap?: boolean) {\r\n    super(service, element, config, /* iframe */ undefined, phasedRender, isBootstrap);\r\n    this.loadPath = \"/dashboard/load\";\r\n    this.phasedLoadPath = \"/dashboard/prepare\";\r\n\r\n    Array.prototype.push.apply(this.allowedEvents, Dashboard.allowedEvents);\r\n  }\r\n\r\n  /**\r\n   * This adds backwards compatibility for older config which used the dashboardId query param to specify dashboard id.\r\n   * E.g. https://powerbi-df.analysis-df.windows.net/dashboardEmbedHost?dashboardId=e9363c62-edb6-4eac-92d3-2199c5ca2a9e\r\n   *\r\n   * By extracting the id we can ensure id is always explicitly provided as part of the load configuration.\r\n   *\r\n   * @hidden\r\n   * @static\r\n   * @param {string} url\r\n   * @returns {string}\r\n   */\r\n  static findIdFromEmbedUrl(url: string): string {\r\n    const dashboardIdRegEx = /dashboardId=\"?([^&]+)\"?/;\r\n    const dashboardIdMatch = url.match(dashboardIdRegEx);\r\n\r\n    let dashboardId: string;\r\n    if (dashboardIdMatch) {\r\n      dashboardId = dashboardIdMatch[1];\r\n    }\r\n\r\n    return dashboardId;\r\n  }\r\n\r\n  /**\r\n   * Get dashboard id from first available location: options, attribute, embed url.\r\n   *\r\n   * @returns {string}\r\n   */\r\n  getId(): string {\r\n    const config = this.config as IDashboardEmbedConfiguration;\r\n    const dashboardId = config.id || this.element.getAttribute(Dashboard.dashboardIdAttribute) || Dashboard.findIdFromEmbedUrl(config.embedUrl);\r\n\r\n    if (typeof dashboardId !== 'string' || dashboardId.length === 0) {\r\n      throw new Error(`Dashboard id is required, but it was not found. You must provide an id either as part of embed configuration or as attribute '${Dashboard.dashboardIdAttribute}'.`);\r\n    }\r\n\r\n    return dashboardId;\r\n  }\r\n\r\n  /**\r\n   * Validate load configuration.\r\n   *\r\n   * @hidden\r\n   */\r\n  validate(baseConfig: IEmbedConfigurationBase): IError[] {\r\n    const config = baseConfig as IDashboardEmbedConfiguration;\r\n    const error = validateDashboardLoad(config);\r\n    return error ? error : this.validatePageView(config.pageView);\r\n  }\r\n\r\n  /**\r\n   * Handle config changes.\r\n   *\r\n   * @hidden\r\n   * @returns {void}\r\n   */\r\n  configChanged(isBootstrap: boolean): void {\r\n    if (isBootstrap) {\r\n      return;\r\n    }\r\n\r\n    // Populate dashboard id into config object.\r\n    (this.config as IDashboardEmbedConfiguration).id = this.getId();\r\n  }\r\n\r\n  /**\r\n   * @hidden\r\n   * @returns {string}\r\n   */\r\n  getDefaultEmbedUrlEndpoint(): string {\r\n    return \"dashboardEmbed\";\r\n  }\r\n\r\n  /**\r\n   * Validate that pageView has a legal value: if page view is defined it must have one of the values defined in PageView\r\n   *\r\n   * @hidden\r\n   */\r\n  private validatePageView(pageView: PageView): IError[] {\r\n    if (pageView && pageView !== \"fitToWidth\" && pageView !== \"oneColumn\" && pageView !== \"actualSize\") {\r\n      return [{ message: \"pageView must be one of the followings: fitToWidth, oneColumn, actualSize\" }];\r\n    }\r\n  }\r\n}\r\n","// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\n\r\nimport * as models from 'powerbi-models';\r\nimport * as sdkConfig from './config';\r\nimport { EmbedUrlNotSupported } from './errors';\r\nimport { ICustomEvent, IEvent, IEventHandler, Service } from './service';\r\nimport { addParamToUrl, assign, autoAuthInEmbedUrl, createRandomString, getTimeDiffInMilliseconds, remove, isCreate } from './util';\r\n\r\ndeclare global {\r\n  interface Document {\r\n    // Mozilla Fullscreen\r\n    mozCancelFullScreen: any;\r\n\r\n    // Ms Fullscreen\r\n    msExitFullscreen: any;\r\n\r\n    // Safari Fullscreen\r\n    webkitExitFullscreen: void;\r\n  }\r\n\r\n  interface HTMLIFrameElement {\r\n    // Mozilla Fullscreen\r\n    mozRequestFullScreen: Function;\r\n\r\n    // Ms Fullscreen\r\n    msRequestFullscreen: Function;\r\n\r\n    // Safari Fullscreen\r\n    webkitRequestFullscreen: { (): void };\r\n  }\r\n}\r\n\r\nexport type IBootstrapEmbedConfiguration = models.IBootstrapEmbedConfiguration;\r\n\r\nexport type IEmbedConfigurationBase = models.IEmbedConfigurationBase;\r\n\r\n// TODO: Re-use ILoadConfiguration interface to prevent duplicating properties.\r\nexport type IEmbedConfiguration = models.IEmbedConfiguration;\r\n\r\nexport type IVisualEmbedConfiguration = models.IVisualEmbedConfiguration;\r\n\r\nexport type IReportEmbedConfiguration = models.IReportEmbedConfiguration;\r\n\r\nexport type IDashboardEmbedConfiguration = models.IDashboardEmbedConfiguration;\r\n\r\nexport type ITileEmbedConfiguration = models.ITileEmbedConfiguration;\r\n\r\nexport type IQnaEmbedConfiguration = models.IQnaEmbedConfiguration;\r\n\r\nexport type IQuickCreateConfiguration = models.IQuickCreateConfiguration;\r\n\r\nexport type IReportCreateConfiguration = models.IReportCreateConfiguration;\r\n\r\nexport type ILocaleSettings = models.ILocaleSettings;\r\n\r\nexport type IQnaSettings = models.IQnaSettings;\r\n\r\nexport type IEmbedSettings = models.ISettings;\r\n\r\n/** @hidden */\r\nexport interface IInternalEventHandler<T> {\r\n  test(event: IEvent<T>): boolean;\r\n  handle(event: ICustomEvent<T>): void;\r\n}\r\n\r\n/** @hidden */\r\nexport interface ISessionHeaders {\r\n  uid: string;\r\n  sdkSessionId: string;\r\n  tokenProviderSupplied?: boolean;\r\n  bootstrapped?: boolean;\r\n  sdkVersion?: string;\r\n}\r\n\r\n/**\r\n * Base class for all Power BI embed components\r\n *\r\n * @export\r\n * @abstract\r\n * @hidden\r\n * @class Embed\r\n */\r\nexport abstract class Embed {\r\n  /** @hidden */\r\n  static allowedEvents = [\"loaded\", \"saved\", \"rendered\", \"saveAsTriggered\", \"error\", \"dataSelected\", \"buttonClicked\", \"info\"];\r\n  /** @hidden */\r\n  static accessTokenAttribute = 'powerbi-access-token';\r\n  /** @hidden */\r\n  static embedUrlAttribute = 'powerbi-embed-url';\r\n  /** @hidden */\r\n  static nameAttribute = 'powerbi-name';\r\n  /** @hidden */\r\n  static typeAttribute = 'powerbi-type';\r\n  /** @hidden */\r\n  static defaultEmbedHostName = \"https://app.powerbi.com\";\r\n\r\n  /** @hidden */\r\n  static type: string;\r\n\r\n  /** @hidden */\r\n  static maxFrontLoadTimes = 2;\r\n\r\n  /** @hidden */\r\n  allowedEvents: string[] = [];\r\n\r\n  /** @hidden */\r\n  protected commands: models.ICommandExtension[];\r\n\r\n  /** @hidden */\r\n  protected initialLayoutType: models.LayoutType;\r\n\r\n  /** @hidden */\r\n  groups: models.IMenuGroupExtension[];\r\n\r\n  /**\r\n   * Gets or sets the event handler registered for this embed component.\r\n   *\r\n   * @type {IInternalEventHandler<any>[]}\r\n   * @hidden\r\n   */\r\n  eventHandlers: IInternalEventHandler<any>[];\r\n\r\n  /**\r\n   * Gets or sets the eventHooks.\r\n   *\r\n   * @type {models.EventHooks}\r\n   * @hidden\r\n   */\r\n  eventHooks: models.EventHooks;\r\n\r\n  /**\r\n   * Gets or sets the Power BI embed service.\r\n   *\r\n   * @type {service.Service}\r\n   * @hidden\r\n   */\r\n  service: Service;\r\n\r\n  /**\r\n   * Gets or sets the HTML element that contains the Power BI embed component.\r\n   *\r\n   * @type {HTMLElement}\r\n   * @hidden\r\n   */\r\n  element: HTMLElement;\r\n\r\n  /**\r\n   * Gets or sets the HTML iframe element that renders the Power BI embed component.\r\n   *\r\n   * @type {HTMLIFrameElement}\r\n   * @hidden\r\n   */\r\n  iframe: HTMLIFrameElement;\r\n\r\n  /**\r\n   * Saves the iframe state. Each iframe should be loaded only once.\r\n   * After first load, .embed will go into embedExisting path which will send\r\n   * a postMessage of /report/load instead of creating a new iframe.\r\n   *\r\n   * @type {boolean}\r\n   * @hidden\r\n   */\r\n  iframeLoaded: boolean;\r\n\r\n  /**\r\n   * Gets or sets the configuration settings for the Power BI embed component.\r\n   *\r\n   * @type {IEmbedConfigurationBase}\r\n   * @hidden\r\n   */\r\n  config: IEmbedConfigurationBase;\r\n\r\n  /**\r\n   * Gets or sets the bootstrap configuration for the Power BI embed component received by powerbi.bootstrap().\r\n   *\r\n   * @type {IBootstrapEmbedConfiguration}\r\n   * @hidden\r\n   */\r\n  bootstrapConfig: IBootstrapEmbedConfiguration;\r\n\r\n  /**\r\n   * Url used in the load request.\r\n   *\r\n   * @hidden\r\n   */\r\n  loadPath: string;\r\n\r\n  /**\r\n   * Url used in the load request.\r\n   *\r\n   * @hidden\r\n   */\r\n  phasedLoadPath: string;\r\n\r\n  /**\r\n   * Type of embed\r\n   *\r\n   * @hidden\r\n   */\r\n  embedtype: string;\r\n\r\n  /**\r\n   * Handler function for the 'ready' event\r\n   *\r\n   * @hidden\r\n   */\r\n  frontLoadHandler: () => any;\r\n\r\n  /**\r\n   * The time the last /load request was sent\r\n   *\r\n   * @hidden\r\n   */\r\n  lastLoadRequest: Date;\r\n\r\n  /**\r\n   * Creates an instance of Embed.\r\n   *\r\n   * Note: there is circular reference between embeds and the service, because\r\n   * the service has a list of all embeds on the host page, and each embed has a reference to the service that created it.\r\n   *\r\n   * @param {service.Service} service\r\n   * @param {HTMLElement} element\r\n   * @param {IEmbedConfigurationBase} config\r\n   * @hidden\r\n   */\r\n  constructor(service: Service, element: HTMLElement, config: IEmbedConfigurationBase, iframe?: HTMLIFrameElement, phasedRender?: boolean, isBootstrap?: boolean) {\r\n    if (autoAuthInEmbedUrl(config.embedUrl)) {\r\n      throw new Error(EmbedUrlNotSupported);\r\n    }\r\n\r\n    Array.prototype.push.apply(this.allowedEvents, Embed.allowedEvents);\r\n    this.eventHandlers = [];\r\n    this.service = service;\r\n    this.element = element;\r\n    this.iframe = iframe;\r\n    this.iframeLoaded = false;\r\n    this.embedtype = config.type.toLowerCase();\r\n    this.commands = [];\r\n    this.groups = [];\r\n\r\n    this.populateConfig(config, isBootstrap);\r\n\r\n    if (isCreate(this.embedtype)) {\r\n      this.setIframe(false /* set EventListener to call create() on 'load' event*/, phasedRender, isBootstrap);\r\n    } else {\r\n      this.setIframe(true /* set EventListener to call load() on 'load' event*/, phasedRender, isBootstrap);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Create is not supported by default\r\n   *\r\n   * @hidden\r\n   * @returns {Promise<void>}\r\n   */\r\n  create(): Promise<void> {\r\n    throw new Error(`no create support`);\r\n  }\r\n\r\n  /**\r\n   * Saves Report.\r\n   *\r\n   * @returns {Promise<void>}\r\n   */\r\n  async save(): Promise<void> {\r\n    try {\r\n      const response = await this.service.hpm.post<void>('/report/save', null, { uid: this.config.uniqueId }, this.iframe.contentWindow);\r\n      return response.body;\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * SaveAs Report.\r\n   *\r\n   * @returns {Promise<void>}\r\n   */\r\n  async saveAs(saveAsParameters: models.ISaveAsParameters): Promise<void> {\r\n    try {\r\n      const response = await this.service.hpm.post<void>('/report/saveAs', saveAsParameters, { uid: this.config.uniqueId }, this.iframe.contentWindow);\r\n      return response.body;\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Get the correlationId for the current embed session.\r\n   *\r\n   * ```javascript\r\n   * // Get the correlationId for the current embed session\r\n   * report.getCorrelationId()\r\n   *   .then(correlationId => {\r\n   *     ...\r\n   *   });\r\n   * ```\r\n   *\r\n   * @returns {Promise<string>}\r\n   */\r\n  async getCorrelationId(): Promise<string> {\r\n    try {\r\n      const response = await this.service.hpm.get<string>(`/getCorrelationId`, { uid: this.config.uniqueId }, this.iframe.contentWindow);\r\n      return response.body;\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Sends load configuration data.\r\n   *\r\n   * ```javascript\r\n   * report.load({\r\n   *   type: 'report',\r\n   *   id: '5dac7a4a-4452-46b3-99f6-a25915e0fe55',\r\n   *   accessToken: 'eyJ0eXA ... TaE2rTSbmg',\r\n   *   settings: {\r\n   *     navContentPaneEnabled: false\r\n   *   },\r\n   *   pageName: \"DefaultPage\",\r\n   *   filters: [\r\n   *     {\r\n   *        ...  DefaultReportFilter ...\r\n   *     }\r\n   *   ]\r\n   * })\r\n   *   .catch(error => { ... });\r\n   * ```\r\n   *\r\n   * @hidden\r\n   * @param {models.ILoadConfiguration} config\r\n   * @param {boolean} phasedRender\r\n   * @returns {Promise<void>}\r\n   */\r\n  async load(phasedRender?: boolean): Promise<void> {\r\n    if (!this.config.accessToken) {\r\n      console.debug(\"Power BI SDK iframe is loaded but powerbi.embed is not called yet.\");\r\n      return;\r\n    }\r\n\r\n    if (!this.iframeLoaded) {\r\n      console.debug(\"Power BI SDK is trying to post /report/load before iframe is ready.\");\r\n      return;\r\n    }\r\n\r\n    const path = phasedRender && this.config.type === 'report' ? this.phasedLoadPath : this.loadPath;\r\n    const headers: ISessionHeaders = {\r\n      uid: this.config.uniqueId,\r\n      sdkSessionId: this.service.getSdkSessionId(),\r\n      bootstrapped: this.config.bootstrapped,\r\n      sdkVersion: sdkConfig.default.version\r\n    };\r\n\r\n    if (!!this.eventHooks?.accessTokenProvider) {\r\n      headers.tokenProviderSupplied = true;\r\n    }\r\n\r\n    const timeNow: Date = new Date();\r\n    if (this.lastLoadRequest && getTimeDiffInMilliseconds(this.lastLoadRequest, timeNow) < 100) {\r\n      console.debug(\"Power BI SDK sent more than two /report/load requests in the last 100ms interval.\");\r\n      return;\r\n    }\r\n\r\n    this.lastLoadRequest = timeNow;\r\n\r\n    try {\r\n      const response = await this.service.hpm.post<void>(path, this.config, headers, this.iframe.contentWindow);\r\n      return response.body;\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Removes one or more event handlers from the list of handlers.\r\n   * If a reference to the existing handle function is specified, remove the specific handler.\r\n   * If the handler is not specified, remove all handlers for the event name specified.\r\n   *\r\n   * ```javascript\r\n   * report.off('pageChanged')\r\n   *\r\n   * or\r\n   *\r\n   * const logHandler = function (event) {\r\n   *    console.log(event);\r\n   * };\r\n   *\r\n   * report.off('pageChanged', logHandler);\r\n   * ```\r\n   *\r\n   * @template T\r\n   * @param {string} eventName\r\n   * @param {IEventHandler<T>} [handler]\r\n   */\r\n  off<T>(eventName: string, handler?: IEventHandler<T>): void {\r\n    const fakeEvent: IEvent<any> = { name: eventName, type: null, id: null, value: null };\r\n    if (handler) {\r\n      remove((eventHandler) => eventHandler.test(fakeEvent) && (eventHandler.handle === handler), this.eventHandlers);\r\n      this.element.removeEventListener(eventName, <any>handler);\r\n    }\r\n    else {\r\n      const eventHandlersToRemove = this.eventHandlers\r\n        .filter((eventHandler) => eventHandler.test(fakeEvent));\r\n\r\n      eventHandlersToRemove\r\n        .forEach((eventHandlerToRemove) => {\r\n          remove((eventHandler) => eventHandler === eventHandlerToRemove, this.eventHandlers);\r\n          this.element.removeEventListener(eventName, <any>eventHandlerToRemove.handle);\r\n        });\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Adds an event handler for a specific event.\r\n   *\r\n   * ```javascript\r\n   * report.on('pageChanged', (event) => {\r\n   *   console.log('PageChanged: ', event.page.name);\r\n   * });\r\n   * ```\r\n   *\r\n   * @template T\r\n   * @param {string} eventName\r\n   * @param {service.IEventHandler<T>} handler\r\n   */\r\n  on<T>(eventName: string, handler: IEventHandler<T>): void {\r\n    if (this.allowedEvents.indexOf(eventName) === -1) {\r\n      throw new Error(`eventName must be one of ${this.allowedEvents}. You passed: ${eventName}`);\r\n    }\r\n\r\n    this.eventHandlers.push({\r\n      test: (event: IEvent<T>) => event.name === eventName,\r\n      handle: handler\r\n    });\r\n\r\n    this.element.addEventListener(eventName, <any>handler);\r\n  }\r\n\r\n  /**\r\n   * Reloads embed using existing configuration.\r\n   * E.g. For reports this effectively clears all filters and makes the first page active which simulates resetting a report back to loaded state.\r\n   *\r\n   * ```javascript\r\n   * report.reload();\r\n   * ```\r\n   */\r\n  async reload(): Promise<void> {\r\n    return await this.load();\r\n  }\r\n\r\n  /**\r\n   * Set accessToken.\r\n   *\r\n   * @returns {Promise<void>}\r\n   */\r\n  async setAccessToken(accessToken: string): Promise<void> {\r\n    if (!accessToken) {\r\n      throw new Error(\"Access token cannot be empty\");\r\n    }\r\n    let embedType = this.config.type;\r\n    embedType = (embedType === 'create' || embedType === 'visual' || embedType === 'qna' || embedType === 'quickCreate') ? 'report' : embedType;\r\n    try {\r\n      const response = await this.service.hpm.post<void>('/' + embedType + '/token', accessToken, { uid: this.config.uniqueId }, this.iframe.contentWindow);\r\n\r\n      this.config.accessToken = accessToken;\r\n      this.element.setAttribute(Embed.accessTokenAttribute, accessToken);\r\n      this.service.accessToken = accessToken;\r\n      return response.body;\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Gets an access token from the first available location: config, attribute, global.\r\n   *\r\n   * @private\r\n   * @param {string} globalAccessToken\r\n   * @returns {string}\r\n   * @hidden\r\n   */\r\n  private getAccessToken(globalAccessToken: string): string {\r\n    const accessToken = this.config.accessToken || this.element.getAttribute(Embed.accessTokenAttribute) || globalAccessToken;\r\n\r\n    if (!accessToken) {\r\n      throw new Error(`No access token was found for element. You must specify an access token directly on the element using attribute '${Embed.accessTokenAttribute}' or specify a global token at: powerbi.accessToken.`);\r\n    }\r\n\r\n    return accessToken;\r\n  }\r\n\r\n  /**\r\n   * Populate config for create and load\r\n   *\r\n   * @hidden\r\n   * @param {IEmbedConfiguration}\r\n   * @returns {void}\r\n   */\r\n  populateConfig(config: IBootstrapEmbedConfiguration, isBootstrap: boolean): void {\r\n    if (this.bootstrapConfig) {\r\n      this.config = assign({}, this.bootstrapConfig, config);\r\n\r\n      // reset bootstrapConfig because we do not want to merge it in re-embed scenario.\r\n      this.bootstrapConfig = null;\r\n    }\r\n    else {\r\n      // Copy config - important for multiple iframe scenario.\r\n      // Otherwise, if a user uses the same config twice, same unique Id which will be used in different iframes.\r\n      this.config = assign({}, config);\r\n    }\r\n\r\n    this.config.embedUrl = this.getEmbedUrl(isBootstrap);\r\n    this.config.groupId = this.getGroupId();\r\n    this.addLocaleToEmbedUrl(config);\r\n    this.config.uniqueId = this.getUniqueId();\r\n    const extensions = this.config?.settings?.extensions as models.IExtensions;\r\n    this.commands = extensions?.commands ?? [];\r\n    this.groups = extensions?.groups ?? [];\r\n    this.initialLayoutType = this.config?.settings?.layoutType ?? models.LayoutType.Master;\r\n\r\n    // Adding commands in extensions array to this.commands\r\n    const extensionsArray = this.config?.settings?.extensions as models.IExtension[];\r\n    if (Array.isArray(extensionsArray)) {\r\n      this.commands = [];\r\n      extensionsArray.map((extension: models.IExtension) => { if (extension?.command) { this.commands.push(extension.command); } });\r\n    }\r\n\r\n    if (isBootstrap) {\r\n      // save current config in bootstrapConfig to be able to merge it on next call to powerbi.embed\r\n      this.bootstrapConfig = this.config;\r\n      this.bootstrapConfig.bootstrapped = true;\r\n    }\r\n    else {\r\n      this.config.accessToken = this.getAccessToken(this.service.accessToken);\r\n    }\r\n\r\n    this.eventHooks = (<IEmbedConfiguration>this.config).eventHooks;\r\n    this.validateEventHooks(this.eventHooks);\r\n    delete (<IEmbedConfiguration>this.config).eventHooks;\r\n\r\n    this.configChanged(isBootstrap);\r\n  }\r\n\r\n  /**\r\n   * Validate EventHooks\r\n   *\r\n   * @private\r\n   * @param {models.EventHooks} eventHooks\r\n   * @hidden\r\n   */\r\n  private validateEventHooks(eventHooks: models.EventHooks): void {\r\n    if (!eventHooks) {\r\n      return;\r\n    }\r\n\r\n    for (let key in eventHooks) {\r\n      if (eventHooks.hasOwnProperty(key) && typeof eventHooks[key] !== 'function') {\r\n        throw new Error(key + \" must be a function\");\r\n      }\r\n    }\r\n\r\n    const applicationContextProvider = eventHooks.applicationContextProvider;\r\n    if (!!applicationContextProvider) {\r\n      if (this.embedtype.toLowerCase() !== \"report\") {\r\n        throw new Error(\"applicationContextProvider is only supported in report embed\");\r\n      }\r\n\r\n      this.config.embedUrl = addParamToUrl(this.config.embedUrl, \"registerQueryCallback\", \"true\");\r\n    }\r\n\r\n    const accessTokenProvider = eventHooks.accessTokenProvider;\r\n    if (!!accessTokenProvider) {\r\n      if ((['create', 'quickcreate', 'report'].indexOf(this.embedtype.toLowerCase()) ===  -1) || this.config.tokenType !== models.TokenType.Aad) {\r\n        throw new Error(\"accessTokenProvider is only supported in report SaaS embed\");\r\n      }\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Adds locale parameters to embedUrl\r\n   *\r\n   * @private\r\n   * @param {IEmbedConfiguration | models.ICommonEmbedConfiguration} config\r\n   * @hidden\r\n   */\r\n  private addLocaleToEmbedUrl(config: IEmbedConfiguration | models.ICommonEmbedConfiguration): void {\r\n    if (!config.settings) {\r\n      return;\r\n    }\r\n    const localeSettings = config.settings.localeSettings;\r\n    if (localeSettings && localeSettings.language) {\r\n      this.config.embedUrl = addParamToUrl(this.config.embedUrl, 'language', localeSettings.language);\r\n    }\r\n    if (localeSettings && localeSettings.formatLocale) {\r\n      this.config.embedUrl = addParamToUrl(this.config.embedUrl, 'formatLocale', localeSettings.formatLocale);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Gets an embed url from the first available location: options, attribute.\r\n   *\r\n   * @private\r\n   * @returns {string}\r\n   * @hidden\r\n   */\r\n  private getEmbedUrl(isBootstrap: boolean): string {\r\n    let embedUrl = this.config.embedUrl || this.element.getAttribute(Embed.embedUrlAttribute);\r\n\r\n    if (isBootstrap && !embedUrl) {\r\n      // Prepare flow, embed url was not provided, use hostname to build embed url.\r\n      embedUrl = this.getDefaultEmbedUrl(this.config.hostname);\r\n    }\r\n\r\n    if (typeof embedUrl !== 'string' || embedUrl.length === 0) {\r\n      throw new Error(`Embed Url is required, but it was not found. You must provide an embed url either as part of embed configuration or as attribute '${Embed.embedUrlAttribute}'.`);\r\n    }\r\n\r\n    return embedUrl;\r\n  }\r\n\r\n  /**\r\n   * @hidden\r\n   */\r\n  private getDefaultEmbedUrl(hostname: string): string {\r\n    if (!hostname) {\r\n      hostname = Embed.defaultEmbedHostName;\r\n    }\r\n\r\n    const endpoint = this.getDefaultEmbedUrlEndpoint();\r\n\r\n    // Trim spaces to fix user mistakes.\r\n    hostname = hostname.toLowerCase().trim();\r\n\r\n    if (hostname.indexOf(\"http://\") === 0) {\r\n      throw new Error(\"HTTP is not allowed. HTTPS is required\");\r\n    }\r\n\r\n    if (hostname.indexOf(\"https://\") === 0) {\r\n      return `${hostname}/${endpoint}`;\r\n    }\r\n\r\n    return `https://${hostname}/${endpoint}`;\r\n  }\r\n\r\n  /**\r\n   * Gets a unique ID from the first available location: options, attribute.\r\n   * If neither is provided generate a unique string.\r\n   *\r\n   * @private\r\n   * @returns {string}\r\n   * @hidden\r\n   */\r\n  private getUniqueId(): string {\r\n    return this.config.uniqueId || this.element.getAttribute(Embed.nameAttribute) || createRandomString();\r\n  }\r\n\r\n  /**\r\n   * Gets the group ID from the first available location: options, embeddedUrl.\r\n   *\r\n   * @private\r\n   * @returns {string}\r\n   * @hidden\r\n   */\r\n  private getGroupId(): string {\r\n    return this.config.groupId || Embed.findGroupIdFromEmbedUrl(this.config.embedUrl);\r\n  }\r\n\r\n  /**\r\n   * Gets the report ID from the first available location: options, attribute.\r\n   *\r\n   * @abstract\r\n   * @returns {string}\r\n   */\r\n  abstract getId(): string;\r\n\r\n  /**\r\n   * Raise a config changed event.\r\n   *\r\n   * @hidden\r\n   * @returns {void}\r\n   */\r\n  abstract configChanged(isBootstrap: boolean): void;\r\n\r\n  /**\r\n   * Gets default embed endpoint for each entity.\r\n   * For example: report embed endpoint is reportEmbed.\r\n   * This will help creating a default embed URL such as: https://app.powerbi.com/reportEmbed\r\n   *\r\n   * @hidden\r\n   * @returns {string} endpoint.\r\n   */\r\n  abstract getDefaultEmbedUrlEndpoint(): string;\r\n\r\n  /**\r\n   * Requests the browser to render the component's iframe in fullscreen mode.\r\n   */\r\n  fullscreen(): void {\r\n    const requestFullScreen = this.iframe.requestFullscreen || this.iframe.msRequestFullscreen || this.iframe.mozRequestFullScreen || this.iframe.webkitRequestFullscreen;\r\n    requestFullScreen.call(this.iframe);\r\n  }\r\n\r\n  /**\r\n   * Requests the browser to exit fullscreen mode.\r\n   */\r\n  exitFullscreen(): void {\r\n    if (!this.isFullscreen(this.iframe)) {\r\n      return;\r\n    }\r\n\r\n    const exitFullscreen = document.exitFullscreen || document.mozCancelFullScreen || document.webkitExitFullscreen || document.msExitFullscreen;\r\n    exitFullscreen.call(document);\r\n  }\r\n\r\n  /**\r\n   * Returns true if the iframe is rendered in fullscreen mode,\r\n   * otherwise returns false.\r\n   *\r\n   * @private\r\n   * @param {HTMLIFrameElement} iframe\r\n   * @returns {boolean}\r\n   * @hidden\r\n   */\r\n  private isFullscreen(iframe: HTMLIFrameElement): boolean {\r\n    const options = ['fullscreenElement', 'webkitFullscreenElement', 'mozFullscreenScreenElement', 'msFullscreenElement'];\r\n\r\n    return options.some((option) => document[option] === iframe);\r\n  }\r\n\r\n  /**\r\n   * Validate load and create configuration.\r\n   *\r\n   * @hidden\r\n   */\r\n  abstract validate(config: IEmbedConfigurationBase): models.IError[];\r\n\r\n  /**\r\n   * Sets Iframe for embed\r\n   *\r\n   * @hidden\r\n   */\r\n  private setIframe(isLoad: boolean, phasedRender?: boolean, isBootstrap?: boolean): void {\r\n    if (!this.iframe) {\r\n      const iframeContent = document.createElement(\"iframe\");\r\n      const embedUrl = this.config.uniqueId ? addParamToUrl(this.config.embedUrl, 'uid', this.config.uniqueId) : this.config.embedUrl;\r\n\r\n      iframeContent.style.width = '100%';\r\n      iframeContent.style.height = '100%';\r\n      iframeContent.setAttribute(\"src\", embedUrl);\r\n      iframeContent.setAttribute(\"scrolling\", \"no\");\r\n      iframeContent.setAttribute(\"allowfullscreen\", \"true\");\r\n      const node = this.element;\r\n      while (node.firstChild) {\r\n        node.removeChild(node.firstChild);\r\n      }\r\n\r\n      node.appendChild(iframeContent);\r\n      this.iframe = node.firstChild as HTMLIFrameElement;\r\n    }\r\n\r\n    if (isLoad) {\r\n      if (!isBootstrap) {\r\n        // Validate config if it's not a bootstrap case.\r\n        const errors = this.validate(this.config);\r\n        if (errors) {\r\n          throw errors;\r\n        }\r\n      }\r\n\r\n      this.iframe.addEventListener('load', () => {\r\n        this.iframeLoaded = true;\r\n        this.load(phasedRender);\r\n      }, false);\r\n\r\n      if (this.service.getNumberOfComponents() <= Embed.maxFrontLoadTimes) {\r\n        this.frontLoadHandler = () => {\r\n          this.frontLoadSendConfig(this.config);\r\n        };\r\n\r\n        // 'ready' event is fired by the embedded element (not by the iframe)\r\n        this.element.addEventListener('ready', this.frontLoadHandler, false);\r\n      }\r\n    } else {\r\n      this.iframe.addEventListener('load', () => this.create(), false);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Set the component title for accessibility. In case of iframes, this method will change the iframe title.\r\n   */\r\n  setComponentTitle(title: string): void {\r\n    if (!this.iframe) {\r\n      return;\r\n    }\r\n    if (title == null) {\r\n      this.iframe.removeAttribute(\"title\");\r\n    } else {\r\n      this.iframe.setAttribute(\"title\", title);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Sets element's tabindex attribute\r\n   */\r\n  setComponentTabIndex(tabIndex?: number): void {\r\n    if (!this.element) {\r\n      return;\r\n    }\r\n    this.element.setAttribute(\"tabindex\", (tabIndex == null) ? \"0\" : tabIndex.toString());\r\n  }\r\n\r\n  /**\r\n   * Removes element's tabindex attribute\r\n   */\r\n  removeComponentTabIndex(_tabIndex?: number): void {\r\n    if (!this.element) {\r\n      return;\r\n    }\r\n    this.element.removeAttribute(\"tabindex\");\r\n  }\r\n\r\n  /**\r\n   * Adds the ability to get groupId from url.\r\n   * By extracting the ID we can ensure that the ID is always explicitly provided as part of the load configuration.\r\n   *\r\n   * @hidden\r\n   * @static\r\n   * @param {string} url\r\n   * @returns {string}\r\n   */\r\n  static findGroupIdFromEmbedUrl(url: string): string {\r\n    const groupIdRegEx = /groupId=\"?([^&]+)\"?/;\r\n    const groupIdMatch = url.match(groupIdRegEx);\r\n\r\n    let groupId: string;\r\n    if (groupIdMatch) {\r\n      groupId = groupIdMatch[1];\r\n    }\r\n\r\n    return groupId;\r\n  }\r\n\r\n  /**\r\n   * Sends the config for front load calls, after 'ready' message is received from the iframe\r\n   *\r\n   * @hidden\r\n   */\r\n  private async frontLoadSendConfig(config: IEmbedConfigurationBase): Promise<void> {\r\n    if (!config.accessToken) {\r\n      return;\r\n    }\r\n\r\n    const errors = this.validate(config);\r\n    if (errors) {\r\n      throw errors;\r\n    }\r\n\r\n    // contentWindow must be initialized\r\n    if (this.iframe.contentWindow == null) {\r\n      return;\r\n    }\r\n\r\n    try {\r\n      const response = await this.service.hpm.post<void>(\"/frontload/config\", config, { uid: this.config.uniqueId }, this.iframe.contentWindow);\r\n      return response.body;\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n}\r\n","// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\n\r\nexport const APINotSupportedForRDLError = \"This API is currently not supported for RDL reports\";\r\nexport const EmbedUrlNotSupported = \"Embed URL is invalid for this scenario. Please use Power BI REST APIs to get the valid URL\";\r\n\r\n","// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\n\r\n/**\r\n * TODO: Need to find better place for these factory functions or refactor how we handle dependency injection\r\n */\r\nimport { WindowPostMessageProxy } from 'window-post-message-proxy';\r\nimport { HttpPostMessage } from 'http-post-message';\r\nimport { Router } from 'powerbi-router';\r\nimport config from './config';\r\nimport { IHpmFactory, IWpmpFactory, IRouterFactory } from './service';\r\n\r\nexport {\r\n  IHpmFactory,\r\n  IWpmpFactory,\r\n  IRouterFactory\r\n};\r\n\r\nexport const hpmFactory: IHpmFactory = (wpmp, defaultTargetWindow, sdkVersion = config.version, sdkType = config.type, sdkWrapperVersion?: string) => {\r\n  return new HttpPostMessage(wpmp, {\r\n    'x-sdk-type': sdkType,\r\n    'x-sdk-version': sdkVersion,\r\n    'x-sdk-wrapper-version': sdkWrapperVersion,\r\n  }, defaultTargetWindow);\r\n};\r\n\r\nexport const wpmpFactory: IWpmpFactory = (name?: string, logMessages?: boolean, eventSourceOverrideWindow?: Window) => {\r\n  return new WindowPostMessageProxy({\r\n    processTrackingProperties: {\r\n      addTrackingProperties: HttpPostMessage.addTrackingProperties,\r\n      getTrackingProperties: HttpPostMessage.getTrackingProperties,\r\n    },\r\n    isErrorMessage: HttpPostMessage.isErrorMessage,\r\n    suppressWarnings: true,\r\n    name: name,\r\n    logMessages: logMessages,\r\n    eventSourceOverrideWindow: eventSourceOverrideWindow\r\n  });\r\n};\r\n\r\nexport const routerFactory: IRouterFactory = (wpmp) => {\r\n  return new Router(wpmp);\r\n};\r\n","// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\n\r\nimport { IHttpPostMessageResponse } from 'http-post-message';\r\nimport {\r\n  CommonErrorCodes,\r\n  DisplayOption,\r\n  FiltersOperations,\r\n  ICustomPageSize,\r\n  IFilter,\r\n  IPage,\r\n  IUpdateFiltersRequest,\r\n  IVisual,\r\n  LayoutType,\r\n  PageLevelFilters,\r\n  PageSizeType,\r\n  SectionVisibility,\r\n  VisualContainerDisplayMode,\r\n  IPageBackground,\r\n  IPageWallpaper,\r\n} from 'powerbi-models';\r\nimport { IFilterable } from './ifilterable';\r\nimport { IReportNode, Report } from './report';\r\nimport { VisualDescriptor } from './visualDescriptor';\r\nimport { isRDLEmbed } from './util';\r\nimport { APINotSupportedForRDLError } from './errors';\r\n\r\n/**\r\n * A Page node within a report hierarchy\r\n *\r\n * @export\r\n * @interface IPageNode\r\n */\r\nexport interface IPageNode {\r\n  report: IReportNode;\r\n  name: string;\r\n}\r\n\r\n/**\r\n * A Power BI report page\r\n *\r\n * @export\r\n * @class Page\r\n * @implements {IPageNode}\r\n * @implements {IFilterable}\r\n */\r\nexport class Page implements IPageNode, IFilterable {\r\n  /**\r\n   * The parent Power BI report that this page is a member of\r\n   *\r\n   * @type {IReportNode}\r\n   */\r\n  report: IReportNode;\r\n  /**\r\n   * The report page name\r\n   *\r\n   * @type {string}\r\n   */\r\n  name: string;\r\n\r\n  /**\r\n   * The user defined display name of the report page, which is undefined if the page is created manually\r\n   *\r\n   * @type {string}\r\n   */\r\n  displayName: string;\r\n\r\n  /**\r\n   * Is this page is the active page\r\n   *\r\n   * @type {boolean}\r\n   */\r\n  isActive: boolean;\r\n\r\n  /**\r\n   * The visibility of the page.\r\n   * 0 - Always Visible\r\n   * 1 - Hidden in View Mode\r\n   *\r\n   * @type {SectionVisibility}\r\n   */\r\n  visibility: SectionVisibility;\r\n\r\n  /**\r\n   * Page size as saved in the report.\r\n   *\r\n   * @type {ICustomPageSize}\r\n   */\r\n  defaultSize: ICustomPageSize;\r\n\r\n  /**\r\n   * Mobile view page size (if defined) as saved in the report.\r\n   *\r\n   * @type {ICustomPageSize}\r\n   */\r\n  mobileSize: ICustomPageSize;\r\n\r\n  /**\r\n   * Page display options as saved in the report.\r\n   *\r\n   * @type {ICustomPageSize}\r\n   */\r\n  defaultDisplayOption: DisplayOption;\r\n\r\n  /**\r\n   * Page background color.\r\n   *\r\n   * @type {IPageBackground}\r\n   */\r\n  background: IPageBackground;\r\n\r\n  /**\r\n   * Page wallpaper color.\r\n   *\r\n   * @type {IPageWallpaper}\r\n   */\r\n  wallpaper: IPageWallpaper;\r\n\r\n  /**\r\n   * Creates an instance of a Power BI report page.\r\n   *\r\n   * @param {IReportNode} report\r\n   * @param {string} name\r\n   * @param {string} [displayName]\r\n   * @param {boolean} [isActivePage]\r\n   * @param {SectionVisibility} [visibility]\r\n   * @hidden\r\n   */\r\n  constructor(report: IReportNode, name: string, displayName?: string, isActivePage?: boolean, visibility?: SectionVisibility, defaultSize?: ICustomPageSize, defaultDisplayOption?: DisplayOption, mobileSize?: ICustomPageSize, background?: IPageBackground, wallpaper?: IPageWallpaper) {\r\n    this.report = report;\r\n    this.name = name;\r\n    this.displayName = displayName;\r\n    this.isActive = isActivePage;\r\n    this.visibility = visibility;\r\n    this.defaultSize = defaultSize;\r\n    this.mobileSize = mobileSize;\r\n    this.defaultDisplayOption = defaultDisplayOption;\r\n    this.background = background;\r\n    this.wallpaper = wallpaper;\r\n  }\r\n\r\n  /**\r\n   * Gets all page level filters within the report.\r\n   *\r\n   * ```javascript\r\n   * page.getFilters()\r\n   *  .then(filters => { ... });\r\n   * ```\r\n   *\r\n   * @returns {(Promise<IFilter[]>)}\r\n   */\r\n  async getFilters(): Promise<IFilter[]> {\r\n    try {\r\n      const response = await this.report.service.hpm.get<IFilter[]>(`/report/pages/${this.name}/filters`, { uid: this.report.config.uniqueId }, this.report.iframe.contentWindow);\r\n      return response.body;\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Update the filters for the current page according to the operation: Add, replace all, replace by target or remove.\r\n   *\r\n   * ```javascript\r\n   * page.updateFilters(FiltersOperations.Add, filters)\r\n   *   .catch(errors => { ... });\r\n   * ```\r\n   *\r\n   * @param {(IFilter[])} filters\r\n   * @returns {Promise<IHttpPostMessageResponse<void>>}\r\n   */\r\n  async updateFilters(operation: FiltersOperations, filters?: IFilter[]): Promise<IHttpPostMessageResponse<void>> {\r\n    const updateFiltersRequest: IUpdateFiltersRequest = {\r\n      filtersOperation: operation,\r\n      filters: filters as PageLevelFilters[]\r\n    };\r\n\r\n    try {\r\n      return await this.report.service.hpm.post<void>(`/report/pages/${this.name}/filters`, updateFiltersRequest, { uid: this.report.config.uniqueId }, this.report.iframe.contentWindow);\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Removes all filters from this page of the report.\r\n   *\r\n   * ```javascript\r\n   * page.removeFilters();\r\n   * ```\r\n   *\r\n   * @returns {Promise<IHttpPostMessageResponse<void>>}\r\n   */\r\n  async removeFilters(): Promise<IHttpPostMessageResponse<void>> {\r\n    return await this.updateFilters(FiltersOperations.RemoveAll);\r\n  }\r\n\r\n  /**\r\n   * Sets all filters on the current page.\r\n   *\r\n   * ```javascript\r\n   * page.setFilters(filters)\r\n   *   .catch(errors => { ... });\r\n   * ```\r\n   *\r\n   * @param {(IFilter[])} filters\r\n   * @returns {Promise<IHttpPostMessageResponse<void>>}\r\n   */\r\n  async setFilters(filters: IFilter[]): Promise<IHttpPostMessageResponse<void>> {\r\n    try {\r\n      return await this.report.service.hpm.put<void>(`/report/pages/${this.name}/filters`, filters, { uid: this.report.config.uniqueId }, this.report.iframe.contentWindow);\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Delete the page from the report\r\n   *\r\n   * ```javascript\r\n   * // Delete the page from the report\r\n   * page.delete();\r\n   * ```\r\n   *\r\n   * @returns {Promise<void>}\r\n   */\r\n  async delete(): Promise<void> {\r\n    try {\r\n      const response = await this.report.service.hpm.delete<void>(`/report/pages/${this.name}`, {}, { uid: this.report.config.uniqueId }, this.report.iframe.contentWindow);\r\n      return response.body;\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Makes the current page the active page of the report.\r\n   *\r\n   * ```javascript\r\n   * page.setActive();\r\n   * ```\r\n   *\r\n   * @returns {Promise<IHttpPostMessageResponse<void>>}\r\n   */\r\n  async setActive(): Promise<IHttpPostMessageResponse<void>> {\r\n    const page: IPage = {\r\n      name: this.name,\r\n      displayName: null,\r\n      isActive: true\r\n    };\r\n\r\n    try {\r\n      return await this.report.service.hpm.put<void>('/report/pages/active', page, { uid: this.report.config.uniqueId }, this.report.iframe.contentWindow);\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Set displayName to the current page.\r\n   *\r\n   * ```javascript\r\n   * page.setName(displayName);\r\n   * ```\r\n   *\r\n   * @returns {Promise<IHttpPostMessageResponse<void>>}\r\n   */\r\n  async setDisplayName(displayName: string): Promise<IHttpPostMessageResponse<void>> {\r\n    const page: IPage = {\r\n      name: this.name,\r\n      displayName: displayName,\r\n    };\r\n\r\n    try {\r\n      return await this.report.service.hpm.put<void>(`/report/pages/${this.name}/name`, page, { uid: this.report.config.uniqueId }, this.report.iframe.contentWindow);\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Gets all the visuals on the page.\r\n   *\r\n   * ```javascript\r\n   * page.getVisuals()\r\n   *   .then(visuals => { ... });\r\n   * ```\r\n   *\r\n   * @returns {Promise<VisualDescriptor[]>}\r\n   */\r\n  async getVisuals(): Promise<VisualDescriptor[]> {\r\n    if (isRDLEmbed(this.report.config.embedUrl)) {\r\n      return Promise.reject(APINotSupportedForRDLError);\r\n    }\r\n\r\n    try {\r\n      const response = await this.report.service.hpm.get<IVisual[]>(`/report/pages/${this.name}/visuals`, { uid: this.report.config.uniqueId }, this.report.iframe.contentWindow);\r\n      return response.body\r\n        .map((visual) => new VisualDescriptor(this, visual.name, visual.title, visual.type, visual.layout));\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Gets a visual by name on the page.\r\n   *\r\n   * ```javascript\r\n   * page.getVisualByName(visualName: string)\r\n   *  .then(visual => {\r\n   *      ...\r\n   *  });\r\n   * ```\r\n   *\r\n   * @param {string} visualName\r\n   * @returns {Promise<VisualDescriptor>}\r\n   */\r\n  async getVisualByName(visualName: string): Promise<VisualDescriptor> {\r\n    if (isRDLEmbed(this.report.config.embedUrl)) {\r\n      return Promise.reject(APINotSupportedForRDLError);\r\n    }\r\n\r\n    try {\r\n      const response = await this.report.service.hpm.get<IVisual[]>(`/report/pages/${this.name}/visuals`, { uid: this.report.config.uniqueId }, this.report.iframe.contentWindow);\r\n      const visual = response.body.find((v: IVisual) => v.name === visualName);\r\n      if (!visual) {\r\n        return Promise.reject(CommonErrorCodes.NotFound);\r\n      }\r\n\r\n      return new VisualDescriptor(this, visual.name, visual.title, visual.type, visual.layout);\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Updates the display state of a visual in a page.\r\n   *\r\n   * ```javascript\r\n   * page.setVisualDisplayState(visualName, displayState)\r\n   *   .catch(error => { ... });\r\n   * ```\r\n   *\r\n   * @param {string} visualName\r\n   * @param {VisualContainerDisplayMode} displayState\r\n   * @returns {Promise<IHttpPostMessageResponse<void>>}\r\n   */\r\n  async setVisualDisplayState(visualName: string, displayState: VisualContainerDisplayMode): Promise<IHttpPostMessageResponse<void>> {\r\n    const pageName = this.name;\r\n    const report = this.report as Report;\r\n    return report.setVisualDisplayState(pageName, visualName, displayState);\r\n  }\r\n\r\n  /**\r\n   * Updates the position of a visual in a page.\r\n   *\r\n   * ```javascript\r\n   * page.moveVisual(visualName, x, y, z)\r\n   *   .catch(error => { ... });\r\n   * ```\r\n   *\r\n   * @param {string} visualName\r\n   * @param {number} x\r\n   * @param {number} y\r\n   * @param {number} z\r\n   * @returns {Promise<IHttpPostMessageResponse<void>>}\r\n   */\r\n  async moveVisual(visualName: string, x: number, y: number, z?: number): Promise<IHttpPostMessageResponse<void>> {\r\n    const pageName = this.name;\r\n    const report = this.report as Report;\r\n    return report.moveVisual(pageName, visualName, x, y, z);\r\n  }\r\n\r\n  /**\r\n   * Resize a visual in a page.\r\n   *\r\n   * ```javascript\r\n   * page.resizeVisual(visualName, width, height)\r\n   *   .catch(error => { ... });\r\n   * ```\r\n   *\r\n   * @param {string} visualName\r\n   * @param {number} width\r\n   * @param {number} height\r\n   * @returns {Promise<IHttpPostMessageResponse<void>>}\r\n   */\r\n  async resizeVisual(visualName: string, width: number, height: number): Promise<IHttpPostMessageResponse<void>> {\r\n    const pageName = this.name;\r\n    const report = this.report as Report;\r\n    return report.resizeVisual(pageName, visualName, width, height);\r\n  }\r\n\r\n  /**\r\n   * Updates the size of active page.\r\n   *\r\n   * ```javascript\r\n   * page.resizePage(pageSizeType, width, height)\r\n   *   .catch(error => { ... });\r\n   * ```\r\n   *\r\n   * @param {PageSizeType} pageSizeType\r\n   * @param {number} width\r\n   * @param {number} height\r\n   * @returns {Promise<IHttpPostMessageResponse<void>>}\r\n   */\r\n  async resizePage(pageSizeType: PageSizeType, width?: number, height?: number): Promise<IHttpPostMessageResponse<void>> {\r\n    if (!this.isActive) {\r\n      return Promise.reject('Cannot resize the page. Only the active page can be resized');\r\n    }\r\n    const report = this.report as Report;\r\n    return report.resizeActivePage(pageSizeType, width, height);\r\n  }\r\n\r\n  /**\r\n   * Gets the list of slicer visuals on the page.\r\n   *\r\n   * ```javascript\r\n   * page.getSlicers()\r\n   *  .then(slicers => {\r\n   *      ...\r\n   *  });\r\n   * ```\r\n   *\r\n   * @returns {Promise<IVisual[]>}\r\n   */\r\n  async getSlicers(): Promise<IVisual[]> {\r\n    if (isRDLEmbed(this.report.config.embedUrl)) {\r\n      return Promise.reject(APINotSupportedForRDLError);\r\n    }\r\n\r\n    try {\r\n      const response = await this.report.service.hpm.get<IVisual[]>(`/report/pages/${this.name}/visuals`, { uid: this.report.config.uniqueId }, this.report.iframe.contentWindow);\r\n      return response.body\r\n        .filter((visual: IVisual) => visual.type === 'slicer')\r\n        .map((visual: IVisual) => new VisualDescriptor(this, visual.name, visual.title, visual.type, visual.layout));\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Checks if page has layout.\r\n   *\r\n   * ```javascript\r\n   * page.hasLayout(layoutType)\r\n   *  .then(hasLayout: boolean => { ... });\r\n   * ```\r\n   *\r\n   * @returns {(Promise<boolean>)}\r\n   */\r\n  async hasLayout(layoutType: LayoutType): Promise<boolean> {\r\n    if (isRDLEmbed(this.report.config.embedUrl)) {\r\n      return Promise.reject(APINotSupportedForRDLError);\r\n    }\r\n\r\n    const layoutTypeEnum = LayoutType[layoutType];\r\n    try {\r\n      const response = await this.report.service.hpm.get<boolean>(`/report/pages/${this.name}/layoutTypes/${layoutTypeEnum}`, { uid: this.report.config.uniqueId }, this.report.iframe.contentWindow);\r\n      return response.body;\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n}\r\n","// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\n\r\nimport { IHttpPostMessageResponse } from 'http-post-message';\r\nimport { IError, IQnaInterpretInputData, validateLoadQnaConfiguration } from 'powerbi-models';\r\nimport { Embed, IEmbedConfigurationBase } from './embed';\r\nimport { Service } from './service';\r\n\r\n/**\r\n * The Power BI Q&A embed component\r\n *\r\n * @export\r\n * @class Qna\r\n * @extends {Embed}\r\n */\r\nexport class Qna extends Embed {\r\n  /** @hidden */\r\n  static type = \"Qna\";\r\n  /** @hidden */\r\n  static allowedEvents = [\"loaded\", \"visualRendered\"];\r\n\r\n  /**\r\n   * @hidden\r\n   */\r\n  constructor(service: Service, element: HTMLElement, config: IEmbedConfigurationBase, phasedRender?: boolean, isBootstrap?: boolean) {\r\n    super(service, element, config, /* iframe */ undefined, phasedRender, isBootstrap);\r\n\r\n    this.loadPath = \"/qna/load\";\r\n    this.phasedLoadPath = \"/qna/prepare\";\r\n    Array.prototype.push.apply(this.allowedEvents, Qna.allowedEvents);\r\n  }\r\n\r\n  /**\r\n   * The ID of the Q&A embed component\r\n   *\r\n   * @returns {string}\r\n   */\r\n  getId(): string {\r\n    return null;\r\n  }\r\n\r\n  /**\r\n   * Change the question of the Q&A embed component\r\n   *\r\n   * @param {string} question - question which will render Q&A data\r\n   * @returns {Promise<IHttpPostMessageResponse<void>>}\r\n   */\r\n  async setQuestion(question: string): Promise<IHttpPostMessageResponse<void>> {\r\n    const qnaData: IQnaInterpretInputData = {\r\n      question: question\r\n    };\r\n\r\n    try {\r\n      return await this.service.hpm.post<void>('/qna/interpret', qnaData, { uid: this.config.uniqueId }, this.iframe.contentWindow);\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Handle config changes.\r\n   *\r\n   * @returns {void}\r\n   */\r\n  configChanged(_isBootstrap: boolean): void {\r\n    // Nothing to do in Q&A embed.\r\n  }\r\n\r\n  /**\r\n   * @hidden\r\n   * @returns {string}\r\n   */\r\n  getDefaultEmbedUrlEndpoint(): string {\r\n    return \"qnaEmbed\";\r\n  }\r\n\r\n  /**\r\n   * Validate load configuration.\r\n   */\r\n  validate(config: IEmbedConfigurationBase): IError[] {\r\n    return validateLoadQnaConfiguration(config);\r\n  }\r\n}\r\n","// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\n\r\nimport { IError, IQuickCreateConfiguration, validateQuickCreate } from 'powerbi-models';\r\nimport { Service } from './service';\r\nimport { Embed, IEmbedConfigurationBase, ISessionHeaders } from './embed';\r\n\r\n/**\r\n * A Power BI Quick Create component\r\n *\r\n * @export\r\n * @class QuickCreate\r\n * @extends {Embed}\r\n */\r\nexport class QuickCreate extends Embed {\r\n\r\n  /**\r\n   * Gets or sets the configuration settings for creating report.\r\n   *\r\n   * @type {IQuickCreateConfiguration}\r\n   * @hidden\r\n   */\r\n  createConfig: IQuickCreateConfiguration;\r\n\r\n  /*\r\n   * @hidden\r\n   */\r\n  constructor(service: Service, element: HTMLElement, config: IQuickCreateConfiguration, phasedRender?: boolean, isBootstrap?: boolean) {\r\n    super(service, element, config, /* iframe */ undefined, phasedRender, isBootstrap);\r\n\r\n    service.router.post(`/reports/${this.config.uniqueId}/eventHooks/:eventName`, async (req, _res) => {\r\n      switch (req.params.eventName) {\r\n        case \"newAccessToken\":\r\n          req.body = req.body || {};\r\n          req.body.report = this;\r\n          await service.invokeSDKHook(this.eventHooks?.accessTokenProvider, req, _res);\r\n          break;\r\n\r\n        default:\r\n          break;\r\n      }\r\n    });\r\n  }\r\n\r\n  /**\r\n   * Override the getId abstract function\r\n   * QuickCreate does not need any ID\r\n   *\r\n   * @returns {string}\r\n   */\r\n  getId(): string {\r\n    return null;\r\n  }\r\n\r\n  /**\r\n   * Validate create report configuration.\r\n   */\r\n  validate(config: IEmbedConfigurationBase): IError[] {\r\n    return validateQuickCreate(config);\r\n  }\r\n\r\n  /**\r\n   * Handle config changes.\r\n   *\r\n   * @hidden\r\n   * @returns {void}\r\n   */\r\n  configChanged(isBootstrap: boolean): void {\r\n    if (isBootstrap) {\r\n      return;\r\n    }\r\n\r\n    this.createConfig = this.config as IQuickCreateConfiguration;\r\n  }\r\n\r\n  /**\r\n   * @hidden\r\n   * @returns {string}\r\n   */\r\n  getDefaultEmbedUrlEndpoint(): string {\r\n    return \"quickCreate\";\r\n  }\r\n\r\n  /**\r\n   * Sends quickCreate configuration data.\r\n   *\r\n   * ```javascript\r\n   * quickCreate({\r\n   *   accessToken: 'eyJ0eXA ... TaE2rTSbmg',\r\n   *   datasetCreateConfig: {}})\r\n   * ```\r\n   *\r\n   * @hidden\r\n   * @param {IQuickCreateConfiguration} createConfig\r\n   * @returns {Promise<void>}\r\n   */\r\n  async create(): Promise<void> {\r\n    const errors = validateQuickCreate(this.createConfig);\r\n    if (errors) {\r\n      throw errors;\r\n    }\r\n\r\n    try {\r\n      const headers: ISessionHeaders = {\r\n        uid: this.config.uniqueId,\r\n        sdkSessionId: this.service.getSdkSessionId()\r\n      };\r\n\r\n      if (!!this.eventHooks?.accessTokenProvider) {\r\n        headers.tokenProviderSupplied = true;\r\n      }\r\n\r\n      const response = await this.service.hpm.post<void>(\"/quickcreate\", this.createConfig, headers, this.iframe.contentWindow);\r\n      return response.body;\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n}\r\n","// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\n\r\nimport {\r\n  IReportLoadConfiguration,\r\n  IReportEmbedConfiguration,\r\n  IPage,\r\n  FiltersOperations,\r\n  IError,\r\n  IFilter,\r\n  IReportTheme,\r\n  ISettings,\r\n  IUpdateFiltersRequest,\r\n  LayoutType,\r\n  SectionVisibility,\r\n  validateReportLoad,\r\n  validatePaginatedReportLoad,\r\n  ViewMode,\r\n  IEmbedConfiguration,\r\n  IEmbedConfigurationBase,\r\n  CommonErrorCodes,\r\n  ReportLevelFilters,\r\n  MenuLocation,\r\n  ICommandExtension,\r\n  IExtensions,\r\n  IFlatMenuExtension,\r\n  IGroupedMenuExtension,\r\n  IExtension,\r\n  IVisualLayout,\r\n  ICustomPageSize,\r\n  PageSizeType,\r\n  VisualContainerDisplayMode\r\n} from 'powerbi-models';\r\nimport { IHttpPostMessageResponse } from 'http-post-message';\r\nimport { IService, Service } from './service';\r\nimport { Embed, IEmbedSettings } from './embed';\r\nimport { addParamToUrl, assign, isRDLEmbed, isSavedInternal } from './util';\r\nimport { APINotSupportedForRDLError } from './errors';\r\nimport { IFilterable } from './ifilterable';\r\nimport { Page } from './page';\r\nimport { BookmarksManager } from './bookmarksManager';\r\nimport { VisualDescriptor } from './visualDescriptor';\r\n\r\n/**\r\n * A Report node within a report hierarchy\r\n *\r\n * @export\r\n * @interface IReportNode\r\n */\r\nexport interface IReportNode {\r\n  iframe: HTMLIFrameElement;\r\n  service: IService;\r\n  config: IEmbedConfiguration | IReportEmbedConfiguration;\r\n}\r\n\r\n/**\r\n * The Power BI Report embed component\r\n *\r\n * @export\r\n * @class Report\r\n * @extends {Embed}\r\n * @implements {IReportNode}\r\n * @implements {IFilterable}\r\n */\r\nexport class Report extends Embed implements IReportNode, IFilterable {\r\n  /** @hidden */\r\n  static allowedEvents = [\"filtersApplied\", \"pageChanged\", \"commandTriggered\", \"swipeStart\", \"swipeEnd\", \"bookmarkApplied\", \"dataHyperlinkClicked\", \"visualRendered\", \"visualClicked\", \"selectionChanged\", \"renderingStarted\", \"blur\"];\r\n  /** @hidden */\r\n  static reportIdAttribute = 'powerbi-report-id';\r\n  /** @hidden */\r\n  static filterPaneEnabledAttribute = 'powerbi-settings-filter-pane-enabled';\r\n  /** @hidden */\r\n  static navContentPaneEnabledAttribute = 'powerbi-settings-nav-content-pane-enabled';\r\n  /** @hidden */\r\n  static typeAttribute = 'powerbi-type';\r\n  /** @hidden */\r\n  static type = \"Report\";\r\n\r\n  public bookmarksManager: BookmarksManager;\r\n\r\n  /**\r\n   * Creates an instance of a Power BI Report.\r\n   *\r\n   * @param {Service} service\r\n   * @param {HTMLElement} element\r\n   * @param {IEmbedConfiguration} config\r\n   * @hidden\r\n   */\r\n  constructor(service: Service, element: HTMLElement, baseConfig: IEmbedConfigurationBase, phasedRender?: boolean, isBootstrap?: boolean, iframe?: HTMLIFrameElement) {\r\n    const config = baseConfig as IReportEmbedConfiguration;\r\n    super(service, element, config, iframe, phasedRender, isBootstrap);\r\n    this.loadPath = \"/report/load\";\r\n    this.phasedLoadPath = \"/report/prepare\";\r\n    Array.prototype.push.apply(this.allowedEvents, Report.allowedEvents);\r\n\r\n    this.bookmarksManager = new BookmarksManager(service, config, this.iframe);\r\n\r\n    service.router.post(`/reports/${this.config.uniqueId}/eventHooks/:eventName`, async (req, _res) => {\r\n      switch (req.params.eventName) {\r\n        case \"preQuery\":\r\n          req.body = req.body || {};\r\n          req.body.report = this;\r\n          await service.invokeSDKHook(this.eventHooks?.applicationContextProvider, req, _res);\r\n          break;\r\n\r\n        case \"newAccessToken\":\r\n          req.body = req.body || {};\r\n          req.body.report = this;\r\n          await service.invokeSDKHook(this.eventHooks?.accessTokenProvider, req, _res);\r\n          break;\r\n\r\n        default:\r\n          break;\r\n      }\r\n    });\r\n  }\r\n\r\n  /**\r\n   * Adds backwards compatibility for the previous load configuration, which used the reportId query parameter to specify the report ID\r\n   * (e.g. http://embedded.powerbi.com/appTokenReportEmbed?reportId=854846ed-2106-4dc2-bc58-eb77533bf2f1).\r\n   *\r\n   * By extracting the ID we can ensure that the ID is always explicitly provided as part of the load configuration.\r\n   *\r\n   * @hidden\r\n   * @static\r\n   * @param {string} url\r\n   * @returns {string}\r\n   */\r\n  static findIdFromEmbedUrl(url: string): string {\r\n    const reportIdRegEx = /reportId=\"?([^&]+)\"?/;\r\n    const reportIdMatch = url.match(reportIdRegEx);\r\n\r\n    let reportId: string;\r\n    if (reportIdMatch) {\r\n      reportId = reportIdMatch[1];\r\n    }\r\n\r\n    return reportId;\r\n  }\r\n\r\n  /**\r\n   * Render a preloaded report, using phased embedding API\r\n   *\r\n   * ```javascript\r\n   * // Load report\r\n   * var report = powerbi.load(element, config);\r\n   *\r\n   * ...\r\n   *\r\n   * // Render report\r\n   * report.render()\r\n   * ```\r\n   *\r\n   * @returns {Promise<void>}\r\n   */\r\n  async render(config?: IReportLoadConfiguration | IReportEmbedConfiguration): Promise<void> {\r\n    try {\r\n      const response = await this.service.hpm.post<void>(`/report/render`, config, { uid: this.config.uniqueId }, this.iframe.contentWindow);\r\n      return response.body;\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Add an empty page to the report\r\n   *\r\n   * ```javascript\r\n   * // Add a page to the report with \"Sales\" as the page display name\r\n   * report.addPage(\"Sales\");\r\n   * ```\r\n   *\r\n   * @returns {Promise<Page>}\r\n   */\r\n  async addPage(displayName?: string): Promise<Page> {\r\n    const request = {\r\n      displayName: displayName\r\n    };\r\n\r\n    try {\r\n      const response = await this.service.hpm.post<IPage>(`/report/addPage`, request, { uid: this.config.uniqueId }, this.iframe.contentWindow);\r\n      const page = response.body;\r\n      return new Page(this, page.name, page.displayName, page.isActive, page.visibility, page.defaultSize, page.defaultDisplayOption);\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Delete a page from a report\r\n   *\r\n   * ```javascript\r\n   * // Delete a page from a report by pageName (PageName is different than the display name and can be acquired from the getPages API)\r\n   * report.deletePage(\"ReportSection145\");\r\n   * ```\r\n   *\r\n   * @returns {Promise<void>}\r\n   */\r\n  async deletePage(pageName: string): Promise<void> {\r\n    try {\r\n      const response = await this.service.hpm.delete<void>(`/report/pages/${pageName}`, {}, { uid: this.config.uniqueId }, this.iframe.contentWindow);\r\n      return response.body;\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Rename a page from a report\r\n   *\r\n   * ```javascript\r\n   * // Rename a page from a report by changing displayName (pageName is different from the display name and can be acquired from the getPages API)\r\n   * report.renamePage(\"ReportSection145\", \"Sales\");\r\n   * ```\r\n   *\r\n   * @returns {Promise<void>}\r\n   */\r\n  async renamePage(pageName: string, displayName: string): Promise<void> {\r\n    const page: IPage = {\r\n      name: pageName,\r\n      displayName: displayName,\r\n    };\r\n\r\n    try {\r\n      const response = await this.service.hpm.put<void>(`/report/pages/${pageName}/name`, page, { uid: this.config.uniqueId }, this.iframe.contentWindow);\r\n      return response.body;\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Gets filters that are applied at the report level.\r\n   *\r\n   * ```javascript\r\n   * // Get filters applied at report level\r\n   * report.getFilters()\r\n   *   .then(filters => {\r\n   *     ...\r\n   *   });\r\n   * ```\r\n   *\r\n   * @returns {Promise<IFilter[]>}\r\n   */\r\n  async getFilters(): Promise<IFilter[]> {\r\n    if (isRDLEmbed(this.config.embedUrl)) {\r\n      return Promise.reject(APINotSupportedForRDLError);\r\n    }\r\n\r\n    try {\r\n      const response = await this.service.hpm.get<IFilter[]>(`/report/filters`, { uid: this.config.uniqueId }, this.iframe.contentWindow);\r\n      return response.body;\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Update the filters at the report level according to the operation: Add, replace all, replace by target or remove.\r\n   *\r\n   * ```javascript\r\n   * report.updateFilters(FiltersOperations.Add, filters)\r\n   *   .catch(errors => { ... });\r\n   * ```\r\n   *\r\n   * @param {(IFilter[])} filters\r\n   * @returns {Promise<IHttpPostMessageResponse<void>>}\r\n   */\r\n  async updateFilters(operation: FiltersOperations, filters?: IFilter[]): Promise<IHttpPostMessageResponse<void>> {\r\n    const updateFiltersRequest: IUpdateFiltersRequest = {\r\n      filtersOperation: operation,\r\n      filters: filters as ReportLevelFilters[]\r\n    };\r\n\r\n    try {\r\n      return await this.service.hpm.post<void>(`/report/filters`, updateFiltersRequest, { uid: this.config.uniqueId }, this.iframe.contentWindow);\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Removes all filters at the report level.\r\n   *\r\n   * ```javascript\r\n   * report.removeFilters();\r\n   * ```\r\n   *\r\n   * @returns {Promise<IHttpPostMessageResponse<void>>}\r\n   */\r\n  async removeFilters(): Promise<IHttpPostMessageResponse<void>> {\r\n    if (isRDLEmbed(this.config.embedUrl)) {\r\n      return Promise.reject(APINotSupportedForRDLError);\r\n    }\r\n\r\n    return this.updateFilters(FiltersOperations.RemoveAll);\r\n  }\r\n\r\n  /**\r\n   * Sets filters at the report level.\r\n   *\r\n   * ```javascript\r\n   * const filters: [\r\n   *    ...\r\n   * ];\r\n   *\r\n   * report.setFilters(filters)\r\n   *  .catch(errors => {\r\n   *    ...\r\n   *  });\r\n   * ```\r\n   *\r\n   * @param {(IFilter[])} filters\r\n   * @returns {Promise<IHttpPostMessageResponse<void>>}\r\n   */\r\n  async setFilters(filters: IFilter[]): Promise<IHttpPostMessageResponse<void>> {\r\n    if (isRDLEmbed(this.config.embedUrl)) {\r\n      return Promise.reject(APINotSupportedForRDLError);\r\n    }\r\n\r\n    try {\r\n      return await this.service.hpm.put<void>(`/report/filters`, filters, { uid: this.config.uniqueId }, this.iframe.contentWindow);\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Gets the report ID from the first available location: options, attribute, embed url.\r\n   *\r\n   * @returns {string}\r\n   */\r\n  getId(): string {\r\n    const config = this.config as IReportEmbedConfiguration;\r\n    const reportId = config.id || this.element.getAttribute(Report.reportIdAttribute) || Report.findIdFromEmbedUrl(config.embedUrl);\r\n\r\n    if (typeof reportId !== 'string' || reportId.length === 0) {\r\n      throw new Error(`Report id is required, but it was not found. You must provide an id either as part of embed configuration or as attribute '${Report.reportIdAttribute}'.`);\r\n    }\r\n\r\n    return reportId;\r\n  }\r\n\r\n  /**\r\n   * Gets the list of pages within the report.\r\n   *\r\n   * ```javascript\r\n   * report.getPages()\r\n   *  .then(pages => {\r\n   *      ...\r\n   *  });\r\n   * ```\r\n   *\r\n   * @returns {Promise<Page[]>}\r\n   */\r\n  async getPages(): Promise<Page[]> {\r\n    if (isRDLEmbed(this.config.embedUrl)) {\r\n      return Promise.reject(APINotSupportedForRDLError);\r\n    }\r\n\r\n    try {\r\n      const response = await this.service.hpm.get<IPage[]>('/report/pages', { uid: this.config.uniqueId }, this.iframe.contentWindow);\r\n      return response.body\r\n        .map((page) => new Page(this, page.name, page.displayName, page.isActive, page.visibility, page.defaultSize, page.defaultDisplayOption, page.mobileSize, page.background, page.wallpaper));\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Gets a report page by its name.\r\n   *\r\n   * ```javascript\r\n   * report.getPageByName(pageName)\r\n   *  .then(page => {\r\n   *      ...\r\n   *  });\r\n   * ```\r\n   *\r\n   * @param {string} pageName\r\n   * @returns {Promise<Page>}\r\n   */\r\n  async getPageByName(pageName: string): Promise<Page> {\r\n    if (isRDLEmbed(this.config.embedUrl)) {\r\n      return Promise.reject(APINotSupportedForRDLError);\r\n    }\r\n\r\n    try {\r\n      const response = await this.service.hpm.get<IPage[]>(`/report/pages`, { uid: this.config.uniqueId }, this.iframe.contentWindow);\r\n      const page = response.body.find((p: IPage) => p.name === pageName);\r\n\r\n      if (!page) {\r\n        return Promise.reject(CommonErrorCodes.NotFound);\r\n      }\r\n\r\n      return new Page(\r\n        this,\r\n        page.name,\r\n        page.displayName,\r\n        page.isActive,\r\n        page.visibility,\r\n        page.defaultSize,\r\n        page.defaultDisplayOption,\r\n        page.mobileSize,\r\n        page.background,\r\n        page.wallpaper,\r\n      );\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Gets the active report page.\r\n   *\r\n   * ```javascript\r\n   * report.getActivePage()\r\n   *  .then(activePage => {\r\n   *      ...\r\n   *  });\r\n   * ```\r\n   *\r\n   * @returns {Promise<Page>}\r\n   */\r\n  async getActivePage(): Promise<Page> {\r\n    if (isRDLEmbed(this.config.embedUrl)) {\r\n      return Promise.reject(APINotSupportedForRDLError);\r\n    }\r\n    try {\r\n      const response = await this.service.hpm.get<IPage[]>('/report/pages', { uid: this.config.uniqueId }, this.iframe.contentWindow);\r\n      const activePage = response.body.find((page: IPage) => page.isActive);\r\n\r\n      return new Page(\r\n        this,\r\n        activePage.name,\r\n        activePage.displayName,\r\n        activePage.isActive,\r\n        activePage.visibility,\r\n        activePage.defaultSize,\r\n        activePage.defaultDisplayOption,\r\n        activePage.mobileSize,\r\n        activePage.background,\r\n        activePage.wallpaper,\r\n      );\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Creates an instance of a Page.\r\n   *\r\n   * Normally you would get Page objects by calling `report.getPages()`, but in the case\r\n   * that the page name is known and you want to perform an action on a page without having to retrieve it\r\n   * you can create it directly.\r\n   *\r\n   * Note: Because you are creating the page manually there is no guarantee that the page actually exists in the report, and subsequent requests could fail.\r\n   *\r\n   * @param {string} name\r\n   * @param {string} [displayName]\r\n   * @param {boolean} [isActive]\r\n   * @returns {Page}\r\n   * @hidden\r\n   */\r\n  page(name: string, displayName?: string, isActive?: boolean, visibility?: SectionVisibility): Page {\r\n    return new Page(this, name, displayName, isActive, visibility);\r\n  }\r\n\r\n  /**\r\n   * Prints the active page of the report by invoking `window.print()` on the embed iframe component.\r\n   */\r\n  async print(): Promise<void> {\r\n    if (isRDLEmbed(this.config.embedUrl)) {\r\n      return Promise.reject(APINotSupportedForRDLError);\r\n    }\r\n\r\n    try {\r\n      const response = await this.service.hpm.post<void>('/report/print', null, { uid: this.config.uniqueId }, this.iframe.contentWindow);\r\n      return response.body;\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Sets the active page of the report.\r\n   *\r\n   * ```javascript\r\n   * report.setPage(\"page2\")\r\n   *  .catch(error => { ... });\r\n   * ```\r\n   *\r\n   * @param {string} pageName\r\n   * @returns {Promise<IHttpPostMessageResponse<void>>}\r\n   */\r\n  async setPage(pageName: string): Promise<IHttpPostMessageResponse<void>> {\r\n    if (isRDLEmbed(this.config.embedUrl)) {\r\n      return Promise.reject(APINotSupportedForRDLError);\r\n    }\r\n\r\n    const page: IPage = {\r\n      name: pageName,\r\n      displayName: null,\r\n      isActive: true\r\n    };\r\n\r\n    try {\r\n      return await this.service.hpm.put<void>('/report/pages/active', page, { uid: this.config.uniqueId }, this.iframe.contentWindow);\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Updates visibility settings for the filter pane and the page navigation pane.\r\n   *\r\n   * ```javascript\r\n   * const newSettings = {\r\n   *   panes: {\r\n   *     filters: {\r\n   *       visible: false\r\n   *     }\r\n   *   }\r\n   * };\r\n   *\r\n   * report.updateSettings(newSettings)\r\n   *   .catch(error => { ... });\r\n   * ```\r\n   *\r\n   * @param {ISettings} settings\r\n   * @returns {Promise<IHttpPostMessageResponse<void>>}\r\n   */\r\n  async updateSettings(settings: ISettings): Promise<IHttpPostMessageResponse<void>> {\r\n    if (isRDLEmbed(this.config.embedUrl) && settings.customLayout != null) {\r\n      return Promise.reject(APINotSupportedForRDLError);\r\n    }\r\n\r\n    try {\r\n      const response = await this.service.hpm.patch<void>('/report/settings', settings, { uid: this.config.uniqueId }, this.iframe.contentWindow);\r\n\r\n      // Update commands if provided\r\n      const extension = settings?.extensions as IExtensions;\r\n      this.commands = extension?.commands ?? this.commands;\r\n      this.groups = extension?.groups ?? this.groups;\r\n\r\n      // Adding commands in extensions array to this.commands\r\n      const extensionsArray = settings?.extensions as IExtension[];\r\n      if (Array.isArray(extensionsArray)) {\r\n        this.commands = [];\r\n        extensionsArray.map((extensionElement: IExtension) => { if (extensionElement?.command) { this.commands.push(extensionElement.command); } });\r\n      }\r\n\r\n      return response;\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Validate load configuration.\r\n   *\r\n   * @hidden\r\n   */\r\n  validate(config: IEmbedConfigurationBase): IError[] {\r\n    if (isRDLEmbed(this.config.embedUrl)) {\r\n      return validatePaginatedReportLoad(config);\r\n    }\r\n    return validateReportLoad(config);\r\n  }\r\n\r\n  /**\r\n   * Handle config changes.\r\n   *\r\n   * @returns {void}\r\n   */\r\n  configChanged(isBootstrap: boolean): void {\r\n    const config = this.config as IReportEmbedConfiguration;\r\n    if (this.isMobileSettings(config.settings)) {\r\n      config.embedUrl = addParamToUrl(config.embedUrl, \"isMobile\", \"true\");\r\n    }\r\n\r\n    // Calculate settings from HTML element attributes if available.\r\n    const filterPaneEnabledAttribute = this.element.getAttribute(Report.filterPaneEnabledAttribute);\r\n    const navContentPaneEnabledAttribute = this.element.getAttribute(Report.navContentPaneEnabledAttribute);\r\n\r\n    const elementAttrSettings: IEmbedSettings = {\r\n      filterPaneEnabled: (filterPaneEnabledAttribute == null) ? undefined : (filterPaneEnabledAttribute !== \"false\"),\r\n      navContentPaneEnabled: (navContentPaneEnabledAttribute == null) ? undefined : (navContentPaneEnabledAttribute !== \"false\")\r\n    };\r\n\r\n    // Set the settings back into the config.\r\n    this.config.settings = assign({}, elementAttrSettings, config.settings) as ISettings;\r\n\r\n    if (isBootstrap) {\r\n      return;\r\n    }\r\n\r\n    config.id = this.getId();\r\n  }\r\n\r\n  /**\r\n   * @hidden\r\n   * @returns {string}\r\n   */\r\n  getDefaultEmbedUrlEndpoint(): string {\r\n    return \"reportEmbed\";\r\n  }\r\n\r\n  /**\r\n   * Switch Report view mode.\r\n   *\r\n   * @returns {Promise<void>}\r\n   */\r\n  async switchMode(viewMode: ViewMode | string): Promise<void> {\r\n    let newMode: string;\r\n    if (typeof viewMode === \"string\") {\r\n      newMode = viewMode;\r\n    }\r\n    else {\r\n      newMode = this.viewModeToString(viewMode);\r\n    }\r\n\r\n    const url = '/report/switchMode/' + newMode;\r\n    try {\r\n      const response = await this.service.hpm.post<void>(url, null, { uid: this.config.uniqueId }, this.iframe.contentWindow);\r\n      return response.body;\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Refreshes data sources for the report.\r\n   *\r\n   * ```javascript\r\n   * report.refresh();\r\n   * ```\r\n   */\r\n  async refresh(): Promise<void> {\r\n    try {\r\n      const response = await this.service.hpm.post<void>('/report/refresh', null, { uid: this.config.uniqueId }, this.iframe.contentWindow);\r\n      return response.body;\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * checks if the report is saved.\r\n   *\r\n   * ```javascript\r\n   * report.isSaved()\r\n   * ```\r\n   *\r\n   * @returns {Promise<boolean>}\r\n   */\r\n  async isSaved(): Promise<boolean> {\r\n    if (isRDLEmbed(this.config.embedUrl)) {\r\n      return Promise.reject(APINotSupportedForRDLError);\r\n    }\r\n\r\n    return await isSavedInternal(this.service.hpm, this.config.uniqueId, this.iframe.contentWindow);\r\n  }\r\n\r\n  /**\r\n   * Apply a theme to the report\r\n   *\r\n   * ```javascript\r\n   * report.applyTheme(theme);\r\n   * ```\r\n   */\r\n  async applyTheme(theme: IReportTheme): Promise<void> {\r\n    if (isRDLEmbed(this.config.embedUrl)) {\r\n      return Promise.reject(APINotSupportedForRDLError);\r\n    }\r\n\r\n    return await this.applyThemeInternal(theme);\r\n  }\r\n\r\n  /**\r\n   * Reset and apply the default theme of the report\r\n   *\r\n   * ```javascript\r\n   * report.resetTheme();\r\n   * ```\r\n   */\r\n  async resetTheme(): Promise<void> {\r\n    if (isRDLEmbed(this.config.embedUrl)) {\r\n      return Promise.reject(APINotSupportedForRDLError);\r\n    }\r\n\r\n    return await this.applyThemeInternal(<IReportTheme>{});\r\n  }\r\n\r\n  /**\r\n   * get the theme of the report\r\n   *\r\n   * ```javascript\r\n   * report.getTheme();\r\n   * ```\r\n   */\r\n  async getTheme(): Promise<IReportTheme> {\r\n    if (isRDLEmbed(this.config.embedUrl)) {\r\n      return Promise.reject(APINotSupportedForRDLError);\r\n    }\r\n\r\n    try {\r\n      const response = await this.service.hpm.get<IReportTheme>(`/report/theme`, { uid: this.config.uniqueId }, this.iframe.contentWindow);\r\n      return response.body;\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Reset user's filters, slicers, and other data view changes to the default state of the report\r\n   *\r\n   * ```javascript\r\n   * report.resetPersistentFilters();\r\n   * ```\r\n   */\r\n  async resetPersistentFilters(): Promise<IHttpPostMessageResponse<void>> {\r\n    try {\r\n      return await this.service.hpm.delete<void>(`/report/userState`, null, { uid: this.config.uniqueId }, this.iframe.contentWindow);\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Save user's filters, slicers, and other data view changes of the report\r\n   *\r\n   * ```javascript\r\n   * report.savePersistentFilters();\r\n   * ```\r\n   */\r\n  async savePersistentFilters(): Promise<IHttpPostMessageResponse<void>> {\r\n    try {\r\n      return await this.service.hpm.post<void>(`/report/userState`, null, { uid: this.config.uniqueId }, this.iframe.contentWindow);\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Returns if there are user's filters, slicers, or other data view changes applied on the report.\r\n   * If persistent filters is disable, returns false.\r\n   *\r\n   * ```javascript\r\n   * report.arePersistentFiltersApplied();\r\n   * ```\r\n   *\r\n   * @returns {Promise<boolean>}\r\n   */\r\n  async arePersistentFiltersApplied(): Promise<boolean> {\r\n    try {\r\n      const response = await this.service.hpm.get<boolean>(`/report/isUserStateApplied`, { uid: this.config.uniqueId }, this.iframe.contentWindow);\r\n      return response.body;\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Remove context menu extension command.\r\n   *\r\n   * ```javascript\r\n   * report.removeContextMenuCommand(commandName, contextMenuTitle)\r\n   *  .catch(error => {\r\n   *      ...\r\n   *  });\r\n   * ```\r\n   *\r\n   * @param {string} commandName\r\n   * @param {string} contextMenuTitle\r\n   * @returns {Promise<IHttpPostMessageResponse<void>>}\r\n   */\r\n  async removeContextMenuCommand(commandName: string, contextMenuTitle: string): Promise<IHttpPostMessageResponse<void>> {\r\n    if (isRDLEmbed(this.config.embedUrl)) {\r\n      return Promise.reject(APINotSupportedForRDLError);\r\n    }\r\n\r\n    const commandCopy = JSON.parse(JSON.stringify(this.commands)) as ICommandExtension[];\r\n    const indexOfCommand: number = this.findCommandMenuIndex(\"visualContextMenu\", commandCopy, commandName, contextMenuTitle);\r\n    if (indexOfCommand === -1) {\r\n      throw CommonErrorCodes.NotFound;\r\n    }\r\n\r\n    // Delete the context menu and not the entire command, since command can have option menu as well.\r\n    delete commandCopy[indexOfCommand].extend.visualContextMenu;\r\n    const newSetting: ISettings = {\r\n      extensions: {\r\n        commands: commandCopy,\r\n        groups: this.groups\r\n      }\r\n    };\r\n    return await this.updateSettings(newSetting);\r\n  }\r\n\r\n  /**\r\n   * Add context menu extension command.\r\n   *\r\n   * ```javascript\r\n   * report.addContextMenuCommand(commandName, commandTitle, contextMenuTitle, menuLocation, visualName, visualType, groupName)\r\n   *  .catch(error => {\r\n   *      ...\r\n   *  });\r\n   * ```\r\n   *\r\n   * @param {string} commandName\r\n   * @param {string} commandTitle\r\n   * @param {string} contextMenuTitle\r\n   * @param {MenuLocation} menuLocation\r\n   * @param {string} visualName\r\n   * @param {string} visualType\r\n   * @param {string} groupName\r\n   * @returns {Promise<IHttpPostMessageResponse<void>>}\r\n   */\r\n  async addContextMenuCommand(commandName: string, commandTitle: string, contextMenuTitle: string = commandTitle, menuLocation: MenuLocation = MenuLocation.Bottom, visualName: string = undefined, visualType: string, groupName: string = undefined): Promise<IHttpPostMessageResponse<void>> {\r\n    if (isRDLEmbed(this.config.embedUrl)) {\r\n      return Promise.reject(APINotSupportedForRDLError);\r\n    }\r\n\r\n    const newCommands: ICommandExtension[] = this.createMenuCommand(\"visualContextMenu\", commandName, commandTitle, contextMenuTitle, menuLocation, visualName, visualType, groupName);\r\n    const newSetting: ISettings = {\r\n      extensions: {\r\n        commands: newCommands,\r\n        groups: this.groups\r\n      }\r\n    };\r\n    return await this.updateSettings(newSetting);\r\n  }\r\n\r\n  /**\r\n   * Remove options menu extension command.\r\n   *\r\n   * ```javascript\r\n   * report.removeOptionsMenuCommand(commandName, optionsMenuTitle)\r\n   *  .then({\r\n   *      ...\r\n   *  });\r\n   * ```\r\n   *\r\n   * @param {string} commandName\r\n   * @param {string} optionsMenuTitle\r\n   * @returns {Promise<IHttpPostMessageResponse<void>>}\r\n   */\r\n  async removeOptionsMenuCommand(commandName: string, optionsMenuTitle: string): Promise<IHttpPostMessageResponse<void>> {\r\n    if (isRDLEmbed(this.config.embedUrl)) {\r\n      return Promise.reject(APINotSupportedForRDLError);\r\n    }\r\n\r\n    const commandCopy = JSON.parse(JSON.stringify(this.commands)) as ICommandExtension[];\r\n    const indexOfCommand: number = this.findCommandMenuIndex(\"visualOptionsMenu\", commandCopy, commandName, optionsMenuTitle);\r\n\r\n    if (indexOfCommand === -1) {\r\n      throw CommonErrorCodes.NotFound;\r\n    }\r\n\r\n    // Delete the context options and not the entire command, since command can have context menu as well.\r\n    delete commandCopy[indexOfCommand].extend.visualOptionsMenu;\r\n    delete commandCopy[indexOfCommand].icon;\r\n    const newSetting: ISettings = {\r\n      extensions: {\r\n        commands: commandCopy,\r\n        groups: this.groups\r\n      }\r\n    };\r\n    return await this.updateSettings(newSetting);\r\n  }\r\n\r\n  /**\r\n   * Add options menu extension command.\r\n   *\r\n   * ```javascript\r\n   * report.addOptionsMenuCommand(commandName, commandTitle, optionsMenuTitle, menuLocation, visualName, visualType, groupName, commandIcon)\r\n   *  .catch(error => {\r\n   *      ...\r\n   *  });\r\n   * ```\r\n   *\r\n   * @param {string} commandName\r\n   * @param {string} commandTitle\r\n   * @param {string} optionMenuTitle\r\n   * @param {MenuLocation} menuLocation\r\n   * @param {string} visualName\r\n   * @param {string} visualType\r\n   * @param {string} groupName\r\n   * @param {string} commandIcon\r\n   * @returns {Promise<IHttpPostMessageResponse<void>>}\r\n   */\r\n  async addOptionsMenuCommand(commandName: string, commandTitle: string, optionsMenuTitle: string = commandTitle, menuLocation: MenuLocation = MenuLocation.Bottom, visualName: string = undefined, visualType: string = undefined, groupName: string = undefined, commandIcon: string = undefined): Promise<IHttpPostMessageResponse<void>> {\r\n    if (isRDLEmbed(this.config.embedUrl)) {\r\n      return Promise.reject(APINotSupportedForRDLError);\r\n    }\r\n\r\n    const newCommands: ICommandExtension[] = this.createMenuCommand(\"visualOptionsMenu\", commandName, commandTitle, optionsMenuTitle, menuLocation, visualName, visualType, groupName, commandIcon);\r\n    const newSetting: ISettings = {\r\n      extensions: {\r\n        commands: newCommands,\r\n        groups: this.groups\r\n      }\r\n    };\r\n    return await this.updateSettings(newSetting);\r\n  }\r\n\r\n  /**\r\n   * Updates the display state of a visual in a page.\r\n   *\r\n   * ```javascript\r\n   * report.setVisualDisplayState(pageName, visualName, displayState)\r\n   *   .catch(error => { ... });\r\n   * ```\r\n   *\r\n   * @param {string} pageName\r\n   * @param {string} visualName\r\n   * @param {VisualContainerDisplayMode} displayState\r\n   * @returns {Promise<IHttpPostMessageResponse<void>>}\r\n   */\r\n  async setVisualDisplayState(pageName: string, visualName: string, displayState: VisualContainerDisplayMode): Promise<IHttpPostMessageResponse<void>> {\r\n    // Check if page name and visual name are valid\r\n    await this.validateVisual(pageName, visualName);\r\n    const visualLayout: IVisualLayout = {\r\n      displayState: {\r\n        mode: displayState\r\n      }\r\n    };\r\n\r\n    // Get new Settings object with updated visual layout\r\n    const newSettings = this.buildLayoutSettingsObject(pageName, visualName, visualLayout);\r\n    return this.updateSettings(newSettings);\r\n  }\r\n\r\n  /**\r\n   * Resize a visual in a page.\r\n   *\r\n   * ```javascript\r\n   * report.resizeVisual(pageName, visualName, width, height)\r\n   *   .catch(error => { ... });\r\n   * ```\r\n   *\r\n   * @param {string} pageName\r\n   * @param {string} visualName\r\n   * @param {number} width\r\n   * @param {number} height\r\n   * @returns {Promise<IHttpPostMessageResponse<void>>}\r\n   */\r\n  async resizeVisual(pageName: string, visualName: string, width: number, height: number): Promise<IHttpPostMessageResponse<void>> {\r\n    // Check if page name and visual name are valid\r\n    await this.validateVisual(pageName, visualName);\r\n    const visualLayout: IVisualLayout = {\r\n      width: width,\r\n      height: height,\r\n    };\r\n\r\n    // Get new Settings object with updated visual layout\r\n    const newSettings = this.buildLayoutSettingsObject(pageName, visualName, visualLayout);\r\n    return this.updateSettings(newSettings);\r\n  }\r\n\r\n  /**\r\n   * Updates the size of active page in report.\r\n   *\r\n   * ```javascript\r\n   * report.resizeActivePage(pageSizeType, width, height)\r\n   *   .catch(error => { ... });\r\n   * ```\r\n   *\r\n   * @param {PageSizeType} pageSizeType\r\n   * @param {number} width\r\n   * @param {number} height\r\n   * @returns {Promise<IHttpPostMessageResponse<void>>}\r\n   */\r\n  async resizeActivePage(pageSizeType: PageSizeType, width?: number, height?: number): Promise<IHttpPostMessageResponse<void>> {\r\n    const pageSize: ICustomPageSize = {\r\n      type: pageSizeType,\r\n      width: width,\r\n      height: height\r\n    };\r\n\r\n    // Create new settings object with custom layout type\r\n    const newSettings: ISettings = {\r\n      layoutType: LayoutType.Custom,\r\n      customLayout: {\r\n        pageSize: pageSize\r\n      }\r\n    };\r\n    return this.updateSettings(newSettings);\r\n  }\r\n\r\n  /**\r\n   * Updates the position of a visual in a page.\r\n   *\r\n   * ```javascript\r\n   * report.moveVisual(pageName, visualName, x, y, z)\r\n   *   .catch(error => { ... });\r\n   * ```\r\n   *\r\n   * @param {string} pageName\r\n   * @param {string} visualName\r\n   * @param {number} x\r\n   * @param {number} y\r\n   * @param {number} z\r\n   * @returns {Promise<IHttpPostMessageResponse<void>>}\r\n   */\r\n  async moveVisual(pageName: string, visualName: string, x: number, y: number, z?: number): Promise<IHttpPostMessageResponse<void>> {\r\n    // Check if page name and visual name are valid\r\n    await this.validateVisual(pageName, visualName);\r\n    const visualLayout: IVisualLayout = {\r\n      x: x,\r\n      y: y,\r\n      z: z\r\n    };\r\n\r\n    // Get new Settings object with updated visual layout\r\n    const newSettings = this.buildLayoutSettingsObject(pageName, visualName, visualLayout);\r\n    return this.updateSettings(newSettings);\r\n  }\r\n\r\n  /**\r\n   * Updates the report layout\r\n   *\r\n   * ```javascript\r\n   * report.switchLayout(layoutType);\r\n   * ```\r\n   *\r\n   * @param {LayoutType} layoutType\r\n   * @returns {Promise<IHttpPostMessageResponse<void>>}\r\n   */\r\n  async switchLayout(layoutType: LayoutType): Promise<IHttpPostMessageResponse<void>> {\r\n    const isInitialMobileSettings = this.isMobileSettings({ layoutType: this.initialLayoutType });\r\n    const isPassedMobileSettings = this.isMobileSettings({ layoutType: layoutType });\r\n\r\n    // Check if both passed layout and initial layout are of same type.\r\n    if (isInitialMobileSettings !== isPassedMobileSettings) {\r\n      throw \"Switching between mobile and desktop layouts is not supported. Please reset the embed container and re-embed with required layout.\";\r\n    }\r\n\r\n    const newSetting: ISettings = {\r\n      layoutType: layoutType\r\n    };\r\n    const response = await this.updateSettings(newSetting);\r\n    this.initialLayoutType = layoutType;\r\n    return response;\r\n  }\r\n\r\n  /**\r\n   * @hidden\r\n   */\r\n  private createMenuCommand(type: string, commandName: string, commandTitle: string, menuTitle: string, menuLocation: MenuLocation, visualName: string, visualType: string, groupName: string, icon?: string): ICommandExtension[] {\r\n    const newCommandObj: ICommandExtension = {\r\n      name: commandName,\r\n      title: commandTitle,\r\n      extend: {\r\n      }\r\n    };\r\n\r\n    newCommandObj.extend[type] = {\r\n      title: menuTitle,\r\n      menuLocation: menuLocation,\r\n    };\r\n    if (type === \"visualOptionsMenu\") {\r\n      newCommandObj.icon = icon;\r\n    }\r\n    if (groupName) {\r\n      const extend = newCommandObj.extend[type] as IFlatMenuExtension;\r\n      delete extend.menuLocation;\r\n      const groupExtend = newCommandObj.extend[type] as IGroupedMenuExtension;\r\n      groupExtend.groupName = groupName;\r\n    }\r\n    if (visualName) {\r\n      newCommandObj.selector = {\r\n        $schema: \"http://powerbi.com/product/schema#visualSelector\",\r\n        visualName: visualName\r\n      };\r\n    }\r\n    if (visualType) {\r\n      newCommandObj.selector = {\r\n        $schema: \"http://powerbi.com/product/schema#visualTypeSelector\",\r\n        visualType: visualType\r\n      };\r\n    }\r\n    return [...this.commands, newCommandObj];\r\n  }\r\n\r\n  /**\r\n   * @hidden\r\n   */\r\n  private findCommandMenuIndex(type: string, commands: ICommandExtension[], commandName: string, menuTitle: string): number {\r\n    let indexOfCommand = -1;\r\n    commands.some((activeMenuCommand, index) =>\r\n      (activeMenuCommand.name === commandName && activeMenuCommand.extend[type] && activeMenuCommand.extend[type].title === menuTitle) ? (indexOfCommand = index, true) : false);\r\n    return indexOfCommand;\r\n  }\r\n\r\n  /**\r\n   * @hidden\r\n   */\r\n  private buildLayoutSettingsObject(pageName: string, visualName: string, visualLayout: IVisualLayout): ISettings {\r\n    // Create new settings object with custom layout type\r\n    const newSettings: ISettings = {\r\n      layoutType: LayoutType.Custom,\r\n      customLayout: {\r\n        pagesLayout: {}\r\n      }\r\n    };\r\n    newSettings.customLayout.pagesLayout[pageName] = {\r\n      visualsLayout: {}\r\n    };\r\n    newSettings.customLayout.pagesLayout[pageName].visualsLayout[visualName] = visualLayout;\r\n    return newSettings;\r\n  }\r\n\r\n  /**\r\n   * @hidden\r\n   */\r\n  private async validateVisual(pageName: string, visualName: string): Promise<VisualDescriptor> {\r\n    const page = await this.getPageByName(pageName);\r\n    return await page.getVisualByName(visualName);\r\n  }\r\n\r\n  /**\r\n   * @hidden\r\n   */\r\n  private async applyThemeInternal(theme: IReportTheme): Promise<void> {\r\n    try {\r\n      const response = await this.service.hpm.put<void>('/report/theme', theme, { uid: this.config.uniqueId }, this.iframe.contentWindow);\r\n      return response.body;\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * @hidden\r\n   */\r\n  private viewModeToString(viewMode: ViewMode): string {\r\n    let mode: string;\r\n    switch (viewMode) {\r\n      case ViewMode.Edit:\r\n        mode = \"edit\";\r\n        break;\r\n      case ViewMode.View:\r\n        mode = \"view\";\r\n        break;\r\n    }\r\n\r\n    return mode;\r\n  }\r\n\r\n  /**\r\n   * @hidden\r\n   */\r\n  private isMobileSettings(settings: IEmbedSettings): boolean {\r\n    return settings && (settings.layoutType === LayoutType.MobileLandscape || settings.layoutType === LayoutType.MobilePortrait);\r\n  }\r\n\r\n  /**\r\n   * Return the current zoom level of the report.\r\n   *\r\n   * @returns {Promise<number>}\r\n   */\r\n  async getZoom(): Promise<number> {\r\n    try {\r\n      const response = await this.service.hpm.get<number>(`/report/zoom`, { uid: this.config.uniqueId }, this.iframe.contentWindow);\r\n      return response.body;\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Sets the report's zoom level.\r\n   *\r\n   * @param zoomLevel zoom level to set\r\n   */\r\n  async setZoom(zoomLevel: number): Promise<void> {\r\n    await this.updateSettings({ zoomLevel: zoomLevel });\r\n  }\r\n\r\n  /**\r\n   * Closes all open context menus and tooltips.\r\n   *\r\n   * ```javascript\r\n   * report.closeAllOverlays()\r\n   *  .then(() => {\r\n   *      ...\r\n   *  });\r\n   * ```\r\n   *\r\n   * @returns {Promise<void>}\r\n   */\r\n  async closeAllOverlays(): Promise<void> {\r\n    if (isRDLEmbed(this.config.embedUrl)) {\r\n      return Promise.reject(APINotSupportedForRDLError);\r\n    }\r\n\r\n    try {\r\n      const response = await this.service.hpm.post<void>('/report/closeAllOverlays', null, { uid: this.config.uniqueId }, this.iframe.contentWindow);\r\n      return response.body;\r\n    } catch (error) {\r\n      return Promise.reject(error);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Clears selected not popped out visuals, if flag is passed, all visuals selections will be cleared.\r\n   *\r\n   * ```javascript\r\n   * report.clearSelectedVisuals()\r\n   *  .then(() => {\r\n   *      ...\r\n   *  });\r\n   * ```\r\n   * \r\n   * @param {Boolean} [clearPopOutState=false]\r\n   *    If false / undefined visuals selection will not be cleared if one of visuals \r\n   *    is in popped out state (in focus, show as table, spotlight...)\r\n   * @returns {Promise<void>}\r\n   */\r\n  async clearSelectedVisuals(clearPopOutState?: boolean): Promise<void> {\r\n    clearPopOutState = clearPopOutState === true;\r\n    if (isRDLEmbed(this.config.embedUrl)) {\r\n      return Promise.reject(APINotSupportedForRDLError);\r\n    }\r\n\r\n    try {\r\n      const response = await this.service.hpm.post<void>(\r\n        `/report/clearSelectedVisuals/${clearPopOutState.toString()}`,\r\n        null,\r\n        { uid: this.config.uniqueId },\r\n        this.iframe.contentWindow\r\n      );\r\n      return response.body;\r\n    } catch (error) {\r\n      return Promise.reject(error);\r\n    }\r\n  }\r\n}\r\n","// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\n\r\n/* eslint-disable @typescript-eslint/prefer-function-type */\r\n/* eslint-disable @typescript-eslint/no-unused-vars */\r\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\r\nimport { WindowPostMessageProxy } from 'window-post-message-proxy';\r\nimport { HttpPostMessage } from 'http-post-message';\r\nimport { Router, IExtendedRequest, Response as IExtendedResponse } from 'powerbi-router';\r\nimport { IPage, IQuickCreateConfiguration, IReportCreateConfiguration } from 'powerbi-models';\r\nimport {\r\n  Embed,\r\n  IBootstrapEmbedConfiguration,\r\n  IDashboardEmbedConfiguration,\r\n  IEmbedConfiguration,\r\n  IEmbedConfigurationBase,\r\n  IQnaEmbedConfiguration,\r\n  IReportEmbedConfiguration,\r\n  ITileEmbedConfiguration,\r\n  IVisualEmbedConfiguration,\r\n} from './embed';\r\nimport { Report } from './report';\r\nimport { Create } from './create';\r\nimport { Dashboard } from './dashboard';\r\nimport { Tile } from './tile';\r\nimport { Page } from './page';\r\nimport { Qna } from './qna';\r\nimport { Visual } from './visual';\r\nimport * as utils from './util';\r\nimport { QuickCreate } from './quickCreate';\r\nimport * as sdkConfig from './config';\r\n\r\nexport interface IEvent<T> {\r\n  type: string;\r\n  id: string;\r\n  name: string;\r\n  value: T;\r\n}\r\n\r\n/**\r\n * @hidden\r\n */\r\nexport interface ICustomEvent<T> extends CustomEvent {\r\n  detail: T;\r\n}\r\n\r\n/**\r\n * @hidden\r\n */\r\nexport interface IEventHandler<T> {\r\n  (event: ICustomEvent<T>): any;\r\n}\r\n\r\n/**\r\n * @hidden\r\n */\r\nexport interface IHpmFactory {\r\n  (wpmp: WindowPostMessageProxy, targetWindow?: Window, version?: string, type?: string, origin?: string): HttpPostMessage;\r\n}\r\n\r\n/**\r\n * @hidden\r\n */\r\nexport interface IWpmpFactory {\r\n  (name?: string, logMessages?: boolean, eventSourceOverrideWindow?: Window): WindowPostMessageProxy;\r\n}\r\n\r\n/**\r\n * @hidden\r\n */\r\nexport interface IRouterFactory {\r\n  (wpmp: WindowPostMessageProxy): Router;\r\n}\r\n\r\nexport interface IPowerBiElement extends HTMLElement {\r\n  powerBiEmbed: Embed;\r\n}\r\n\r\nexport interface IDebugOptions {\r\n  logMessages?: boolean;\r\n  wpmpName?: string;\r\n}\r\n\r\nexport interface IServiceConfiguration extends IDebugOptions {\r\n  autoEmbedOnContentLoaded?: boolean;\r\n  onError?: (error: any) => any;\r\n  version?: string;\r\n  type?: string;\r\n  sdkWrapperVersion?: string;\r\n}\r\n\r\nexport interface IService {\r\n  hpm: HttpPostMessage;\r\n}\r\n\r\nexport type IComponentEmbedConfiguration = IReportEmbedConfiguration | IDashboardEmbedConfiguration | ITileEmbedConfiguration | IVisualEmbedConfiguration | IQnaEmbedConfiguration;\r\n\r\n/**\r\n * @hidden\r\n */\r\nexport type EmbedComponentFactory = (service: Service, element: HTMLElement, config: IEmbedConfigurationBase, phasedRender?: boolean, isBootstrap?: boolean) => Embed;\r\n\r\n/**\r\n * The Power BI Service embed component, which is the entry point to embed all other Power BI components into your application\r\n *\r\n * @export\r\n * @class Service\r\n * @implements {IService}\r\n */\r\nexport class Service implements IService {\r\n\r\n  /**\r\n   * A list of components that this service can embed\r\n   */\r\n  private static components: (typeof Report | typeof Tile | typeof Dashboard | typeof Qna | typeof Visual)[] = [\r\n    Tile,\r\n    Report,\r\n    Dashboard,\r\n    Qna,\r\n    Visual\r\n  ];\r\n\r\n  /**\r\n   * The default configuration for the service\r\n   */\r\n  private static defaultConfig: IServiceConfiguration = {\r\n    autoEmbedOnContentLoaded: false,\r\n    onError: (...args) => console.log(args[0], args.slice(1))\r\n  };\r\n\r\n  /**\r\n   * Gets or sets the access token as the global fallback token to use when a local token is not provided for a report or tile.\r\n   *\r\n   * @type {string}\r\n   * @hidden\r\n   */\r\n  accessToken: string;\r\n\r\n  /** The Configuration object for the service*/\r\n  private config: IServiceConfiguration;\r\n\r\n  /** A list of Power BI components that have been embedded using this service instance. */\r\n  private embeds: Embed[];\r\n\r\n  /** TODO: Look for way to make hpm private without sacrificing ease of maintenance. This should be private but in embed needs to call methods.\r\n   *\r\n   * @hidden\r\n   */\r\n  hpm: HttpPostMessage;\r\n  /** TODO: Look for way to make wpmp private.  This is only public to allow stopping the wpmp in tests\r\n   *\r\n   * @hidden\r\n   */\r\n  wpmp: WindowPostMessageProxy;\r\n  router: Router;\r\n  private uniqueSessionId: string;\r\n\r\n  /**\r\n   * @hidden\r\n   */\r\n  private registeredComponents: { [componentType: string]: EmbedComponentFactory } = {};\r\n\r\n  /**\r\n   * Creates an instance of a Power BI Service.\r\n   *\r\n   * @param {IHpmFactory} hpmFactory The http post message factory used in the postMessage communication layer\r\n   * @param {IWpmpFactory} wpmpFactory The window post message factory used in the postMessage communication layer\r\n   * @param {IRouterFactory} routerFactory The router factory used in the postMessage communication layer\r\n   * @param {IServiceConfiguration} [config={}]\r\n   * @hidden\r\n   */\r\n  constructor(hpmFactory: IHpmFactory, wpmpFactory: IWpmpFactory, routerFactory: IRouterFactory, config: IServiceConfiguration = {}) {\r\n    this.wpmp = wpmpFactory(config.wpmpName, config.logMessages);\r\n    this.hpm = hpmFactory(this.wpmp, null, config.version, config.type, config.sdkWrapperVersion);\r\n    this.router = routerFactory(this.wpmp);\r\n    this.uniqueSessionId = utils.generateUUID();\r\n\r\n    /**\r\n     * Adds handler for report events.\r\n     */\r\n    this.router.post(`/reports/:uniqueId/events/:eventName`, (req, _res) => {\r\n      const event: IEvent<any> = {\r\n        type: 'report',\r\n        id: req.params.uniqueId as string,\r\n        name: req.params.eventName as string,\r\n        value: req.body\r\n      };\r\n\r\n      this.handleEvent(event);\r\n    });\r\n\r\n    this.router.post(`/reports/:uniqueId/pages/:pageName/events/:eventName`, (req, _res) => {\r\n      const event: IEvent<any> = {\r\n        type: 'report',\r\n        id: req.params.uniqueId as string,\r\n        name: req.params.eventName as string,\r\n        value: req.body\r\n      };\r\n\r\n      this.handleEvent(event);\r\n    });\r\n\r\n    this.router.post(`/reports/:uniqueId/pages/:pageName/visuals/:visualName/events/:eventName`, (req, _res) => {\r\n      const event: IEvent<any> = {\r\n        type: 'report',\r\n        id: req.params.uniqueId as string,\r\n        name: req.params.eventName as string,\r\n        value: req.body\r\n      };\r\n\r\n      this.handleEvent(event);\r\n    });\r\n\r\n    this.router.post(`/dashboards/:uniqueId/events/:eventName`, (req, _res) => {\r\n      const event: IEvent<any> = {\r\n        type: 'dashboard',\r\n        id: req.params.uniqueId as string,\r\n        name: req.params.eventName as string,\r\n        value: req.body\r\n      };\r\n\r\n      this.handleEvent(event);\r\n    });\r\n\r\n    this.router.post(`/tile/:uniqueId/events/:eventName`, (req, _res) => {\r\n      const event: IEvent<any> = {\r\n        type: 'tile',\r\n        id: req.params.uniqueId as string,\r\n        name: req.params.eventName as string,\r\n        value: req.body\r\n      };\r\n\r\n      this.handleEvent(event);\r\n    });\r\n\r\n    /**\r\n     * Adds handler for Q&A events.\r\n     */\r\n    this.router.post(`/qna/:uniqueId/events/:eventName`, (req, _res) => {\r\n      const event: IEvent<any> = {\r\n        type: 'qna',\r\n        id: req.params.uniqueId as string,\r\n        name: req.params.eventName as string,\r\n        value: req.body\r\n      };\r\n\r\n      this.handleEvent(event);\r\n    });\r\n\r\n    /**\r\n     * Adds handler for front load 'ready' message.\r\n     */\r\n    this.router.post(`/ready/:uniqueId`, (req, _res) => {\r\n      const event: IEvent<any> = {\r\n        type: 'report',\r\n        id: req.params.uniqueId as string,\r\n        name: 'ready',\r\n        value: req.body\r\n      };\r\n\r\n      this.handleEvent(event);\r\n    });\r\n\r\n    this.embeds = [];\r\n\r\n    // TODO: Change when Object.assign is available.\r\n    this.config = utils.assign({}, Service.defaultConfig, config);\r\n\r\n    if (this.config.autoEmbedOnContentLoaded) {\r\n      this.enableAutoEmbed();\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Creates new report\r\n   *\r\n   * @param {HTMLElement} element\r\n   * @param {IEmbedConfiguration} [config={}]\r\n   * @returns {Embed}\r\n   */\r\n  createReport(element: HTMLElement, config: IEmbedConfiguration | IReportCreateConfiguration): Embed {\r\n    config.type = 'create';\r\n    const powerBiElement = element as IPowerBiElement;\r\n    const component = new Create(this, powerBiElement, config);\r\n    powerBiElement.powerBiEmbed = component;\r\n    this.addOrOverwriteEmbed(component, element);\r\n\r\n    return component;\r\n  }\r\n\r\n  /**\r\n   * Creates new dataset\r\n   *\r\n   * @param {HTMLElement} element\r\n   * @param {IEmbedConfiguration} [config={}]\r\n   * @returns {Embed}\r\n   */\r\n  quickCreate(element: HTMLElement, config: IQuickCreateConfiguration): Embed {\r\n    config.type = 'quickCreate';\r\n    const powerBiElement = element as IPowerBiElement;\r\n    const component = new QuickCreate(this, powerBiElement, config);\r\n    powerBiElement.powerBiEmbed = component;\r\n    this.addOrOverwriteEmbed(component, element);\r\n\r\n    return component;\r\n  }\r\n\r\n  /**\r\n   * TODO: Add a description here\r\n   *\r\n   * @param {HTMLElement} [container]\r\n   * @param {IEmbedConfiguration} [config=undefined]\r\n   * @returns {Embed[]}\r\n   * @hidden\r\n   */\r\n  init(container?: HTMLElement, config: IEmbedConfiguration = undefined): Embed[] {\r\n    container = (container && container instanceof HTMLElement) ? container : document.body;\r\n\r\n    const elements = Array.prototype.slice.call(container.querySelectorAll(`[${Embed.embedUrlAttribute}]`));\r\n    return elements.map((element) => this.embed(element, config));\r\n  }\r\n\r\n  /**\r\n   * Given a configuration based on an HTML element,\r\n   * if the component has already been created and attached to the element, reuses the component instance and existing iframe,\r\n   * otherwise creates a new component instance.\r\n   *\r\n   * @param {HTMLElement} element\r\n   * @param {IEmbedConfigurationBase} [config={}]\r\n   * @returns {Embed}\r\n   */\r\n  embed(element: HTMLElement, config: IComponentEmbedConfiguration | IEmbedConfigurationBase = {}): Embed {\r\n    return this.embedInternal(element, config);\r\n  }\r\n\r\n  /**\r\n   * Given a configuration based on an HTML element,\r\n   * if the component has already been created and attached to the element, reuses the component instance and existing iframe,\r\n   * otherwise creates a new component instance.\r\n   * This is used for the phased embedding API, once element is loaded successfully, one can call 'render' on it.\r\n   *\r\n   * @param {HTMLElement} element\r\n   * @param {IEmbedConfigurationBase} [config={}]\r\n   * @returns {Embed}\r\n   */\r\n  load(element: HTMLElement, config: IComponentEmbedConfiguration | IEmbedConfigurationBase = {}): Embed {\r\n    return this.embedInternal(element, config, /* phasedRender */ true, /* isBootstrap */ false);\r\n  }\r\n\r\n  /**\r\n   * Given an HTML element and entityType, creates a new component instance, and bootstrap the iframe for embedding.\r\n   *\r\n   * @param {HTMLElement} element\r\n   * @param {IBootstrapEmbedConfiguration} config: a bootstrap config which is an embed config without access token.\r\n   */\r\n  bootstrap(element: HTMLElement, config: IComponentEmbedConfiguration | IBootstrapEmbedConfiguration): Embed {\r\n    return this.embedInternal(element, config, /* phasedRender */ false, /* isBootstrap */ true);\r\n  }\r\n\r\n  /** @hidden */\r\n  embedInternal(element: HTMLElement, config: IComponentEmbedConfiguration | IEmbedConfigurationBase = {}, phasedRender?: boolean, isBootstrap?: boolean): Embed {\r\n    let component: Embed;\r\n    const powerBiElement = element as IPowerBiElement;\r\n\r\n    if (powerBiElement.powerBiEmbed) {\r\n      if (isBootstrap) {\r\n        throw new Error(`Attempted to bootstrap element ${element.outerHTML}, but the element is already a powerbi element.`);\r\n      }\r\n\r\n      component = this.embedExisting(powerBiElement, config, phasedRender);\r\n    }\r\n    else {\r\n      component = this.embedNew(powerBiElement, config, phasedRender, isBootstrap);\r\n    }\r\n\r\n    return component;\r\n  }\r\n\r\n  /** @hidden */\r\n  getNumberOfComponents(): number {\r\n    if (!this.embeds) {\r\n      return 0;\r\n    }\r\n\r\n    return this.embeds.length;\r\n  }\r\n\r\n  /** @hidden */\r\n  getSdkSessionId(): string {\r\n    return this.uniqueSessionId;\r\n  }\r\n\r\n  /**\r\n   * Returns the Power BI Client SDK version\r\n   *\r\n   * @hidden\r\n   */\r\n  getSDKVersion(): string {\r\n    return sdkConfig.default.version;\r\n  }\r\n\r\n  /**\r\n   * Given a configuration based on a Power BI element, saves the component instance that reference the element for later lookup.\r\n   *\r\n   * @private\r\n   * @param {IPowerBiElement} element\r\n   * @param {IEmbedConfigurationBase} config\r\n   * @param {boolean} phasedRender\r\n   * @param {boolean} isBootstrap\r\n   * @returns {Embed}\r\n   * @hidden\r\n   */\r\n  private embedNew(element: IPowerBiElement, config: IComponentEmbedConfiguration | IEmbedConfigurationBase, phasedRender?: boolean, isBootstrap?: boolean): Embed {\r\n    const componentType = config.type || element.getAttribute(Embed.typeAttribute);\r\n    if (!componentType) {\r\n      const scrubbedConfig = { ...config, accessToken: \"\" };\r\n      throw new Error(`Attempted to embed using config ${JSON.stringify(scrubbedConfig)} on element ${element.outerHTML}, but could not determine what type of component to embed. You must specify a type in the configuration or as an attribute such as '${Embed.typeAttribute}=\"${Report.type.toLowerCase()}\"'.`);\r\n    }\r\n\r\n    // Saves the type as part of the configuration so that it can be referenced later at a known location.\r\n    config.type = componentType;\r\n\r\n    const component = this.createEmbedComponent(componentType, element, config, phasedRender, isBootstrap);\r\n    element.powerBiEmbed = component;\r\n\r\n    this.addOrOverwriteEmbed(component, element);\r\n    return component;\r\n  }\r\n\r\n  /**\r\n   * Given component type, creates embed component instance \r\n   *\r\n   * @private\r\n   * @param {string} componentType\r\n   * @param {HTMLElement} element\r\n   * @param {IEmbedConfigurationBase} config\r\n   * @param {boolean} phasedRender\r\n   * @param {boolean} isBootstrap\r\n   * @returns {Embed}\r\n   * @hidden\r\n   */\r\n  private createEmbedComponent(componentType: string, element: HTMLElement, config: IEmbedConfigurationBase, phasedRender?: boolean, isBootstrap?: boolean): Embed {\r\n    const Component = utils.find((embedComponent) => componentType === embedComponent.type.toLowerCase(), Service.components);\r\n    if (Component) {\r\n      return new Component(this, element, config, phasedRender, isBootstrap);\r\n    }\r\n\r\n    // If component type is not legacy, search in registered components\r\n    const registeredComponent = utils.find((registeredComponentType) => componentType.toLowerCase() === registeredComponentType.toLowerCase(), Object.keys(this.registeredComponents));\r\n    if (!registeredComponent) {\r\n      throw new Error(`Attempted to embed component of type: ${componentType} but did not find any matching component.  Please verify the type you specified is intended.`);\r\n    }\r\n\r\n    return this.registeredComponents[registeredComponent](this, element, config, phasedRender, isBootstrap);\r\n  }\r\n\r\n  /**\r\n   * Given an element that already contains an embed component, load with a new configuration.\r\n   *\r\n   * @private\r\n   * @param {IPowerBiElement} element\r\n   * @param {IEmbedConfigurationBase} config\r\n   * @returns {Embed}\r\n   * @hidden\r\n   */\r\n  private embedExisting(element: IPowerBiElement, config: IComponentEmbedConfiguration | IEmbedConfigurationBase, phasedRender?: boolean): Embed {\r\n    const component = utils.find((x) => x.element === element, this.embeds);\r\n    if (!component) {\r\n      const scrubbedConfig = { ...config, accessToken: \"\" };\r\n      throw new Error(`Attempted to embed using config ${JSON.stringify(scrubbedConfig)} on element ${element.outerHTML} which already has embedded component associated, but could not find the existing component in the list of active components. This could indicate the embeds list is out of sync with the DOM, or the component is referencing the incorrect HTML element.`);\r\n    }\r\n\r\n    // TODO: Multiple embedding to the same iframe is not supported in QnA\r\n    if (config.type && config.type.toLowerCase() === \"qna\") {\r\n      return this.embedNew(element, config);\r\n    }\r\n\r\n    /**\r\n     * TODO: Dynamic embed type switching could be supported but there is work needed to prepare the service state and DOM cleanup.\r\n     * remove all event handlers from the DOM, then reset the element to initial state which removes iframe, and removes from list of embeds\r\n     * then we can call the embedNew function which would allow setting the proper embedUrl and construction of object based on the new type.\r\n     */\r\n    if (typeof config.type === \"string\" && config.type !== component.config.type) {\r\n\r\n      /**\r\n       * When loading report after create we want to use existing Iframe to optimize load period\r\n       */\r\n      if (config.type === \"report\" && utils.isCreate(component.config.type)) {\r\n        const report = new Report(this, element, config, /* phasedRender */ false, /* isBootstrap */ false, element.powerBiEmbed.iframe);\r\n        component.populateConfig(config, /* isBootstrap */ false);\r\n        report.load();\r\n        element.powerBiEmbed = report;\r\n\r\n        this.addOrOverwriteEmbed(component, element);\r\n\r\n        return report;\r\n      }\r\n      const scrubbedConfig = { ...config, accessToken: \"\" };\r\n      throw new Error(`Embedding on an existing element with a different type than the previous embed object is not supported.  Attempted to embed using config ${JSON.stringify(scrubbedConfig)} on element ${element.outerHTML}, but the existing element contains an embed of type: ${this.config.type} which does not match the new type: ${config.type}`);\r\n    }\r\n\r\n    component.populateConfig(config, /* isBootstrap */ false);\r\n    component.load(phasedRender);\r\n\r\n    return component;\r\n  }\r\n\r\n  /**\r\n   * Adds an event handler for DOMContentLoaded, which searches the DOM for elements that have the 'powerbi-embed-url' attribute,\r\n   * and automatically attempts to embed a powerbi component based on information from other powerbi-* attributes.\r\n   *\r\n   * Note: Only runs if `config.autoEmbedOnContentLoaded` is true when the service is created.\r\n   * This handler is typically useful only for applications that are rendered on the server so that all required data is available when the handler is called.\r\n   *\r\n   * @hidden\r\n   */\r\n  enableAutoEmbed(): void {\r\n    window.addEventListener('DOMContentLoaded', (_event: Event) => this.init(document.body), false);\r\n  }\r\n\r\n  /**\r\n   * Returns an instance of the component associated with the element.\r\n   *\r\n   * @param {HTMLElement} element\r\n   * @returns {(Report | Tile)}\r\n   */\r\n  get(element: HTMLElement): Embed {\r\n    const powerBiElement = element as IPowerBiElement;\r\n\r\n    if (!powerBiElement.powerBiEmbed) {\r\n      throw new Error(`You attempted to get an instance of powerbi component associated with element: ${element.outerHTML} but there was no associated instance.`);\r\n    }\r\n\r\n    return powerBiElement.powerBiEmbed;\r\n  }\r\n\r\n  /**\r\n   * Finds an embed instance by the name or unique ID that is provided.\r\n   *\r\n   * @param {string} uniqueId\r\n   * @returns {(Report | Tile)}\r\n   * @hidden\r\n   */\r\n  find(uniqueId: string): Embed {\r\n    return utils.find((x) => x.config.uniqueId === uniqueId, this.embeds);\r\n  }\r\n\r\n  /**\r\n   * Removes embed components whose container element is same as the given element\r\n   *\r\n   * @param {Embed} component\r\n   * @param {HTMLElement} element\r\n   * @returns {void}\r\n   * @hidden\r\n   */\r\n  addOrOverwriteEmbed(component: Embed, element: HTMLElement): void {\r\n    // remove embeds over the same div element.\r\n    this.embeds = this.embeds.filter(function (embed) {\r\n      return embed.element !== element;\r\n    });\r\n\r\n    this.embeds.push(component);\r\n  }\r\n\r\n  /**\r\n   * Given an HTML element that has a component embedded within it, removes the component from the list of embedded components, removes the association between the element and the component, and removes the iframe.\r\n   *\r\n   * @param {HTMLElement} element\r\n   * @returns {void}\r\n   */\r\n  reset(element: HTMLElement): void {\r\n    const powerBiElement = element as IPowerBiElement;\r\n\r\n    if (!powerBiElement.powerBiEmbed) {\r\n      return;\r\n    }\r\n\r\n    /** Removes the element frontLoad listener if exists. */\r\n    const embedElement = powerBiElement.powerBiEmbed;\r\n    if (embedElement.frontLoadHandler) {\r\n      embedElement.element.removeEventListener('ready', embedElement.frontLoadHandler, false);\r\n    }\r\n\r\n    /** Removes all event handlers. */\r\n    embedElement.allowedEvents.forEach((eventName) => {\r\n      embedElement.off(eventName);\r\n    });\r\n\r\n    /** Removes the component from an internal list of components. */\r\n    utils.remove((x) => x === powerBiElement.powerBiEmbed, this.embeds);\r\n    /** Deletes a property from the HTML element. */\r\n    delete powerBiElement.powerBiEmbed;\r\n    /** Removes the iframe from the element. */\r\n    const iframe = element.querySelector('iframe');\r\n    if (iframe) {\r\n      if (iframe.remove !== undefined) {\r\n        iframe.remove();\r\n      }\r\n      else {\r\n        /** Workaround for IE: unhandled rejection TypeError: object doesn't support property or method 'remove' */\r\n        iframe.parentElement.removeChild(iframe);\r\n      }\r\n    }\r\n  }\r\n\r\n  /**\r\n   * handles tile events\r\n   *\r\n   * @param {IEvent<any>} event\r\n   * @hidden\r\n   */\r\n  handleTileEvents(event: IEvent<any>): void {\r\n    if (event.type === 'tile') {\r\n      this.handleEvent(event);\r\n    }\r\n  }\r\n\r\n  async invokeSDKHook(hook: Function, req: IExtendedRequest, res: IExtendedResponse): Promise<void> {\r\n    if (!hook) {\r\n      res.send(404, null);\r\n      return;\r\n    }\r\n\r\n    try {\r\n      let result = await hook(req.body);\r\n      res.send(200, result);\r\n    } catch (error) {\r\n      res.send(400, null);\r\n      console.error(error);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Given an event object, finds the embed component with the matching type and ID, and invokes its handleEvent method with the event object.\r\n   *\r\n   * @private\r\n   * @param {IEvent<any>} event\r\n   * @hidden\r\n   */\r\n  private handleEvent(event: IEvent<any>): void {\r\n    const embed = utils.find(embed => {\r\n      return (embed.config.uniqueId === event.id);\r\n    }, this.embeds);\r\n\r\n    if (embed) {\r\n      const value = event.value;\r\n\r\n      if (event.name === 'pageChanged') {\r\n        const pageKey = 'newPage';\r\n        const page: IPage = value[pageKey];\r\n        if (!page) {\r\n          throw new Error(`Page model not found at 'event.value.${pageKey}'.`);\r\n        }\r\n        value[pageKey] = new Page(embed, page.name, page.displayName, true /* isActive */);\r\n      }\r\n\r\n      utils.raiseCustomEvent(embed.element, event.name, value);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * API for warm starting powerbi embedded endpoints.\r\n   * Use this API to preload Power BI Embedded in the background.\r\n   *\r\n   * @public\r\n   * @param {IEmbedConfigurationBase} [config={}]\r\n   * @param {HTMLElement} [element=undefined]\r\n   */\r\n  preload(config: IComponentEmbedConfiguration | IEmbedConfigurationBase, element?: HTMLElement): HTMLIFrameElement {\r\n    const iframeContent = document.createElement(\"iframe\");\r\n    iframeContent.setAttribute(\"style\", \"display:none;\");\r\n    iframeContent.setAttribute(\"src\", config.embedUrl);\r\n    iframeContent.setAttribute(\"scrolling\", \"no\");\r\n    iframeContent.setAttribute(\"allowfullscreen\", \"false\");\r\n\r\n    let node = element;\r\n    if (!node) {\r\n      node = document.getElementsByTagName(\"body\")[0];\r\n    }\r\n\r\n    node.appendChild(iframeContent);\r\n    iframeContent.onload = () => {\r\n      utils.raiseCustomEvent(iframeContent, \"preloaded\", {});\r\n    };\r\n\r\n    return iframeContent;\r\n  }\r\n\r\n  /**\r\n   * Use this API to set SDK info\r\n   *\r\n   * @hidden\r\n   * @param {string} type\r\n   * @returns {void}\r\n   */\r\n  setSdkInfo(type: string, version: string): void {\r\n    this.hpm.defaultHeaders['x-sdk-type'] = type;\r\n    this.hpm.defaultHeaders['x-sdk-wrapper-version'] = version;\r\n  }\r\n\r\n  /**\r\n   * API for registering external components\r\n   *\r\n   * @hidden\r\n   * @param {string} componentType\r\n   * @param {EmbedComponentFactory} embedComponentFactory\r\n   * @param {string[]} routerEventUrls\r\n   */\r\n  register(componentType: string, embedComponentFactory: EmbedComponentFactory, routerEventUrls: string[]): void {\r\n    if (utils.find((embedComponent) => componentType.toLowerCase() === embedComponent.type.toLowerCase(), Service.components)) {\r\n      throw new Error('The component name is reserved. Cannot register a component with this name.');\r\n    }\r\n\r\n    if (utils.find((registeredComponentType) => componentType.toLowerCase() === registeredComponentType.toLowerCase(), Object.keys(this.registeredComponents))) {\r\n      throw new Error('A component with this type is already registered.');\r\n    }\r\n\r\n    this.registeredComponents[componentType] = embedComponentFactory;\r\n\r\n    routerEventUrls.forEach(url => {\r\n      if (!url.includes(':uniqueId') || !url.includes(':eventName')) {\r\n        throw new Error('Invalid router event URL');\r\n      }\r\n\r\n      this.router.post(url, (req, _res) => {\r\n        const event: IEvent<any> = {\r\n          type: componentType,\r\n          id: req.params.uniqueId as string,\r\n          name: req.params.eventName as string,\r\n          value: req.body\r\n        };\r\n\r\n        this.handleEvent(event);\r\n      });\r\n    });\r\n  }\r\n}\r\n","// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\n\r\nimport { IError, validateTileLoad } from 'powerbi-models';\r\nimport { Service } from './service';\r\nimport { Embed, IEmbedConfigurationBase, ITileEmbedConfiguration } from './embed';\r\n\r\n/**\r\n * The Power BI tile embed component\r\n *\r\n * @export\r\n * @class Tile\r\n * @extends {Embed}\r\n */\r\nexport class Tile extends Embed {\r\n  /** @hidden */\r\n  static type = \"Tile\";\r\n  /** @hidden */\r\n  static allowedEvents = [\"tileClicked\", \"tileLoaded\"];\r\n\r\n  /**\r\n   * @hidden\r\n   */\r\n  constructor(service: Service, element: HTMLElement, baseConfig: IEmbedConfigurationBase, phasedRender?: boolean, isBootstrap?: boolean) {\r\n    const config = baseConfig as ITileEmbedConfiguration;\r\n    super(service, element, config, /* iframe */ undefined, phasedRender, isBootstrap);\r\n    this.loadPath = \"/tile/load\";\r\n    Array.prototype.push.apply(this.allowedEvents, Tile.allowedEvents);\r\n  }\r\n\r\n  /**\r\n   * The ID of the tile\r\n   *\r\n   * @returns {string}\r\n   */\r\n  getId(): string {\r\n    const config = this.config as ITileEmbedConfiguration;\r\n    const tileId = config.id || Tile.findIdFromEmbedUrl(this.config.embedUrl);\r\n\r\n    if (typeof tileId !== 'string' || tileId.length === 0) {\r\n      throw new Error(`Tile id is required, but it was not found. You must provide an id either as part of embed configuration.`);\r\n    }\r\n\r\n    return tileId;\r\n  }\r\n\r\n  /**\r\n   * Validate load configuration.\r\n   */\r\n  validate(config: IEmbedConfigurationBase): IError[] {\r\n    const embedConfig = config as ITileEmbedConfiguration;\r\n    return validateTileLoad(embedConfig);\r\n  }\r\n\r\n  /**\r\n   * Handle config changes.\r\n   *\r\n   * @returns {void}\r\n   */\r\n  configChanged(isBootstrap: boolean): void {\r\n    if (isBootstrap) {\r\n      return;\r\n    }\r\n\r\n    // Populate tile id into config object.\r\n    (this.config as ITileEmbedConfiguration).id = this.getId();\r\n  }\r\n\r\n  /**\r\n   * @hidden\r\n   * @returns {string}\r\n   */\r\n  getDefaultEmbedUrlEndpoint(): string {\r\n    return \"tileEmbed\";\r\n  }\r\n\r\n  /**\r\n   * Adds the ability to get tileId from url.\r\n   * By extracting the ID we can ensure that the ID is always explicitly provided as part of the load configuration.\r\n   *\r\n   * @hidden\r\n   * @static\r\n   * @param {string} url\r\n   * @returns {string}\r\n   */\r\n  static findIdFromEmbedUrl(url: string): string {\r\n    const tileIdRegEx = /tileId=\"?([^&]+)\"?/;\r\n    const tileIdMatch = url.match(tileIdRegEx);\r\n\r\n    let tileId: string;\r\n    if (tileIdMatch) {\r\n      tileId = tileIdMatch[1];\r\n    }\r\n\r\n    return tileId;\r\n  }\r\n}\r\n","// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\n\r\nimport { HttpPostMessage } from 'http-post-message';\r\n\r\n/**\r\n * Raises a custom event with event data on the specified HTML element.\r\n *\r\n * @export\r\n * @param {HTMLElement} element\r\n * @param {string} eventName\r\n * @param {*} eventData\r\n */\r\nexport function raiseCustomEvent(element: HTMLElement, eventName: string, eventData: any): void {\r\n  let customEvent: CustomEvent;\r\n  if (typeof CustomEvent === 'function') {\r\n    customEvent = new CustomEvent(eventName, {\r\n      detail: eventData,\r\n      bubbles: true,\r\n      cancelable: true\r\n    });\r\n  } else {\r\n    customEvent = document.createEvent('CustomEvent');\r\n    customEvent.initCustomEvent(eventName, true, true, eventData);\r\n  }\r\n\r\n  element.dispatchEvent(customEvent);\r\n}\r\n\r\n/**\r\n * Finds the index of the first value in an array that matches the specified predicate.\r\n *\r\n * @export\r\n * @template T\r\n * @param {(x: T) => boolean} predicate\r\n * @param {T[]} xs\r\n * @returns {number}\r\n */\r\nexport function findIndex<T>(predicate: (x: T) => boolean, xs: T[]): number {\r\n  if (!Array.isArray(xs)) {\r\n    throw new Error(`You attempted to call find with second parameter that was not an array. You passed: ${xs}`);\r\n  }\r\n\r\n  let index: number;\r\n  xs.some((x, i) => {\r\n    if (predicate(x)) {\r\n      index = i;\r\n      return true;\r\n    }\r\n  });\r\n\r\n  return index;\r\n}\r\n\r\n/**\r\n * Finds the first value in an array that matches the specified predicate.\r\n *\r\n * @export\r\n * @template T\r\n * @param {(x: T) => boolean} predicate\r\n * @param {T[]} xs\r\n * @returns {T}\r\n */\r\nexport function find<T>(predicate: (x: T) => boolean, xs: T[]): T {\r\n  const index = findIndex(predicate, xs);\r\n  return xs[index];\r\n}\r\n\r\nexport function remove<T>(predicate: (x: T) => boolean, xs: T[]): void {\r\n  const index = findIndex(predicate, xs);\r\n  xs.splice(index, 1);\r\n}\r\n\r\n// See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\r\n// TODO: replace in favor of using polyfill\r\n/**\r\n * Copies the values of all enumerable properties from one or more source objects to a target object, and returns the target object.\r\n *\r\n * @export\r\n * @param {any} args\r\n * @returns\r\n */\r\nexport function assign(...args): any {\r\n  var target = args[0];\r\n\r\n  'use strict';\r\n  if (target === undefined || target === null) {\r\n    throw new TypeError('Cannot convert undefined or null to object');\r\n  }\r\n\r\n  var output = Object(target);\r\n  for (var index = 1; index < arguments.length; index++) {\r\n    var source = arguments[index];\r\n    if (source !== undefined && source !== null) {\r\n      for (var nextKey in source) {\r\n        if (source.hasOwnProperty(nextKey)) {\r\n          output[nextKey] = source[nextKey];\r\n        }\r\n      }\r\n    }\r\n  }\r\n  return output;\r\n}\r\n\r\n/**\r\n * Generates a random 5 to 6 character string.\r\n *\r\n * @export\r\n * @returns {string}\r\n */\r\nexport function createRandomString(): string {\r\n  return getRandomValue().toString(36).substring(1);\r\n}\r\n\r\n/**\r\n * Generates a 20 character uuid.\r\n *\r\n * @export\r\n * @returns {string}\r\n */\r\nexport function generateUUID(): string {\r\n  let d = new Date().getTime();\r\n  if (typeof performance !== 'undefined' && typeof performance.now === 'function') {\r\n    d += performance.now();\r\n  }\r\n  return 'xxxxxxxxxxxxxxxxxxxx'.replace(/[xy]/g, function (_c) {\r\n    // Generate a random number, scaled from 0 to 15.\r\n    const r = (getRandomValue() % 16);\r\n\r\n    // Shift 4 times to divide by 16\r\n    d >>= 4;\r\n    return r.toString(16);\r\n  });\r\n}\r\n\r\n/**\r\n * Adds a parameter to the given url\r\n *\r\n * @export\r\n * @param {string} url\r\n * @param {string} paramName\r\n * @param {string} value\r\n * @returns {string}\r\n */\r\nexport function addParamToUrl(url: string, paramName: string, value: string): string {\r\n  const parameterPrefix = url.indexOf('?') > 0 ? '&' : '?';\r\n  url += parameterPrefix + paramName + '=' + value;\r\n  return url;\r\n}\r\n\r\n/**\r\n * Checks if the report is saved.\r\n *\r\n * @export\r\n * @param {HttpPostMessage} hpm\r\n * @param {string} uid\r\n * @param {Window} contentWindow\r\n * @returns {Promise<boolean>}\r\n */\r\nexport async function isSavedInternal(hpm: HttpPostMessage, uid: string, contentWindow: Window): Promise<boolean> {\r\n  try {\r\n    const response = await hpm.get<boolean>('/report/hasUnsavedChanges', { uid: uid }, contentWindow);\r\n    return !response.body;\r\n  } catch (response) {\r\n    throw response.body;\r\n  }\r\n}\r\n\r\n/**\r\n * Checks if the embed url is for RDL report.\r\n *\r\n * @export\r\n * @param {string} embedUrl\r\n * @returns {boolean}\r\n */\r\nexport function isRDLEmbed(embedUrl: string): boolean {\r\n  return embedUrl && embedUrl.toLowerCase().indexOf(\"/rdlembed?\") >= 0;\r\n}\r\n\r\n/**\r\n * Checks if the embed url contains autoAuth=true.\r\n *\r\n * @export\r\n * @param {string} embedUrl\r\n * @returns {boolean}\r\n */\r\nexport function autoAuthInEmbedUrl(embedUrl: string): boolean {\r\n  return embedUrl && decodeURIComponent(embedUrl).toLowerCase().indexOf(\"autoauth=true\") >= 0;\r\n}\r\n\r\n/**\r\n * Returns random number\r\n */\r\nexport function getRandomValue(): number {\r\n\r\n  // window.msCrypto for IE\r\n  const cryptoObj = window.crypto || (window as any).msCrypto;\r\n  const randomValueArray = new Uint32Array(1);\r\n  cryptoObj.getRandomValues(randomValueArray);\r\n\r\n  return randomValueArray[0];\r\n}\r\n\r\n/**\r\n * Returns the time interval between two dates in milliseconds\r\n *\r\n * @export\r\n * @param {Date} start\r\n * @param {Date} end\r\n * @returns {number}\r\n */\r\nexport function getTimeDiffInMilliseconds(start: Date, end: Date): number {\r\n  return Math.abs(start.getTime() - end.getTime());\r\n}\r\n\r\n/**\r\n * Checks if the embed type is for create\r\n *\r\n * @export\r\n * @param {string} embedType\r\n * @returns {boolean}\r\n */\r\nexport function isCreate(embedType: string): boolean {\r\n  return embedType === 'create' || embedType === 'quickcreate';\r\n}\r\n","// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\n\r\nimport {\r\n  DisplayOption,\r\n  FiltersLevel,\r\n  FiltersOperations,\r\n  ICustomPageSize,\r\n  IEmbedConfigurationBase,\r\n  IError,\r\n  IFilter,\r\n  IReportEmbedConfiguration,\r\n  IReportLoadConfiguration,\r\n  IUpdateFiltersRequest,\r\n  IVisual,\r\n  IVisualEmbedConfiguration,\r\n  LayoutType,\r\n  PageLevelFilters,\r\n  PageSizeType,\r\n  PagesLayout,\r\n  ReportLevelFilters,\r\n  VisualContainerDisplayMode,\r\n  VisualLevelFilters\r\n} from 'powerbi-models';\r\nimport { IHttpPostMessageResponse } from 'http-post-message';\r\nimport { Service } from './service';\r\nimport { Report } from './report';\r\nimport { Page } from './page';\r\nimport { VisualDescriptor } from './visualDescriptor';\r\n\r\n/**\r\n * The Power BI Visual embed component\r\n *\r\n * @export\r\n * @class Visual\r\n */\r\nexport class Visual extends Report {\r\n  /** @hidden */\r\n  static type = \"visual\";\r\n\r\n  /** @hidden */\r\n  static GetPagesNotSupportedError = \"Get pages is not supported while embedding a visual.\";\r\n  /** @hidden */\r\n  static SetPageNotSupportedError = \"Set page is not supported while embedding a visual.\";\r\n  /** @hidden */\r\n  static RenderNotSupportedError = \"render is not supported while embedding a visual.\";\r\n\r\n  /**\r\n   * Creates an instance of a Power BI Single Visual.\r\n   *\r\n   * @param {Service} service\r\n   * @param {HTMLElement} element\r\n   * @param {IEmbedConfiguration} config\r\n   * @hidden\r\n   */\r\n  constructor(service: Service, element: HTMLElement, baseConfig: IEmbedConfigurationBase, phasedRender?: boolean, isBootstrap?: boolean, iframe?: HTMLIFrameElement) {\r\n    super(service, element, baseConfig, phasedRender, isBootstrap, iframe);\r\n  }\r\n\r\n  /**\r\n   * @hidden\r\n   */\r\n  load(phasedRender?: boolean): Promise<void> {\r\n    const config = this.config as IVisualEmbedConfiguration;\r\n\r\n    if (!config.accessToken) {\r\n      // bootstrap flow.\r\n      return;\r\n    }\r\n\r\n    if (typeof config.pageName !== 'string' || config.pageName.length === 0) {\r\n      throw new Error(`Page name is required when embedding a visual.`);\r\n    }\r\n\r\n    if (typeof config.visualName !== 'string' || config.visualName.length === 0) {\r\n      throw new Error(`Visual name is required, but it was not found. You must provide a visual name as part of embed configuration.`);\r\n    }\r\n\r\n    // calculate custom layout settings and override config.\r\n    const width = config.width ? config.width : this.iframe.offsetWidth;\r\n    const height = config.height ? config.height : this.iframe.offsetHeight;\r\n\r\n    const pageSize: ICustomPageSize = {\r\n      type: PageSizeType.Custom,\r\n      width: width,\r\n      height: height,\r\n    };\r\n\r\n    const pagesLayout: PagesLayout = {};\r\n    pagesLayout[config.pageName] = {\r\n      defaultLayout: {\r\n        displayState: {\r\n          mode: VisualContainerDisplayMode.Hidden\r\n        }\r\n      },\r\n      visualsLayout: {}\r\n    };\r\n\r\n    pagesLayout[config.pageName].visualsLayout[config.visualName] = {\r\n      displayState: {\r\n        mode: VisualContainerDisplayMode.Visible\r\n      },\r\n      x: 1,\r\n      y: 1,\r\n      z: 1,\r\n      width: pageSize.width,\r\n      height: pageSize.height\r\n    };\r\n\r\n    config.settings = config.settings || {};\r\n    config.settings.filterPaneEnabled = false;\r\n    config.settings.navContentPaneEnabled = false;\r\n    config.settings.layoutType = LayoutType.Custom;\r\n    config.settings.customLayout = {\r\n      displayOption: DisplayOption.FitToPage,\r\n      pageSize: pageSize,\r\n      pagesLayout: pagesLayout\r\n    };\r\n\r\n    this.config = config;\r\n    return super.load(phasedRender);\r\n  }\r\n\r\n  /**\r\n   * Gets the list of pages within the report - not supported in visual\r\n   *\r\n   * @returns {Promise<Page[]>}\r\n   */\r\n  getPages(): Promise<Page[]> {\r\n    throw Visual.GetPagesNotSupportedError;\r\n  }\r\n\r\n  /**\r\n   * Sets the active page of the report - not supported in visual\r\n   *\r\n   * @param {string} pageName\r\n   * @returns {Promise<IHttpPostMessageResponse<void>>}\r\n   */\r\n  setPage(_pageName: string): Promise<IHttpPostMessageResponse<void>> {\r\n    throw Visual.SetPageNotSupportedError;\r\n  }\r\n\r\n  /**\r\n   * Render a preloaded report, using phased embedding API\r\n   *\r\n   * @hidden\r\n   * @returns {Promise<void>}\r\n   */\r\n  async render(_config?: IReportLoadConfiguration | IReportEmbedConfiguration): Promise<void> {\r\n    throw Visual.RenderNotSupportedError;\r\n  }\r\n\r\n  /**\r\n   * Gets the embedded visual descriptor object that contains the visual name, type, etc.\r\n   *\r\n   * ```javascript\r\n   * visual.getVisualDescriptor()\r\n   *   .then(visualDetails => { ... });\r\n   * ```\r\n   *\r\n   * @returns {Promise<VisualDescriptor>}\r\n   */\r\n  async getVisualDescriptor(): Promise<VisualDescriptor> {\r\n    const config = this.config as IVisualEmbedConfiguration;\r\n\r\n    try {\r\n      const response = await this.service.hpm.get<IVisual[]>(`/report/pages/${config.pageName}/visuals`, { uid: this.config.uniqueId }, this.iframe.contentWindow);\r\n      // Find the embedded visual from visuals of this page\r\n      // TODO: Use the Array.find method when ES6 is available\r\n      const embeddedVisuals = response.body.filter((pageVisual) => pageVisual.name === config.visualName);\r\n\r\n      if (embeddedVisuals.length === 0) {\r\n        const visualNotFoundError: IError = {\r\n          message: \"visualNotFound\",\r\n          detailedMessage: \"Visual not found\"\r\n        };\r\n\r\n        throw visualNotFoundError;\r\n      }\r\n\r\n      const embeddedVisual = embeddedVisuals[0];\r\n      const currentPage = this.page(config.pageName);\r\n      return new VisualDescriptor(currentPage, embeddedVisual.name, embeddedVisual.title, embeddedVisual.type, embeddedVisual.layout);\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Gets filters that are applied to the filter level.\r\n   * Default filter level is visual level.\r\n   *\r\n   * ```javascript\r\n   * visual.getFilters(filtersLevel)\r\n   *   .then(filters => {\r\n   *     ...\r\n   *   });\r\n   * ```\r\n   *\r\n   * @returns {Promise<IFilter[]>}\r\n   */\r\n  async getFilters(filtersLevel?: FiltersLevel): Promise<IFilter[]> {\r\n    const url: string = this.getFiltersLevelUrl(filtersLevel);\r\n    try {\r\n      const response = await this.service.hpm.get<IFilter[]>(url, { uid: this.config.uniqueId }, this.iframe.contentWindow);\r\n      return response.body;\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Updates filters at the filter level.\r\n   * Default filter level is visual level.\r\n   *\r\n   * ```javascript\r\n   * const filters: [\r\n   *    ...\r\n   * ];\r\n   *\r\n   * visual.updateFilters(FiltersOperations.Add, filters, filtersLevel)\r\n   *  .catch(errors => {\r\n   *    ...\r\n   *  });\r\n   * ```\r\n   *\r\n   * @param {(IFilter[])} filters\r\n   * @returns {Promise<IHttpPostMessageResponse<void>>}\r\n   */\r\n  async updateFilters(operation: FiltersOperations, filters: IFilter[], filtersLevel?: FiltersLevel): Promise<IHttpPostMessageResponse<void>> {\r\n    const updateFiltersRequest: IUpdateFiltersRequest = {\r\n      filtersOperation: operation,\r\n      filters: filters as VisualLevelFilters[] | PageLevelFilters[] | ReportLevelFilters[]\r\n    };\r\n\r\n    const url: string = this.getFiltersLevelUrl(filtersLevel);\r\n    try {\r\n      return await this.service.hpm.post<void>(url, updateFiltersRequest, { uid: this.config.uniqueId }, this.iframe.contentWindow);\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Sets filters at the filter level.\r\n   * Default filter level is visual level.\r\n   *\r\n   * ```javascript\r\n   * const filters: [\r\n   *    ...\r\n   * ];\r\n   *\r\n   * visual.setFilters(filters, filtersLevel)\r\n   *  .catch(errors => {\r\n   *    ...\r\n   *  });\r\n   * ```\r\n   *\r\n   * @param {(IFilter[])} filters\r\n   * @returns {Promise<IHttpPostMessageResponse<void>>}\r\n   */\r\n  async setFilters(filters: IFilter[], filtersLevel?: FiltersLevel): Promise<IHttpPostMessageResponse<void>> {\r\n    const url: string = this.getFiltersLevelUrl(filtersLevel);\r\n    try {\r\n      return await this.service.hpm.put<void>(url, filters, { uid: this.config.uniqueId }, this.iframe.contentWindow);\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Removes all filters from the current filter level.\r\n   * Default filter level is visual level.\r\n   *\r\n   * ```javascript\r\n   * visual.removeFilters(filtersLevel);\r\n   * ```\r\n   *\r\n   * @returns {Promise<IHttpPostMessageResponse<void>>}\r\n   */\r\n  async removeFilters(filtersLevel?: FiltersLevel): Promise<IHttpPostMessageResponse<void>> {\r\n    return await this.updateFilters(FiltersOperations.RemoveAll, undefined, filtersLevel);\r\n  }\r\n\r\n  /**\r\n   * @hidden\r\n   */\r\n  private getFiltersLevelUrl(filtersLevel: FiltersLevel): string {\r\n    const config = this.config as IVisualEmbedConfiguration;\r\n    switch (filtersLevel) {\r\n      case FiltersLevel.Report:\r\n        return `/report/filters`;\r\n      case FiltersLevel.Page:\r\n        return `/report/pages/${config.pageName}/filters`;\r\n      default:\r\n        return `/report/pages/${config.pageName}/visuals/${config.visualName}/filters`;\r\n    }\r\n  }\r\n}\r\n","// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\n\r\nimport {\r\n  ExportDataType,\r\n  FiltersOperations,\r\n  ICloneVisualRequest,\r\n  ICloneVisualResponse,\r\n  IExportDataRequest,\r\n  IExportDataResult,\r\n  IFilter,\r\n  ISlicerState,\r\n  ISortByVisualRequest,\r\n  IUpdateFiltersRequest,\r\n  IVisualLayout,\r\n  VisualContainerDisplayMode,\r\n  VisualLevelFilters\r\n} from 'powerbi-models';\r\nimport { IHttpPostMessageResponse } from 'http-post-message';\r\nimport { IFilterable } from './ifilterable';\r\nimport { IPageNode } from './page';\r\nimport { Report } from './report';\r\n\r\n/**\r\n * A Visual node within a report hierarchy\r\n *\r\n * @export\r\n * @interface IVisualNode\r\n */\r\nexport interface IVisualNode {\r\n  name: string;\r\n  title: string;\r\n  type: string;\r\n  layout: IVisualLayout;\r\n  page: IPageNode;\r\n}\r\n\r\n/**\r\n * A Power BI visual within a page\r\n *\r\n * @export\r\n * @class VisualDescriptor\r\n * @implements {IVisualNode}\r\n */\r\nexport class VisualDescriptor implements IVisualNode, IFilterable {\r\n  /**\r\n   * The visual name\r\n   *\r\n   * @type {string}\r\n   */\r\n  name: string;\r\n\r\n  /**\r\n   * The visual title\r\n   *\r\n   * @type {string}\r\n   */\r\n  title: string;\r\n\r\n  /**\r\n   * The visual type\r\n   *\r\n   * @type {string}\r\n   */\r\n  type: string;\r\n\r\n  /**\r\n   * The visual layout: position, size and visibility.\r\n   *\r\n   * @type {string}\r\n   */\r\n  layout: IVisualLayout;\r\n\r\n  /**\r\n   * The parent Power BI page that contains this visual\r\n   *\r\n   * @type {IPageNode}\r\n   */\r\n  page: IPageNode;\r\n\r\n  /**\r\n   * @hidden\r\n   */\r\n  constructor(page: IPageNode, name: string, title: string, type: string, layout: IVisualLayout) {\r\n    this.name = name;\r\n    this.title = title;\r\n    this.type = type;\r\n    this.layout = layout;\r\n    this.page = page;\r\n  }\r\n\r\n  /**\r\n   * Gets all visual level filters of the current visual.\r\n   *\r\n   * ```javascript\r\n   * visual.getFilters()\r\n   *  .then(filters => { ... });\r\n   * ```\r\n   *\r\n   * @returns {(Promise<IFilter[]>)}\r\n   */\r\n  async getFilters(): Promise<IFilter[]> {\r\n    try {\r\n      const response = await this.page.report.service.hpm.get<IFilter[]>(`/report/pages/${this.page.name}/visuals/${this.name}/filters`, { uid: this.page.report.config.uniqueId }, this.page.report.iframe.contentWindow);\r\n      return response.body;\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Update the filters for the current visual according to the operation: Add, replace all, replace by target or remove.\r\n   *\r\n   * ```javascript\r\n   * visual.updateFilters(FiltersOperations.Add, filters)\r\n   *   .catch(errors => { ... });\r\n   * ```\r\n   *\r\n   * @param {(IFilter[])} filters\r\n   * @returns {Promise<IHttpPostMessageResponse<void>>}\r\n   */\r\n  async updateFilters(operation: FiltersOperations, filters?: IFilter[]): Promise<IHttpPostMessageResponse<void>> {\r\n    const updateFiltersRequest: IUpdateFiltersRequest = {\r\n      filtersOperation: operation,\r\n      filters: filters as VisualLevelFilters[]\r\n    };\r\n\r\n    try {\r\n      return await this.page.report.service.hpm.post<void>(`/report/pages/${this.page.name}/visuals/${this.name}/filters`, updateFiltersRequest, { uid: this.page.report.config.uniqueId }, this.page.report.iframe.contentWindow);\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Removes all filters from the current visual.\r\n   *\r\n   * ```javascript\r\n   * visual.removeFilters();\r\n   * ```\r\n   *\r\n   * @returns {Promise<IHttpPostMessageResponse<void>>}\r\n   */\r\n  async removeFilters(): Promise<IHttpPostMessageResponse<void>> {\r\n    return await this.updateFilters(FiltersOperations.RemoveAll);\r\n  }\r\n\r\n  /**\r\n   * Sets the filters on the current visual to 'filters'.\r\n   *\r\n   * ```javascript\r\n   * visual.setFilters(filters);\r\n   *   .catch(errors => { ... });\r\n   * ```\r\n   *\r\n   * @param {(IFilter[])} filters\r\n   * @returns {Promise<IHttpPostMessageResponse<void>>}\r\n   */\r\n  async setFilters(filters: IFilter[]): Promise<IHttpPostMessageResponse<void>> {\r\n    try {\r\n      return await this.page.report.service.hpm.put<void>(`/report/pages/${this.page.name}/visuals/${this.name}/filters`, filters, { uid: this.page.report.config.uniqueId }, this.page.report.iframe.contentWindow);\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Exports Visual data.\r\n   * Can export up to 30K rows.\r\n   *\r\n   * @param rows: Optional. Default value is 30K, maximum value is 30K as well.\r\n   * @param exportDataType: Optional. Default is ExportDataType.Summarized.\r\n   * ```javascript\r\n   * visual.exportData()\r\n   *  .then(data => { ... });\r\n   * ```\r\n   *\r\n   * @returns {(Promise<IExportDataResult>)}\r\n   */\r\n  async exportData(exportDataType?: ExportDataType, rows?: number): Promise<IExportDataResult> {\r\n    const exportDataRequestBody: IExportDataRequest = {\r\n      rows: rows,\r\n      exportDataType: exportDataType\r\n    };\r\n\r\n    try {\r\n      const response = await this.page.report.service.hpm.post<IExportDataResult>(`/report/pages/${this.page.name}/visuals/${this.name}/exportData`, exportDataRequestBody, { uid: this.page.report.config.uniqueId }, this.page.report.iframe.contentWindow);\r\n      return response.body;\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Set slicer state.\r\n   * Works only for visuals of type slicer.\r\n   *\r\n   * @param state: A new state which contains the slicer filters.\r\n   * ```javascript\r\n   * visual.setSlicerState()\r\n   *  .then(() => { ... });\r\n   * ```\r\n   */\r\n  async setSlicerState(state: ISlicerState): Promise<IHttpPostMessageResponse<void>> {\r\n    try {\r\n      return await this.page.report.service.hpm.put<void>(`/report/pages/${this.page.name}/visuals/${this.name}/slicer`, state, { uid: this.page.report.config.uniqueId }, this.page.report.iframe.contentWindow);\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Get slicer state.\r\n   * Works only for visuals of type slicer.\r\n   *\r\n   * ```javascript\r\n   * visual.getSlicerState()\r\n   *  .then(state => { ... });\r\n   * ```\r\n   *\r\n   * @returns {(Promise<ISlicerState>)}\r\n   */\r\n  async getSlicerState(): Promise<ISlicerState> {\r\n    try {\r\n      const response = await this.page.report.service.hpm.get<ISlicerState>(`/report/pages/${this.page.name}/visuals/${this.name}/slicer`, { uid: this.page.report.config.uniqueId }, this.page.report.iframe.contentWindow);\r\n      return response.body;\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Clone existing visual to a new instance.\r\n   *\r\n   * @returns {(Promise<ICloneVisualResponse>)}\r\n   */\r\n  async clone(request: ICloneVisualRequest = {}): Promise<ICloneVisualResponse> {\r\n    try {\r\n      const response = await this.page.report.service.hpm.post<ICloneVisualResponse>(`/report/pages/${this.page.name}/visuals/${this.name}/clone`, request, { uid: this.page.report.config.uniqueId }, this.page.report.iframe.contentWindow);\r\n      return response.body;\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Sort a visual by dataField and direction.\r\n   *\r\n   * @param request: Sort by visual request.\r\n   *\r\n   * ```javascript\r\n   * visual.sortBy(request)\r\n   *  .then(() => { ... });\r\n   * ```\r\n   */\r\n  async sortBy(request: ISortByVisualRequest): Promise<IHttpPostMessageResponse<void>> {\r\n    try {\r\n      return await this.page.report.service.hpm.put<void>(`/report/pages/${this.page.name}/visuals/${this.name}/sortBy`, request, { uid: this.page.report.config.uniqueId }, this.page.report.iframe.contentWindow);\r\n    } catch (response) {\r\n      throw response.body;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Updates the position of a visual.\r\n   *\r\n   * ```javascript\r\n   * visual.moveVisual(x, y, z)\r\n   *   .catch(error => { ... });\r\n   * ```\r\n   *\r\n   * @param {number} x\r\n   * @param {number} y\r\n   * @param {number} z\r\n   * @returns {Promise<IHttpPostMessageResponse<void>>}\r\n   */\r\n  async moveVisual(x: number, y: number, z?: number): Promise<IHttpPostMessageResponse<void>> {\r\n    const pageName = this.page.name;\r\n    const visualName = this.name;\r\n    const report = this.page.report as Report;\r\n    return report.moveVisual(pageName, visualName, x, y, z);\r\n  }\r\n\r\n  /**\r\n   * Updates the display state of a visual.\r\n   *\r\n   * ```javascript\r\n   * visual.setVisualDisplayState(displayState)\r\n   *   .catch(error => { ... });\r\n   * ```\r\n   *\r\n   * @param {VisualContainerDisplayMode} displayState\r\n   * @returns {Promise<IHttpPostMessageResponse<void>>}\r\n   */\r\n  async setVisualDisplayState(displayState: VisualContainerDisplayMode): Promise<IHttpPostMessageResponse<void>> {\r\n    const pageName = this.page.name;\r\n    const visualName = this.name;\r\n    const report = this.page.report as Report;\r\n\r\n    return report.setVisualDisplayState(pageName, visualName, displayState);\r\n  }\r\n\r\n  /**\r\n   * Resize a visual.\r\n   *\r\n   * ```javascript\r\n   * visual.resizeVisual(width, height)\r\n   *   .catch(error => { ... });\r\n   * ```\r\n   *\r\n   * @param {number} width\r\n   * @param {number} height\r\n   * @returns {Promise<IHttpPostMessageResponse<void>>}\r\n   */\r\n  async resizeVisual(width: number, height: number): Promise<IHttpPostMessageResponse<void>> {\r\n    const pageName = this.page.name;\r\n    const visualName = this.name;\r\n    const report = this.page.report as Report;\r\n\r\n    return report.resizeVisual(pageName, visualName, width, height);\r\n  }\r\n}\r\n","/*! For license information please see windowPostMessageProxy.js.LICENSE.txt */\n!function(e,r){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=r():\"function\"==typeof define&&define.amd?define([],r):\"object\"==typeof exports?exports[\"window-post-message-proxy\"]=r():e[\"window-post-message-proxy\"]=r()}(self,(()=>(()=>{\"use strict\";var e={};return(()=>{var r=e;Object.defineProperty(r,\"__esModule\",{value:!0}),r.WindowPostMessageProxy=void 0;var s=function(){function e(r){void 0===r&&(r={processTrackingProperties:{addTrackingProperties:e.defaultAddTrackingProperties,getTrackingProperties:e.defaultGetTrackingProperties},isErrorMessage:e.defaultIsErrorMessage,receiveWindow:window,name:e.createRandomString()});var s=this;this.pendingRequestPromises={},this.addTrackingProperties=r.processTrackingProperties&&r.processTrackingProperties.addTrackingProperties||e.defaultAddTrackingProperties,this.getTrackingProperties=r.processTrackingProperties&&r.processTrackingProperties.getTrackingProperties||e.defaultGetTrackingProperties,this.isErrorMessage=r.isErrorMessage||e.defaultIsErrorMessage,this.receiveWindow=r.receiveWindow||window,this.name=r.name||e.createRandomString(),this.logMessages=r.logMessages||!1,this.eventSourceOverrideWindow=r.eventSourceOverrideWindow,this.suppressWarnings=r.suppressWarnings||!1,this.logMessages&&console.log(\"new WindowPostMessageProxy created with name: \".concat(this.name,\" receiving on window: \").concat(this.receiveWindow.document.title)),this.handlers=[],this.windowMessageHandler=function(e){return s.onMessageReceived(e)},this.start()}return e.defaultAddTrackingProperties=function(r,s){return r[e.messagePropertyName]=s,r},e.defaultGetTrackingProperties=function(r){return r[e.messagePropertyName]},e.defaultIsErrorMessage=function(e){return!!e.error},e.createDeferred=function(){var e={resolve:null,reject:null,promise:null},r=new Promise((function(r,s){e.resolve=r,e.reject=s}));return e.promise=r,e},e.createRandomString=function(){var e=window.crypto||window.msCrypto,r=new Uint32Array(1);return e.getRandomValues(r),r[0].toString(36).substring(1)},e.prototype.addHandler=function(e){this.handlers.push(e)},e.prototype.removeHandler=function(e){var r=this.handlers.indexOf(e);if(-1===r)throw new Error(\"You attempted to remove a handler but no matching handler was found.\");this.handlers.splice(r,1)},e.prototype.start=function(){this.receiveWindow.addEventListener(\"message\",this.windowMessageHandler)},e.prototype.stop=function(){this.receiveWindow.removeEventListener(\"message\",this.windowMessageHandler)},e.prototype.postMessage=function(r,s){var n={id:e.createRandomString()};this.addTrackingProperties(s,n),this.logMessages&&(console.log(\"\".concat(this.name,\" Posting message:\")),console.log(JSON.stringify(s,null,\"  \"))),r.postMessage(s,\"*\");var o=e.createDeferred();return this.pendingRequestPromises[n.id]=o,o.promise},e.prototype.sendResponse=function(e,r,s){this.addTrackingProperties(r,s),this.logMessages&&(console.log(\"\".concat(this.name,\" Sending response:\")),console.log(JSON.stringify(r,null,\"  \"))),e.postMessage(r,\"*\")},e.prototype.onMessageReceived=function(e){var r=this;this.logMessages&&(console.log(\"\".concat(this.name,\" Received message:\")),console.log(\"type: \".concat(e.type)),console.log(JSON.stringify(e.data,null,\"  \")));var s=this.eventSourceOverrideWindow||e.source;if(s){var n=e.data;if(\"object\"==typeof n){var o,t;try{o=this.getTrackingProperties(n)}catch(e){this.suppressWarnings||console.warn(\"Proxy(\".concat(this.name,\"): Error occurred when attempting to get tracking properties from incoming message:\"),JSON.stringify(n,null,\"  \"),\"Error: \",e)}if(o&&(t=this.pendingRequestPromises[o.id]),t){var i=!0;try{i=this.isErrorMessage(n)}catch(e){console.warn(\"Proxy(\".concat(this.name,\") Error occurred when trying to determine if message is consider an error response. Message: \"),JSON.stringify(n,null,\"\"),\"Error: \",e)}i?t.reject(n):t.resolve(n),delete this.pendingRequestPromises[o.id]}else this.handlers.some((function(e){var t=!1;try{t=e.test(n)}catch(e){r.suppressWarnings||console.warn(\"Proxy(\".concat(r.name,\"): Error occurred when handler was testing incoming message:\"),JSON.stringify(n,null,\"  \"),\"Error: \",e)}if(t){var i=void 0;try{i=Promise.resolve(e.handle(n))}catch(e){r.suppressWarnings||console.warn(\"Proxy(\".concat(r.name,\"): Error occurred when handler was processing incoming message:\"),JSON.stringify(n,null,\"  \"),\"Error: \",e),i=Promise.resolve()}return i.then((function(e){if(!e){var t=\"Handler for message: \".concat(JSON.stringify(n,null,\"  \"),\" did not return a response message. The default response message will be returned instead.\");r.suppressWarnings||console.warn(\"Proxy(\".concat(r.name,\"): \").concat(t)),e={warning:t}}r.sendResponse(s,e,o)})),!0}}))||this.suppressWarnings||console.warn(\"Proxy(\".concat(this.name,\") did not handle message. Handlers: \").concat(this.handlers.length,\"  Message: \").concat(JSON.stringify(n,null,\"\"),\".\"))}else this.suppressWarnings||console.warn(\"Proxy(\".concat(this.name,\"): Received message that was not an object. Discarding message\"))}},e.messagePropertyName=\"windowPostMessageProxy\",e}();r.WindowPostMessageProxy=s})(),e})()));\n//# sourceMappingURL=windowPostMessageProxy.js.map","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\n\r\n/**\r\n * @hidden\r\n */\r\nimport * as models from 'powerbi-models';\r\nimport * as service from './service';\r\nimport * as factories from './factories';\r\nimport { IFilterable } from './ifilterable';\r\n\r\nexport {\r\n  IFilterable,\r\n  service,\r\n  factories,\r\n  models\r\n};\r\nexport {\r\n  Report\r\n} from './report';\r\nexport {\r\n  Dashboard\r\n} from './dashboard';\r\nexport {\r\n  Tile\r\n} from './tile';\r\nexport {\r\n  IEmbedConfiguration,\r\n  IQnaEmbedConfiguration,\r\n  IVisualEmbedConfiguration,\r\n  IReportEmbedConfiguration,\r\n  IDashboardEmbedConfiguration,\r\n  ITileEmbedConfiguration,\r\n  IQuickCreateConfiguration,\r\n  IReportCreateConfiguration,\r\n  Embed,\r\n  ILocaleSettings,\r\n  IEmbedSettings,\r\n  IQnaSettings,\r\n} from './embed';\r\nexport {\r\n  Page\r\n} from './page';\r\nexport {\r\n  Qna\r\n} from './qna';\r\nexport {\r\n  Visual\r\n} from './visual';\r\nexport {\r\n  VisualDescriptor\r\n} from './visualDescriptor';\r\nexport {\r\n  QuickCreate\r\n} from './quickCreate';\r\nexport {\r\n  Create\r\n} from './create';\r\nexport {\r\n  BasicFilterBuilder,\r\n  AdvancedFilterBuilder,\r\n  TopNFilterBuilder,\r\n  RelativeDateFilterBuilder,\r\n  RelativeTimeFilterBuilder\r\n} from './FilterBuilders';\r\n\r\ndeclare var powerbi: service.Service;\r\ndeclare global {\r\n  interface Window {\r\n    powerbi: service.Service;\r\n    powerBISDKGlobalServiceInstanceName?: string;\r\n  }\r\n}\r\n\r\n/**\r\n * Makes Power BI available to the global object for use in applications that don't have module loading support.\r\n *\r\n * Note: create an instance of the class with the default configuration for normal usage, or save the class so that you can create an instance of the service.\r\n */\r\nvar powerbi = new service.Service(factories.hpmFactory, factories.wpmpFactory, factories.routerFactory);\r\n// powerBI SDK may use Power BI object under different key, in order to avoid name collisions\r\nif (window.powerbi && window.powerBISDKGlobalServiceInstanceName) {\r\n  window[window.powerBISDKGlobalServiceInstanceName] = powerbi;\r\n} else {\r\n  // Default to Power BI.\r\n  window.powerbi = powerbi;\r\n}\r\n"],"names":[],"sourceRoot":""}