{"version":3,"file":"src_app_views_maps_google-map_demo-google-map_module_ts.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAoL;AAChI;AACuB;AACV;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACwC;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,iDAAe;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,yDAAS;AAChD,mCAAmC,4CAAU;AAC7C;AACA;AACA,yCAAyC,sBAAsB;AAC/D;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,kCAAkC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,kEAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA,kQAAkQ;AAClQ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,4BAA4B,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,CAAC,sDAAW;AACvM,+BAA+B,+DAAwB,GAAG,wDAAwD,8GAA8G,aAAa,wgBAAwgB,sCAAsC,kEAA2B,gIAAgI;AACt7B,QAAQ,6DAAsB;AAC9B,QAAQ,uDAAgB;AACxB,QAAQ,0DAAmB;AAC3B,OAAO,wCAAwC;AAC/C;AACA,MAAM,MAAM,qDAAU,EAAE;AACxB,MAAM,MAAM,iDAAM,EAAE;AACpB,MAAM,6BAA6B,MAAM,iDAAM,SAAS,sDAAW,IAAI;AACvE;AACA;AACA,eAAe,MAAM,gDAAK,EAAE;AAC5B,cAAc,MAAM,gDAAK,EAAE;AAC3B,kBAAkB,MAAM,gDAAK,EAAE;AAC/B,eAAe,MAAM,gDAAK,EAAE;AAC5B,aAAa,MAAM,gDAAK,EAAE;AAC1B,gBAAgB,MAAM,gDAAK,EAAE;AAC7B,sBAAsB,MAAM,iDAAM,EAAE;AACpC,sBAAsB,MAAM,iDAAM,EAAE;AACpC,iBAAiB,MAAM,iDAAM,EAAE;AAC/B,oBAAoB,MAAM,iDAAM,EAAE;AAClC,gBAAgB,MAAM,iDAAM,EAAE;AAC9B,mBAAmB,MAAM,iDAAM,EAAE;AACjC,qBAAqB,MAAM,iDAAM,EAAE;AACnC,uBAAuB,MAAM,iDAAM,EAAE;AACrC,aAAa,MAAM,iDAAM,EAAE;AAC3B,yBAAyB,MAAM,iDAAM,EAAE;AACvC,qBAAqB,MAAM,iDAAM,EAAE;AACnC,oBAAoB,MAAM,iDAAM,EAAE;AAClC,qBAAqB,MAAM,iDAAM,EAAE;AACnC,0BAA0B,MAAM,iDAAM,EAAE;AACxC,sBAAsB,MAAM,iDAAM,EAAE;AACpC,oBAAoB,MAAM,iDAAM,EAAE;AAClC,oBAAoB,MAAM,iDAAM,EAAE;AAClC,oBAAoB,MAAM,iDAAM,EAAE;AAClC;AACA,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,iCAAiC,yEAA8B;AAC/D;AACA,+BAA+B,iEAAsB;AACrD,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,qDAAiB,EAAE,IAAI,MAAM,iDAAa,EAAE,IAAI;AACtF,sBAAsB,iDAAM;AAC5B,uBAAuB,sDAAW;AAClC,aAAa,GAAG,IAAI,IAAI;AACxB,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,MAAM;AAC1D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,+BAA+B,+DAAwB,aAAa,+DAAwB,CAAC,iDAAa;AACjK,kCAAkC,+DAAwB,GAAG,iFAAiF;AAC9I;AACA,MAAM,iBAAiB;AACvB,MAAM,MAAM,iDAAM;AAClB;AACA,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,iBAAiB,IAAI,MAAM,iDAAa,EAAE,IAAI,UAAU;;AAExF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,oCAAoC,+CAA+C,4EAA4E,mEAA4B,mDAAmD;AACnS,uCAAuC,+DAAwB,GAAG,2GAA2G,wEAAiC,GAAG;AACjN,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iDAAe,GAAG;AAC9C,2BAA2B,iDAAe;AAC1C,2BAA2B,iDAAe;AAC1C,8BAA8B,yCAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,wCAAwC,oDAAI;AAC5C;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mDAAa;AAC5B,kBAAkB,mDAAG;AACrB,kEAAkE,cAAc,0FAA0F;AAC1K;AACA,SAAS;AACT;AACA;AACA,2BAA2B,yDAAS;AACpC;AACA;AACA,SAAS;AACT;AACA;AACA,0BAA0B,yDAAS;AACnC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,0BAA0B,yDAAS;AACnC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,4BAA4B,+DAAwB,aAAa,+DAAwB,CAAC,iDAAa;AACxJ,+BAA+B,+DAAwB,GAAG,wDAAwD,wDAAwD,aAAa,gbAAgb,2BAA2B;AACloB;AACA,MAAM,iBAAiB;AACvB,MAAM,MAAM,iDAAM;AAClB;AACA;AACA,gBAAgB,MAAM,gDAAK,EAAE;AAC7B,eAAe,MAAM,gDAAK,EAAE;AAC5B,eAAe,MAAM,gDAAK,EAAE;AAC5B,sBAAsB,MAAM,iDAAM,EAAE;AACpC,oBAAoB,MAAM,iDAAM,EAAE;AAClC,uBAAuB,MAAM,iDAAM,EAAE;AACrC,mBAAmB,MAAM,iDAAM,EAAE;AACjC,sBAAsB,MAAM,iDAAM,EAAE;AACpC,wBAAwB,MAAM,iDAAM,EAAE;AACtC,wBAAwB,MAAM,iDAAM,EAAE;AACtC,wBAAwB,MAAM,iDAAM,EAAE;AACtC,uBAAuB,MAAM,iDAAM,EAAE;AACrC,wBAAwB,MAAM,iDAAM,EAAE;AACtC,sBAAsB,MAAM,iDAAM,EAAE;AACpC,sBAAsB,MAAM,iDAAM,EAAE;AACpC,yBAAyB,MAAM,iDAAM,EAAE;AACvC;AACA,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,iBAAiB,IAAI,MAAM,iDAAa,EAAE,IAAI,IAAI;AAClF,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iDAAe;AAC3C,wBAAwB,iDAAe;AACvC,2BAA2B,iDAAe;AAC1C,8BAA8B,yCAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,yDAAS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yDAAS;AACpC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,uBAAuB,yDAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,mCAAmC,+DAAwB,aAAa,+DAAwB,CAAC,iDAAa;AAC7K,sCAAsC,+DAAwB,GAAG,uEAAuE,0EAA0E,aAAa,kDAAkD,kCAAkC;AACnT;AACA,MAAM,iBAAiB;AACvB,MAAM,MAAM,iDAAM;AAClB;AACA;AACA,YAAY,MAAM,gDAAK,EAAE;AACzB,eAAe,MAAM,gDAAK,EAAE;AAC5B,kBAAkB,MAAM,gDAAK,EAAE;AAC/B,gBAAgB,MAAM,gDAAK,EAAE;AAC7B,iBAAiB,MAAM,iDAAM,EAAE;AAC/B,oBAAoB,MAAM,iDAAM,EAAE;AAClC;AACA,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,iBAAiB,IAAI,MAAM,iDAAa,EAAE,IAAI,IAAI;AAClF,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iDAAe,GAAG;AAC9C,6BAA6B,iDAAe;AAC5C,4BAA4B,yCAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oDAAI;AAC5C;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mDAAa,uCAAuC,mDAAG;AACtE,kEAAkE,cAAc,iFAAiF;AACjK;AACA,SAAS;AACT;AACA;AACA,2BAA2B,yDAAS;AACpC;AACA;AACA,SAAS;AACT;AACA;AACA,4BAA4B,yDAAS;AACrC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,gCAAgC,+DAAwB,aAAa,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,iDAAa;AACjN,mCAAmC,+DAAwB,GAAG,oGAAoG,0CAA0C,aAAa,sJAAsJ,+BAA+B;AAC9Y;AACA,MAAM,iBAAiB;AACvB,MAAM,MAAM,qDAAU,EAAE;AACxB,MAAM,MAAM,iDAAM;AAClB;AACA;AACA,gBAAgB,MAAM,gDAAK,EAAE;AAC7B,iBAAiB,MAAM,gDAAK,EAAE;AAC9B,mBAAmB,MAAM,iDAAM,EAAE;AACjC,uBAAuB,MAAM,iDAAM,EAAE;AACrC,iBAAiB,MAAM,iDAAM,EAAE;AAC/B,wBAAwB,MAAM,iDAAM,EAAE;AACtC,sBAAsB,MAAM,iDAAM,EAAE;AACpC;AACA,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,wBAAwB;AACxB,aAAa;AACb,KAAK,iBAAiB,UAAU,iBAAiB,IAAI,MAAM,qDAAiB,EAAE,IAAI,MAAM,iDAAa,EAAE,IAAI,IAAI;AAC/G,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iDAAe,GAAG;AAC9C,wBAAwB,iDAAe;AACvC,8BAA8B,yCAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oDAAI;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mDAAa,kCAAkC,mDAAG;AACjE,kEAAkE,cAAc,yBAAyB;AACzG;AACA,SAAS;AACT;AACA;AACA,2BAA2B,yDAAS;AACpC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,uBAAuB,yDAAS;AAChC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,8BAA8B,+DAAwB,aAAa,+DAAwB,CAAC,iDAAa;AAC9J,iCAAiC,+DAAwB,GAAG,6DAA6D,gCAAgC,aAAa,wGAAwG,6BAA6B;AAC3S;AACA,MAAM,iBAAiB;AACvB,MAAM,MAAM,iDAAM;AAClB;AACA;AACA,gBAAgB,MAAM,gDAAK,EAAE;AAC7B,YAAY,MAAM,gDAAK,EAAE;AACzB,iBAAiB,MAAM,iDAAM,EAAE;AAC/B,+BAA+B,MAAM,iDAAM,EAAE;AAC7C,sBAAsB,MAAM,iDAAM,EAAE;AACpC;AACA,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,iBAAiB,IAAI,MAAM,iDAAa,EAAE,IAAI,IAAI;AAClF,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kCAAkC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gDAAgD;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,cAAc,wOAAwO;AACnS;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,4BAA4B,+DAAwB,aAAa,+DAAwB,CAAC,iDAAa;AACxJ,+BAA+B,+DAAwB,GAAG,wDAAwD,kGAAkG,aAAa,4nBAA4nB,sCAAsC,kEAA2B,GAAG;AACj6B;AACA,MAAM,iBAAiB;AACvB,MAAM,MAAM,iDAAM;AAClB;AACA;AACA,cAAc,MAAM,gDAAK,EAAE;AAC3B,iBAAiB,MAAM,gDAAK,EAAE;AAC9B,cAAc,MAAM,gDAAK,EAAE;AAC3B,kBAAkB,MAAM,gDAAK,EAAE;AAC/B,gBAAgB,MAAM,gDAAK,EAAE;AAC7B,yBAAyB,MAAM,iDAAM,EAAE;AACvC,iBAAiB,MAAM,iDAAM,EAAE;AAC/B,yBAAyB,MAAM,iDAAM,EAAE;AACvC,sBAAsB,MAAM,iDAAM,EAAE;AACpC,oBAAoB,MAAM,iDAAM,EAAE;AAClC,gBAAgB,MAAM,iDAAM,EAAE;AAC9B,mBAAmB,MAAM,iDAAM,EAAE;AACjC,yBAAyB,MAAM,iDAAM,EAAE;AACvC,qBAAqB,MAAM,iDAAM,EAAE;AACnC,oBAAoB,MAAM,iDAAM,EAAE;AAClC,oBAAoB,MAAM,iDAAM,EAAE;AAClC,qBAAqB,MAAM,iDAAM,EAAE;AACnC,oBAAoB,MAAM,iDAAM,EAAE;AAClC,qBAAqB,MAAM,iDAAM,EAAE;AACnC,mBAAmB,MAAM,iDAAM,EAAE;AACjC,wBAAwB,MAAM,iDAAM,EAAE;AACtC,sBAAsB,MAAM,iDAAM,EAAE;AACpC,qBAAqB,MAAM,iDAAM,EAAE;AACnC,qBAAqB,MAAM,iDAAM,EAAE;AACnC,uBAAuB,MAAM,iDAAM,EAAE;AACrC,sBAAsB,MAAM,iDAAM,EAAE;AACpC;AACA,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,iBAAiB,IAAI,MAAM,iDAAa,EAAE,IAAI,IAAI;AAClF,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yCAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mQAAmQ;AACnR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,yDAAS;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,qCAAqC,+DAAwB,aAAa,+DAAwB,CAAC,iDAAa;AACnL,wCAAwC,+DAAwB,GAAG,iJAAiJ;AACpN,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,YAAY,seAAse,aAAa,oEAAoE,+CAA+C,kEAA2B,yGAAyG;AAC7vB,QAAQ,6DAAsB;AAC9B,QAAQ,0DAAmB;AAC3B,OAAO,wCAAwC;AAC/C;AACA,MAAM,iBAAiB;AACvB,MAAM,MAAM,iDAAM;AAClB;AACA;AACA,oBAAoB,MAAM,gDAAK,EAAE;AACjC,sBAAsB,MAAM,gDAAK,EAAE;AACnC,kBAAkB,MAAM,gDAAK,EAAE;AAC/B,oBAAoB,MAAM,gDAAK,EAAE;AACjC,mBAAmB,MAAM,gDAAK,EAAE;AAChC,qBAAqB,MAAM,gDAAK,EAAE;AAClC,0BAA0B,MAAM,gDAAK,EAAE;AACvC,iBAAiB,MAAM,gDAAK,EAAE;AAC9B,qBAAqB,MAAM,gDAAK,EAAE;AAClC,uBAAuB,MAAM,gDAAK,EAAE;AACpC,kBAAkB,MAAM,gDAAK,EAAE;AAC/B,mBAAmB,MAAM,gDAAK,EAAE;AAChC,gBAAgB,MAAM,gDAAK,EAAE;AAC7B,2BAA2B,MAAM,gDAAK,EAAE;AACxC,eAAe,MAAM,gDAAK,EAAE;AAC5B,cAAc,MAAM,gDAAK,EAAE;AAC3B,eAAe,MAAM,gDAAK,EAAE;AAC5B,oBAAoB,MAAM,gDAAK,EAAE;AACjC,wBAAwB,MAAM,iDAAM,EAAE;AACtC,sBAAsB,MAAM,iDAAM,EAAE;AACpC,iBAAiB,MAAM,0DAAe,sBAAsB,mBAAmB,IAAI;AACnF;AACA,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,iCAAiC,yEAA8B;AAC/D;AACA,+BAA+B,iEAAsB;AACrD,aAAa;AACb,KAAK,iBAAiB,UAAU,iBAAiB,IAAI,MAAM,iDAAa,EAAE,IAAI,IAAI;AAClF,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,0DAAe;AACjC,gCAAgC,mBAAmB;AACnD,SAAS,GAAG,IAAI;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iDAAe,GAAG;AAC9C,0BAA0B,iDAAe;AACzC,8BAA8B,yCAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oDAAI;AAC5C;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mDAAa,oCAAoC,mDAAG;AACnE,kEAAkE,cAAc,+BAA+B;AAC/G;AACA,SAAS;AACT;AACA;AACA,2BAA2B,yDAAS;AACpC;AACA;AACA,SAAS;AACT;AACA;AACA,yBAAyB,yDAAS;AAClC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,6BAA6B,+DAAwB,aAAa,+DAAwB,CAAC,iDAAa;AAC3J,gCAAgC,+DAAwB,GAAG,0DAA0D,oCAAoC,aAAa,sYAAsY,4BAA4B;AACxkB;AACA,MAAM,iBAAiB;AACvB,MAAM,MAAM,iDAAM;AAClB;AACA;AACA,gBAAgB,MAAM,gDAAK,EAAE;AAC7B,cAAc,MAAM,gDAAK,EAAE;AAC3B,qBAAqB,MAAM,iDAAM,EAAE;AACnC,wBAAwB,MAAM,iDAAM,EAAE;AACtC,oBAAoB,MAAM,iDAAM,EAAE;AAClC,uBAAuB,MAAM,iDAAM,EAAE;AACrC,yBAAyB,MAAM,iDAAM,EAAE;AACvC,yBAAyB,MAAM,iDAAM,EAAE;AACvC,yBAAyB,MAAM,iDAAM,EAAE;AACvC,wBAAwB,MAAM,iDAAM,EAAE;AACtC,yBAAyB,MAAM,iDAAM,EAAE;AACvC,uBAAuB,MAAM,iDAAM,EAAE;AACrC,0BAA0B,MAAM,iDAAM,EAAE;AACxC;AACA,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,iBAAiB,IAAI,MAAM,iDAAa,EAAE,IAAI,IAAI;AAClF,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iDAAe,GAAG;AAC9C,yBAAyB,iDAAe;AACxC,8BAA8B,yCAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oDAAI;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mDAAa,mCAAmC,mDAAG;AAClE,kEAAkE,cAAc,4BAA4B;AAC5G;AACA,SAAS;AACT;AACA;AACA,2BAA2B,yDAAS;AACpC;AACA;AACA,SAAS;AACT;AACA;AACA,wBAAwB,yDAAS;AACjC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,8BAA8B,+DAAwB,aAAa,+DAAwB,CAAC,iDAAa;AAC9J,iCAAiC,+DAAwB,GAAG,4DAA4D,kCAAkC,aAAa,4ZAA4Z,6BAA6B;AAChmB;AACA,MAAM,iBAAiB;AACvB,MAAM,MAAM,iDAAM;AAClB;AACA;AACA,gBAAgB,MAAM,gDAAK,EAAE;AAC7B,aAAa,MAAM,gDAAK,EAAE;AAC1B,sBAAsB,MAAM,iDAAM,EAAE;AACpC,yBAAyB,MAAM,iDAAM,EAAE;AACvC,qBAAqB,MAAM,iDAAM,EAAE;AACnC,wBAAwB,MAAM,iDAAM,EAAE;AACtC,0BAA0B,MAAM,iDAAM,EAAE;AACxC,0BAA0B,MAAM,iDAAM,EAAE;AACxC,0BAA0B,MAAM,iDAAM,EAAE;AACxC,yBAAyB,MAAM,iDAAM,EAAE;AACvC,0BAA0B,MAAM,iDAAM,EAAE;AACxC,wBAAwB,MAAM,iDAAM,EAAE;AACtC,2BAA2B,MAAM,iDAAM,EAAE;AACzC;AACA,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,iBAAiB,IAAI,MAAM,iDAAa,EAAE,IAAI,IAAI;AAClF,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iDAAe,GAAG;AAC9C,2BAA2B,iDAAe;AAC1C,8BAA8B,yCAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oDAAI;AAC5C;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mDAAa,qCAAqC,mDAAG;AACpE,kEAAkE,cAAc,kCAAkC;AAClH;AACA,SAAS;AACT;AACA;AACA,2BAA2B,yDAAS;AACpC;AACA;AACA,SAAS;AACT;AACA;AACA,0BAA0B,yDAAS;AACnC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,+BAA+B,+DAAwB,aAAa,+DAAwB,CAAC,iDAAa;AACjK,kCAAkC,+DAAwB,GAAG,8DAA8D,sCAAsC,aAAa,kdAAkd,8BAA8B;AAC9pB;AACA,MAAM,iBAAiB;AACvB,MAAM,MAAM,iDAAM;AAClB;AACA;AACA,gBAAgB,MAAM,gDAAK,EAAE;AAC7B,eAAe,MAAM,gDAAK,EAAE;AAC5B,sBAAsB,MAAM,iDAAM,EAAE;AACpC,uBAAuB,MAAM,iDAAM,EAAE;AACrC,0BAA0B,MAAM,iDAAM,EAAE;AACxC,sBAAsB,MAAM,iDAAM,EAAE;AACpC,yBAAyB,MAAM,iDAAM,EAAE;AACvC,2BAA2B,MAAM,iDAAM,EAAE;AACzC,2BAA2B,MAAM,iDAAM,EAAE;AACzC,2BAA2B,MAAM,iDAAM,EAAE;AACzC,0BAA0B,MAAM,iDAAM,EAAE;AACxC,2BAA2B,MAAM,iDAAM,EAAE;AACzC,yBAAyB,MAAM,iDAAM,EAAE;AACvC,4BAA4B,MAAM,iDAAM,EAAE;AAC1C;AACA,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,iBAAiB,IAAI,MAAM,iDAAa,EAAE,IAAI,IAAI;AAClF,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iDAAe;AAC/C,8BAA8B,yCAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oDAAI;AAC5C;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,mDAAG;AACzC,sCAAsC;AACtC;AACA,SAAS;AACT;AACA;AACA,oCAAoC,yDAAS;AAC7C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,kCAAkC,+DAAwB,aAAa,+DAAwB,CAAC,iDAAa;AAC1K,qCAAqC,+DAAwB,GAAG,qEAAqE,4BAA4B,iCAAiC;AAClM;AACA,MAAM,iBAAiB;AACvB,MAAM,MAAM,iDAAM;AAClB;AACA;AACA,oBAAoB,MAAM,gDAAK,EAAE;AACjC;AACA,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,iBAAiB,IAAI,MAAM,iDAAa,EAAE,IAAI,IAAI;AAClF,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,kCAAkC,6CAA6C,wEAAwE,mEAA4B,+CAA+C;AACrR,qCAAqC,+DAAwB,GAAG,qGAAqG,wEAAiC,GAAG;AACzM,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D,sCAAsC,8DAAuB,GAAG,wBAAwB;AACxF,sCAAsC,8DAAuB,GAAG;AAChE,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,mDAAQ;AACtB;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB;AACtB,eAAe,mDAAmD,gEAAyB,qBAAqB,qbAAqb,IAAI;;AAEziB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEyO;;;;;;;;;;;;;;;;;;;;;;;;AC1hGhL;AACV;AAC4B;AAElB;AACP;AACM;;;;AAgBjD,MAAM,mBAAmB;;AACvB,0BAAM,GAAQ,2DAAM,CAAC;sFADjB,mBAAmB;gHAAnB,mBAAmB;oHATrB;YACP,mEAAY;YACZ,mEAAU;YACV,kEAAqB,CAAC,2DAAM,CAAC;YAC7B,kEAAgB;SACjB;mIAIU,mBAAmB,mBAZ5B,oFAAyB,0FAIzB,mEAAY;QACZ,mEAAU,6DAEV,kEAAgB,aAER,oFAAyB;;;;;;;;;;;;;;;;ACpBsC;AAEpE,MAAM,MAAM,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,oFAAyB,EAAE,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;ACArC;AACW;;;;;;ICHjD,sEAA+B;IAC3B,2EAA6C;IACjD,4DAAM;;;IADU,0DAAmB;IAAnB,mFAAmB;;ADInC,oCAAoC;AACpC,MAAM,OAAO,GAAG,EAAE;AAMX,MAAM,2BAA2B;IAQpC,YAAY,UAAsB;QALlC,YAAO,GAA2B;YAC9B,MAAM,EAAE,EAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAC;YAC3B,IAAI,EAAE,CAAC;SACV,CAAC;QAGE,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,+CAA+C,OAAO,EAAE,EAAE,UAAU,CAAC,CAAC,IAAI,CACxG,mDAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EACf,0DAAU,CAAC,GAAG,EAAE,CAAC,wCAAE,CAAC,KAAK,CAAC,CAAC,CAC9B,CAAC;IACN,CAAC;IAED,QAAQ,KAAW,CAAC;;sGAfX,2BAA2B;yHAA3B,2BAA2B;QCZxC,uHAEM;;;QAFA,gJAAuB;;;;;;;;;;;;;;;;;;;;ACEoC;;;;AAQ1D,MAAM,yBAAyB;IALtC;QAME,SAAI,GAAG,WAAW,CAAC;QACnB,QAAG,GAAG,EAAE,CAAC;QACT,qBAAgB,GAAqB,0EAAoB,CAAC;KAC3D;;kGAJY,yBAAyB;uHAAzB,yBAAyB;QCVtC,kFAA8E;QAC1E,oEAAG;QAAA,uIACC;QAAA,uEAA8F;QAAA,qFAA0B;QAAA,4DAAI;QAAA,+FAC1F;QAAA,uEAA4F;QAAA,+DAAI;QAAA,4DAAI;QAAA,4DAAC;QAAA,4DAAI;QAC/I,6EAA0D;QAC9D,4DAAe;;QALD,0EAAa;QAIT,0DAA4B;QAA5B,yFAA4B;;;;;;;;;;;;;;;;;;;ACDuE;AACD;AAClD;AAE3D,MAAM,oBAAoB,GAAqB;IACpD;QACE,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,OAAO;QACf,MAAM,EAAE,+HAAuB;QAC/B,OAAO,EAAE;YACP,GAAG,EAAE,mBAAO,CAAC,yCAA8B,CAAC;SAC7C;KACF;IACD;QACE,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,UAAU;QAClB,MAAM,EAAE,8HAAiB;QACzB,OAAO,EAAE;YACP;gBACE,KAAK,EAAE,OAAO;gBACd,MAAM,EAAE,OAAO;gBACf,WAAW,EAAE,EAAE;gBACf,SAAS,EAAE,mBAAO,CAAC,6CAAkC,CAAC;gBACtD,IAAI,EAAE,mBAAO,CAAC,kDAAuC,CAAC;gBACtD,MAAM,EAAE,2EAA2B;aACpC;SACF;KACF;CACF,CAAC;;;;;;;;;;;;;;;AC/BF,iEAAe,oGAAoG;;;;;;;;;;;;;;ACAnH,iEAAe,UAAU,oBAAoB,uBAAuB,aAAa,aAAa,4BAA4B,aAAa,iBAAiB,YAAY,aAAa,kBAAkB,sBAAsB,sFAAsF,mFAAmF,iEAAiE,uCAAuC,+CAA+C,qBAAqB,kBAAkB,8BAA8B,iDAAiD,6FAA6F,QAAQ,8GAA8G,SAAS,gCAAgC,KAAK,KAAK;;;;;;;;;;;;;;ACAr5B,iEAAe,UAAU,mBAAmB,4BAA4B,mBAAmB,0CAA0C,+BAA+B,KAAK","sources":["./node_modules/@angular/google-maps/__ivy_ngcc__/fesm2015/google-maps.js","./src/app/views/maps/google-map/demo-google-map.module.ts","./src/app/views/maps/google-map/demo-google-map.routes.ts","./src/app/views/maps/google-map/demos/basic/basic.ts","./src/app/views/maps/google-map/demos/basic/basic.html","./src/app/views/maps/google-map/google-map-section.component.ts","./src/app/views/maps/google-map/google-map-section.component.html","./src/app/views/maps/google-map/google-map-section.list.ts","webpack:///./src/app/views/maps/google-map/demos/basic/basic.html?7632","webpack:///./src/app/views/maps/google-map/demos/basic/basic.ts?b724","./src/app/views/maps/google-map/docs/usage.md"],"sourcesContent":["import { Component, ChangeDetectionStrategy, ViewEncapsulation, ElementRef, NgZone, Inject, PLATFORM_ID, Input, Output, Directive, ContentChildren, NgModule } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { BehaviorSubject, Observable, Subject, combineLatest } from 'rxjs';\nimport { switchMap, take, map, takeUntil } from 'rxjs/operators';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Manages event on a Google Maps object, ensuring that events are added only when necessary. */\nimport * as ɵngcc0 from '@angular/core';\n\nconst _c0 = [\"*\"];\nclass MapEventManager {\n constructor(_ngZone) {\n this._ngZone = _ngZone;\n /** Pending listeners that were added before the target was set. */\n this._pending = [];\n this._listeners = [];\n this._targetStream = new BehaviorSubject(undefined);\n }\n /** Clears all currently-registered event listeners. */\n _clearListeners() {\n for (const listener of this._listeners) {\n listener.remove();\n }\n this._listeners = [];\n }\n /** Gets an observable that adds an event listener to the map when a consumer subscribes to it. */\n getLazyEmitter(name) {\n return this._targetStream.pipe(switchMap(target => {\n const observable = new Observable(observer => {\n // If the target hasn't been initialized yet, cache the observer so it can be added later.\n if (!target) {\n this._pending.push({ observable, observer });\n return undefined;\n }\n const listener = target.addListener(name, (event) => {\n this._ngZone.run(() => observer.next(event));\n });\n this._listeners.push(listener);\n return () => listener.remove();\n });\n return observable;\n }));\n }\n /** Sets the current target that the manager should bind events to. */\n setTarget(target) {\n const currentTarget = this._targetStream.value;\n if (target === currentTarget) {\n return;\n }\n // Clear the listeners from the pre-existing target.\n if (currentTarget) {\n this._clearListeners();\n this._pending = [];\n }\n this._targetStream.next(target);\n // Add the listeners that were bound before the map was initialized.\n this._pending.forEach(subscriber => subscriber.observable.subscribe(subscriber.observer));\n this._pending = [];\n }\n /** Destroys the manager and clears the event listeners. */\n destroy() {\n this._clearListeners();\n this._pending = [];\n this._targetStream.complete();\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** default options set to the Googleplex */\nconst DEFAULT_OPTIONS = {\n center: { lat: 37.421995, lng: -122.084092 },\n zoom: 17\n};\n/** Arbitrary default height for the map element */\nconst DEFAULT_HEIGHT = '500px';\n/** Arbitrary default width for the map element */\nconst DEFAULT_WIDTH = '500px';\n/**\n * Angular component that renders a Google Map via the Google Maps JavaScript\n * API.\n * @see https://developers.google.com/maps/documentation/javascript/reference/\n */\nclass GoogleMap {\n constructor(_elementRef, _ngZone, platformId) {\n this._elementRef = _elementRef;\n this._ngZone = _ngZone;\n this._eventManager = new MapEventManager(this._ngZone);\n /** Height of the map. Set this to `null` if you'd like to control the height through CSS. */\n this.height = DEFAULT_HEIGHT;\n /** Width of the map. Set this to `null` if you'd like to control the width through CSS. */\n this.width = DEFAULT_WIDTH;\n this._options = DEFAULT_OPTIONS;\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.bounds_changed\n */\n this.boundsChanged = this._eventManager.getLazyEmitter('bounds_changed');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.center_changed\n */\n this.centerChanged = this._eventManager.getLazyEmitter('center_changed');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.click\n */\n this.mapClick = this._eventManager\n .getLazyEmitter('click');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.dblclick\n */\n this.mapDblclick = this._eventManager.getLazyEmitter('dblclick');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.drag\n */\n this.mapDrag = this._eventManager.getLazyEmitter('drag');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.dragend\n */\n this.mapDragend = this._eventManager.getLazyEmitter('dragend');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.dragstart\n */\n this.mapDragstart = this._eventManager.getLazyEmitter('dragstart');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.heading_changed\n */\n this.headingChanged = this._eventManager.getLazyEmitter('heading_changed');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.idle\n */\n this.idle = this._eventManager.getLazyEmitter('idle');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.maptypeid_changed\n */\n this.maptypeidChanged = this._eventManager.getLazyEmitter('maptypeid_changed');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.mousemove\n */\n this.mapMousemove = this._eventManager.getLazyEmitter('mousemove');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.mouseout\n */\n this.mapMouseout = this._eventManager.getLazyEmitter('mouseout');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.mouseover\n */\n this.mapMouseover = this._eventManager.getLazyEmitter('mouseover');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/map#Map.projection_changed\n */\n this.projectionChanged = this._eventManager.getLazyEmitter('projection_changed');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.rightclick\n */\n this.mapRightclick = this._eventManager.getLazyEmitter('rightclick');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.tilesloaded\n */\n this.tilesloaded = this._eventManager.getLazyEmitter('tilesloaded');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.tilt_changed\n */\n this.tiltChanged = this._eventManager.getLazyEmitter('tilt_changed');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.zoom_changed\n */\n this.zoomChanged = this._eventManager.getLazyEmitter('zoom_changed');\n this._isBrowser = isPlatformBrowser(platformId);\n if (this._isBrowser) {\n const googleMapsWindow = window;\n if (!googleMapsWindow.google && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Namespace google not found, cannot construct embedded google ' +\n 'map. Please install the Google Maps JavaScript API: ' +\n 'https://developers.google.com/maps/documentation/javascript/' +\n 'tutorial#Loading_the_Maps_API');\n }\n }\n }\n set center(center) {\n this._center = center;\n }\n set zoom(zoom) {\n this._zoom = zoom;\n }\n set options(options) {\n this._options = options || DEFAULT_OPTIONS;\n }\n ngOnChanges(changes) {\n if (changes['height'] || changes['width']) {\n this._setSize();\n }\n const googleMap = this.googleMap;\n if (googleMap) {\n if (changes['options']) {\n googleMap.setOptions(this._combineOptions());\n }\n if (changes['center'] && this._center) {\n googleMap.setCenter(this._center);\n }\n // Note that the zoom can be zero.\n if (changes['zoom'] && this._zoom != null) {\n googleMap.setZoom(this._zoom);\n }\n if (changes['mapTypeId'] && this.mapTypeId) {\n googleMap.setMapTypeId(this.mapTypeId);\n }\n }\n }\n ngOnInit() {\n // It should be a noop during server-side rendering.\n if (this._isBrowser) {\n this._mapEl = this._elementRef.nativeElement.querySelector('.map-container');\n this._setSize();\n // Create the object outside the zone so its events don't trigger change detection.\n // We'll bring it back in inside the `MapEventManager` only for the events that the\n // user has subscribed to.\n this._ngZone.runOutsideAngular(() => {\n this.googleMap = new google.maps.Map(this._mapEl, this._combineOptions());\n });\n this._eventManager.setTarget(this.googleMap);\n }\n }\n ngOnDestroy() {\n this._eventManager.destroy();\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.fitBounds\n */\n fitBounds(bounds, padding) {\n this._assertInitialized();\n this.googleMap.fitBounds(bounds, padding);\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.panBy\n */\n panBy(x, y) {\n this._assertInitialized();\n this.googleMap.panBy(x, y);\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.panTo\n */\n panTo(latLng) {\n this._assertInitialized();\n this.googleMap.panTo(latLng);\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.panToBounds\n */\n panToBounds(latLngBounds, padding) {\n this._assertInitialized();\n this.googleMap.panToBounds(latLngBounds, padding);\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.getBounds\n */\n getBounds() {\n this._assertInitialized();\n return this.googleMap.getBounds() || null;\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.getCenter\n */\n getCenter() {\n this._assertInitialized();\n return this.googleMap.getCenter();\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.getClickableIcons\n */\n getClickableIcons() {\n this._assertInitialized();\n return this.googleMap.getClickableIcons();\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.getHeading\n */\n getHeading() {\n this._assertInitialized();\n return this.googleMap.getHeading();\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.getMapTypeId\n */\n getMapTypeId() {\n this._assertInitialized();\n return this.googleMap.getMapTypeId();\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.getProjection\n */\n getProjection() {\n this._assertInitialized();\n return this.googleMap.getProjection();\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.getStreetView\n */\n getStreetView() {\n this._assertInitialized();\n return this.googleMap.getStreetView();\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.getTilt\n */\n getTilt() {\n this._assertInitialized();\n return this.googleMap.getTilt();\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.getZoom\n */\n getZoom() {\n this._assertInitialized();\n return this.googleMap.getZoom();\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.controls\n */\n get controls() {\n this._assertInitialized();\n return this.googleMap.controls;\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.data\n */\n get data() {\n this._assertInitialized();\n return this.googleMap.data;\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.mapTypes\n */\n get mapTypes() {\n this._assertInitialized();\n return this.googleMap.mapTypes;\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.overlayMapTypes\n */\n get overlayMapTypes() {\n this._assertInitialized();\n return this.googleMap.overlayMapTypes;\n }\n _setSize() {\n if (this._mapEl) {\n const styles = this._mapEl.style;\n styles.height =\n this.height === null ? '' : (coerceCssPixelValue(this.height) || DEFAULT_HEIGHT);\n styles.width = this.width === null ? '' : (coerceCssPixelValue(this.width) || DEFAULT_WIDTH);\n }\n }\n /** Combines the center and zoom and the other map options into a single object */\n _combineOptions() {\n var _a, _b;\n const options = this._options || {};\n return Object.assign(Object.assign({}, options), { \n // It's important that we set **some** kind of `center` and `zoom`, otherwise\n // Google Maps will render a blank rectangle which looks broken.\n center: this._center || options.center || DEFAULT_OPTIONS.center, zoom: (_b = (_a = this._zoom) !== null && _a !== void 0 ? _a : options.zoom) !== null && _b !== void 0 ? _b : DEFAULT_OPTIONS.zoom, mapTypeId: this.mapTypeId || options.mapTypeId });\n }\n /** Asserts that the map has been initialized. */\n _assertInitialized() {\n if (!this.googleMap && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Cannot access Google Map information before the API has been initialized. ' +\n 'Please wait for the API to load before trying to interact with it.');\n }\n }\n}\nGoogleMap.ɵfac = function GoogleMap_Factory(t) { return new (t || GoogleMap)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(PLATFORM_ID)); };\nGoogleMap.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: GoogleMap, selectors: [[\"google-map\"]], inputs: { height: \"height\", width: \"width\", center: \"center\", zoom: \"zoom\", options: \"options\", mapTypeId: \"mapTypeId\" }, outputs: { boundsChanged: \"boundsChanged\", centerChanged: \"centerChanged\", mapClick: \"mapClick\", mapDblclick: \"mapDblclick\", mapDrag: \"mapDrag\", mapDragend: \"mapDragend\", mapDragstart: \"mapDragstart\", headingChanged: \"headingChanged\", idle: \"idle\", maptypeidChanged: \"maptypeidChanged\", mapMousemove: \"mapMousemove\", mapMouseout: \"mapMouseout\", mapMouseover: \"mapMouseover\", projectionChanged: \"projectionChanged\", mapRightclick: \"mapRightclick\", tilesloaded: \"tilesloaded\", tiltChanged: \"tiltChanged\", zoomChanged: \"zoomChanged\" }, exportAs: [\"googleMap\"], features: [ɵngcc0.ɵɵNgOnChangesFeature], ngContentSelectors: _c0, decls: 2, vars: 0, consts: [[1, \"map-container\"]], template: function GoogleMap_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵelement(0, \"div\", 0);\n ɵngcc0.ɵɵprojection(1);\n } }, encapsulation: 2, changeDetection: 0 });\nGoogleMap.ctorParameters = () => [\n { type: ElementRef },\n { type: NgZone },\n { type: Object, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] }\n];\nGoogleMap.propDecorators = {\n height: [{ type: Input }],\n width: [{ type: Input }],\n mapTypeId: [{ type: Input }],\n center: [{ type: Input }],\n zoom: [{ type: Input }],\n options: [{ type: Input }],\n boundsChanged: [{ type: Output }],\n centerChanged: [{ type: Output }],\n mapClick: [{ type: Output }],\n mapDblclick: [{ type: Output }],\n mapDrag: [{ type: Output }],\n mapDragend: [{ type: Output }],\n mapDragstart: [{ type: Output }],\n headingChanged: [{ type: Output }],\n idle: [{ type: Output }],\n maptypeidChanged: [{ type: Output }],\n mapMousemove: [{ type: Output }],\n mapMouseout: [{ type: Output }],\n mapMouseover: [{ type: Output }],\n projectionChanged: [{ type: Output }],\n mapRightclick: [{ type: Output }],\n tilesloaded: [{ type: Output }],\n tiltChanged: [{ type: Output }],\n zoomChanged: [{ type: Output }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(GoogleMap, [{\n type: Component,\n args: [{\n selector: 'google-map',\n exportAs: 'googleMap',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '
',\n encapsulation: ViewEncapsulation.None\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.NgZone }, { type: Object, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }]; }, { height: [{\n type: Input\n }], width: [{\n type: Input\n }], boundsChanged: [{\n type: Output\n }], centerChanged: [{\n type: Output\n }], mapClick: [{\n type: Output\n }], mapDblclick: [{\n type: Output\n }], mapDrag: [{\n type: Output\n }], mapDragend: [{\n type: Output\n }], mapDragstart: [{\n type: Output\n }], headingChanged: [{\n type: Output\n }], idle: [{\n type: Output\n }], maptypeidChanged: [{\n type: Output\n }], mapMousemove: [{\n type: Output\n }], mapMouseout: [{\n type: Output\n }], mapMouseover: [{\n type: Output\n }], projectionChanged: [{\n type: Output\n }], mapRightclick: [{\n type: Output\n }], tilesloaded: [{\n type: Output\n }], tiltChanged: [{\n type: Output\n }], zoomChanged: [{\n type: Output\n }], center: [{\n type: Input\n }], zoom: [{\n type: Input\n }], options: [{\n type: Input\n }], mapTypeId: [{\n type: Input\n }] }); })();\nconst cssUnitsPattern = /([A-Za-z%]+)$/;\n/** Coerces a value to a CSS pixel value. */\nfunction coerceCssPixelValue(value) {\n if (value == null) {\n return '';\n }\n return cssUnitsPattern.test(value) ? value : `${value}px`;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass MapBaseLayer {\n constructor(_map, _ngZone) {\n this._map = _map;\n this._ngZone = _ngZone;\n }\n ngOnInit() {\n if (this._map._isBrowser) {\n this._ngZone.runOutsideAngular(() => {\n this._initializeObject();\n });\n this._assertInitialized();\n this._setMap();\n }\n }\n ngOnDestroy() {\n this._unsetMap();\n }\n _assertInitialized() {\n if (!this._map.googleMap) {\n throw Error('Cannot access Google Map information before the API has been initialized. ' +\n 'Please wait for the API to load before trying to interact with it.');\n }\n }\n _initializeObject() { }\n _setMap() { }\n _unsetMap() { }\n}\nMapBaseLayer.ɵfac = function MapBaseLayer_Factory(t) { return new (t || MapBaseLayer)(ɵngcc0.ɵɵdirectiveInject(GoogleMap), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nMapBaseLayer.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MapBaseLayer, selectors: [[\"map-base-layer\"]], exportAs: [\"mapBaseLayer\"] });\nMapBaseLayer.ctorParameters = () => [\n { type: GoogleMap },\n { type: NgZone }\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MapBaseLayer, [{\n type: Directive,\n args: [{\n selector: 'map-base-layer',\n exportAs: 'mapBaseLayer'\n }]\n }], function () { return [{ type: GoogleMap }, { type: ɵngcc0.NgZone }]; }, null); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Angular component that renders a Google Maps Bicycling Layer via the Google Maps JavaScript API.\n *\n * See developers.google.com/maps/documentation/javascript/reference/map#BicyclingLayer\n */\nclass MapBicyclingLayer extends MapBaseLayer {\n _initializeObject() {\n this.bicyclingLayer = new google.maps.BicyclingLayer();\n }\n _setMap() {\n this._assertLayerInitialized();\n this.bicyclingLayer.setMap(this._map.googleMap);\n }\n _unsetMap() {\n if (this.bicyclingLayer) {\n this.bicyclingLayer.setMap(null);\n }\n }\n _assertLayerInitialized() {\n if (!this.bicyclingLayer) {\n throw Error('Cannot interact with a Google Map Bicycling Layer before it has been initialized. ' +\n 'Please wait for the Transit Layer to load before trying to interact with it.');\n }\n }\n}\nMapBicyclingLayer.ɵfac = /*@__PURE__*/ function () { let ɵMapBicyclingLayer_BaseFactory; return function MapBicyclingLayer_Factory(t) { return (ɵMapBicyclingLayer_BaseFactory || (ɵMapBicyclingLayer_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(MapBicyclingLayer)))(t || MapBicyclingLayer); }; }();\nMapBicyclingLayer.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MapBicyclingLayer, selectors: [[\"map-bicycling-layer\"]], exportAs: [\"mapBicyclingLayer\"], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MapBicyclingLayer, [{\n type: Directive,\n args: [{\n selector: 'map-bicycling-layer',\n exportAs: 'mapBicyclingLayer'\n }]\n }], null, null); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Angular component that renders a Google Maps Circle via the Google Maps JavaScript API.\n * @see developers.google.com/maps/documentation/javascript/reference/polygon#Circle\n */\nclass MapCircle {\n constructor(_map, _ngZone) {\n this._map = _map;\n this._ngZone = _ngZone;\n this._eventManager = new MapEventManager(this._ngZone);\n this._options = new BehaviorSubject({});\n this._center = new BehaviorSubject(undefined);\n this._radius = new BehaviorSubject(undefined);\n this._destroyed = new Subject();\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.center_changed\n */\n this.centerChanged = this._eventManager.getLazyEmitter('center_changed');\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.click\n */\n this.circleClick = this._eventManager.getLazyEmitter('click');\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.dblclick\n */\n this.circleDblclick = this._eventManager.getLazyEmitter('dblclick');\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.drag\n */\n this.circleDrag = this._eventManager.getLazyEmitter('drag');\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.dragend\n */\n this.circleDragend = this._eventManager.getLazyEmitter('dragend');\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.dragstart\n */\n this.circleDragstart = this._eventManager.getLazyEmitter('dragstart');\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.mousedown\n */\n this.circleMousedown = this._eventManager.getLazyEmitter('mousedown');\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.mousemove\n */\n this.circleMousemove = this._eventManager.getLazyEmitter('mousemove');\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.mouseout\n */\n this.circleMouseout = this._eventManager.getLazyEmitter('mouseout');\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.mouseover\n */\n this.circleMouseover = this._eventManager.getLazyEmitter('mouseover');\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.mouseup\n */\n this.circleMouseup = this._eventManager.getLazyEmitter('mouseup');\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.radius_changed\n */\n this.radiusChanged = this._eventManager.getLazyEmitter('radius_changed');\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.rightclick\n */\n this.circleRightclick = this._eventManager.getLazyEmitter('rightclick');\n }\n set options(options) {\n this._options.next(options || {});\n }\n set center(center) {\n this._center.next(center);\n }\n set radius(radius) {\n this._radius.next(radius);\n }\n ngOnInit() {\n if (this._map._isBrowser) {\n this._combineOptions().pipe(take(1)).subscribe(options => {\n // Create the object outside the zone so its events don't trigger change detection.\n // We'll bring it back in inside the `MapEventManager` only for the events that the\n // user has subscribed to.\n this._ngZone.runOutsideAngular(() => {\n this.circle = new google.maps.Circle(options);\n });\n this._assertInitialized();\n this.circle.setMap(this._map.googleMap);\n this._eventManager.setTarget(this.circle);\n });\n this._watchForOptionsChanges();\n this._watchForCenterChanges();\n this._watchForRadiusChanges();\n }\n }\n ngOnDestroy() {\n this._eventManager.destroy();\n this._destroyed.next();\n this._destroyed.complete();\n if (this.circle) {\n this.circle.setMap(null);\n }\n }\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.getBounds\n */\n getBounds() {\n this._assertInitialized();\n return this.circle.getBounds();\n }\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.getCenter\n */\n getCenter() {\n this._assertInitialized();\n return this.circle.getCenter();\n }\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.getDraggable\n */\n getDraggable() {\n this._assertInitialized();\n return this.circle.getDraggable();\n }\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.getEditable\n */\n getEditable() {\n this._assertInitialized();\n return this.circle.getEditable();\n }\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.getRadius\n */\n getRadius() {\n this._assertInitialized();\n return this.circle.getRadius();\n }\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.getVisible\n */\n getVisible() {\n this._assertInitialized();\n return this.circle.getVisible();\n }\n _combineOptions() {\n return combineLatest([this._options, this._center, this._radius])\n .pipe(map(([options, center, radius]) => {\n const combinedOptions = Object.assign(Object.assign({}, options), { center: center || options.center, radius: radius !== undefined ? radius : options.radius });\n return combinedOptions;\n }));\n }\n _watchForOptionsChanges() {\n this._options.pipe(takeUntil(this._destroyed)).subscribe(options => {\n this._assertInitialized();\n this.circle.setOptions(options);\n });\n }\n _watchForCenterChanges() {\n this._center.pipe(takeUntil(this._destroyed)).subscribe(center => {\n if (center) {\n this._assertInitialized();\n this.circle.setCenter(center);\n }\n });\n }\n _watchForRadiusChanges() {\n this._radius.pipe(takeUntil(this._destroyed)).subscribe(radius => {\n if (radius !== undefined) {\n this._assertInitialized();\n this.circle.setRadius(radius);\n }\n });\n }\n _assertInitialized() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._map.googleMap) {\n throw Error('Cannot access Google Map information before the API has been initialized. ' +\n 'Please wait for the API to load before trying to interact with it.');\n }\n if (!this.circle) {\n throw Error('Cannot interact with a Google Map Circle before it has been ' +\n 'initialized. Please wait for the Circle to load before trying to interact with it.');\n }\n }\n }\n}\nMapCircle.ɵfac = function MapCircle_Factory(t) { return new (t || MapCircle)(ɵngcc0.ɵɵdirectiveInject(GoogleMap), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nMapCircle.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MapCircle, selectors: [[\"map-circle\"]], inputs: { options: \"options\", center: \"center\", radius: \"radius\" }, outputs: { centerChanged: \"centerChanged\", circleClick: \"circleClick\", circleDblclick: \"circleDblclick\", circleDrag: \"circleDrag\", circleDragend: \"circleDragend\", circleDragstart: \"circleDragstart\", circleMousedown: \"circleMousedown\", circleMousemove: \"circleMousemove\", circleMouseout: \"circleMouseout\", circleMouseover: \"circleMouseover\", circleMouseup: \"circleMouseup\", radiusChanged: \"radiusChanged\", circleRightclick: \"circleRightclick\" }, exportAs: [\"mapCircle\"] });\nMapCircle.ctorParameters = () => [\n { type: GoogleMap },\n { type: NgZone }\n];\nMapCircle.propDecorators = {\n options: [{ type: Input }],\n center: [{ type: Input }],\n radius: [{ type: Input }],\n centerChanged: [{ type: Output }],\n circleClick: [{ type: Output }],\n circleDblclick: [{ type: Output }],\n circleDrag: [{ type: Output }],\n circleDragend: [{ type: Output }],\n circleDragstart: [{ type: Output }],\n circleMousedown: [{ type: Output }],\n circleMousemove: [{ type: Output }],\n circleMouseout: [{ type: Output }],\n circleMouseover: [{ type: Output }],\n circleMouseup: [{ type: Output }],\n radiusChanged: [{ type: Output }],\n circleRightclick: [{ type: Output }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MapCircle, [{\n type: Directive,\n args: [{\n selector: 'map-circle',\n exportAs: 'mapCircle'\n }]\n }], function () { return [{ type: GoogleMap }, { type: ɵngcc0.NgZone }]; }, { centerChanged: [{\n type: Output\n }], circleClick: [{\n type: Output\n }], circleDblclick: [{\n type: Output\n }], circleDrag: [{\n type: Output\n }], circleDragend: [{\n type: Output\n }], circleDragstart: [{\n type: Output\n }], circleMousedown: [{\n type: Output\n }], circleMousemove: [{\n type: Output\n }], circleMouseout: [{\n type: Output\n }], circleMouseover: [{\n type: Output\n }], circleMouseup: [{\n type: Output\n }], radiusChanged: [{\n type: Output\n }], circleRightclick: [{\n type: Output\n }], options: [{\n type: Input\n }], center: [{\n type: Input\n }], radius: [{\n type: Input\n }] }); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Angular component that renders a Google Maps Ground Overlay via the Google Maps JavaScript API.\n *\n * See developers.google.com/maps/documentation/javascript/reference/image-overlay#GroundOverlay\n */\nclass MapGroundOverlay {\n constructor(_map, _ngZone) {\n this._map = _map;\n this._ngZone = _ngZone;\n this._eventManager = new MapEventManager(this._ngZone);\n this._opacity = new BehaviorSubject(1);\n this._url = new BehaviorSubject('');\n this._bounds = new BehaviorSubject(undefined);\n this._destroyed = new Subject();\n /** Whether the overlay is clickable */\n this.clickable = false;\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/image-overlay#GroundOverlay.click\n */\n this.mapClick = this._eventManager.getLazyEmitter('click');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/image-overlay\n * #GroundOverlay.dblclick\n */\n this.mapDblclick = this._eventManager.getLazyEmitter('dblclick');\n }\n /** URL of the image that will be shown in the overlay. */\n set url(url) {\n this._url.next(url);\n }\n /** Bounds for the overlay. */\n get bounds() {\n return this._bounds.value;\n }\n set bounds(bounds) {\n this._bounds.next(bounds);\n }\n /** Opacity of the overlay. */\n set opacity(opacity) {\n this._opacity.next(opacity);\n }\n ngOnInit() {\n if (this._map._isBrowser) {\n // The ground overlay setup is slightly different from the other Google Maps objects in that\n // we have to recreate the `GroundOverlay` object whenever the bounds change, because\n // Google Maps doesn't provide an API to update the bounds of an existing overlay.\n this._bounds.pipe(takeUntil(this._destroyed)).subscribe(bounds => {\n if (this.groundOverlay) {\n this.groundOverlay.setMap(null);\n this.groundOverlay = undefined;\n }\n // Create the object outside the zone so its events don't trigger change detection.\n // We'll bring it back in inside the `MapEventManager` only for the events that the\n // user has subscribed to.\n if (bounds) {\n this._ngZone.runOutsideAngular(() => {\n this.groundOverlay = new google.maps.GroundOverlay(this._url.getValue(), bounds, {\n clickable: this.clickable,\n opacity: this._opacity.value,\n });\n });\n this._assertInitialized();\n this.groundOverlay.setMap(this._map.googleMap);\n this._eventManager.setTarget(this.groundOverlay);\n }\n });\n this._watchForOpacityChanges();\n this._watchForUrlChanges();\n }\n }\n ngOnDestroy() {\n this._eventManager.destroy();\n this._destroyed.next();\n this._destroyed.complete();\n if (this.groundOverlay) {\n this.groundOverlay.setMap(null);\n }\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/image-overlay\n * #GroundOverlay.getBounds\n */\n getBounds() {\n this._assertInitialized();\n return this.groundOverlay.getBounds();\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/image-overlay\n * #GroundOverlay.getOpacity\n */\n getOpacity() {\n this._assertInitialized();\n return this.groundOverlay.getOpacity();\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/image-overlay\n * #GroundOverlay.getUrl\n */\n getUrl() {\n this._assertInitialized();\n return this.groundOverlay.getUrl();\n }\n _watchForOpacityChanges() {\n this._opacity.pipe(takeUntil(this._destroyed)).subscribe(opacity => {\n if (opacity != null) {\n this._assertInitialized();\n this.groundOverlay.setOpacity(opacity);\n }\n });\n }\n _watchForUrlChanges() {\n this._url.pipe(takeUntil(this._destroyed)).subscribe(url => {\n this._assertInitialized();\n const overlay = this.groundOverlay;\n overlay.set('url', url);\n // Google Maps only redraws the overlay if we re-set the map.\n overlay.setMap(null);\n overlay.setMap(this._map.googleMap);\n });\n }\n _assertInitialized() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._map.googleMap) {\n throw Error('Cannot access Google Map information before the API has been initialized. ' +\n 'Please wait for the API to load before trying to interact with it.');\n }\n if (!this.groundOverlay) {\n throw Error('Cannot interact with a Google Map GroundOverlay before it has been initialized. ' +\n 'Please wait for the GroundOverlay to load before trying to interact with it.');\n }\n }\n }\n}\nMapGroundOverlay.ɵfac = function MapGroundOverlay_Factory(t) { return new (t || MapGroundOverlay)(ɵngcc0.ɵɵdirectiveInject(GoogleMap), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nMapGroundOverlay.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MapGroundOverlay, selectors: [[\"map-ground-overlay\"]], inputs: { clickable: \"clickable\", url: \"url\", bounds: \"bounds\", opacity: \"opacity\" }, outputs: { mapClick: \"mapClick\", mapDblclick: \"mapDblclick\" }, exportAs: [\"mapGroundOverlay\"] });\nMapGroundOverlay.ctorParameters = () => [\n { type: GoogleMap },\n { type: NgZone }\n];\nMapGroundOverlay.propDecorators = {\n url: [{ type: Input }],\n bounds: [{ type: Input }],\n clickable: [{ type: Input }],\n opacity: [{ type: Input }],\n mapClick: [{ type: Output }],\n mapDblclick: [{ type: Output }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MapGroundOverlay, [{\n type: Directive,\n args: [{\n selector: 'map-ground-overlay',\n exportAs: 'mapGroundOverlay'\n }]\n }], function () { return [{ type: GoogleMap }, { type: ɵngcc0.NgZone }]; }, { clickable: [{\n type: Input\n }], mapClick: [{\n type: Output\n }], mapDblclick: [{\n type: Output\n }], url: [{\n type: Input\n }], bounds: [{\n type: Input\n }], opacity: [{\n type: Input\n }] }); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Angular component that renders a Google Maps info window via the Google Maps JavaScript API.\n *\n * See developers.google.com/maps/documentation/javascript/reference/info-window\n */\nclass MapInfoWindow {\n constructor(_googleMap, _elementRef, _ngZone) {\n this._googleMap = _googleMap;\n this._elementRef = _elementRef;\n this._ngZone = _ngZone;\n this._eventManager = new MapEventManager(this._ngZone);\n this._options = new BehaviorSubject({});\n this._position = new BehaviorSubject(undefined);\n this._destroy = new Subject();\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/info-window#InfoWindow.closeclick\n */\n this.closeclick = this._eventManager.getLazyEmitter('closeclick');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/info-window\n * #InfoWindow.content_changed\n */\n this.contentChanged = this._eventManager.getLazyEmitter('content_changed');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/info-window#InfoWindow.domready\n */\n this.domready = this._eventManager.getLazyEmitter('domready');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/info-window\n * #InfoWindow.position_changed\n */\n this.positionChanged = this._eventManager.getLazyEmitter('position_changed');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/info-window\n * #InfoWindow.zindex_changed\n */\n this.zindexChanged = this._eventManager.getLazyEmitter('zindex_changed');\n }\n set options(options) {\n this._options.next(options || {});\n }\n set position(position) {\n this._position.next(position);\n }\n ngOnInit() {\n if (this._googleMap._isBrowser) {\n const combinedOptionsChanges = this._combineOptions();\n combinedOptionsChanges.pipe(take(1)).subscribe(options => {\n // Create the object outside the zone so its events don't trigger change detection.\n // We'll bring it back in inside the `MapEventManager` only for the events that the\n // user has subscribed to.\n this._ngZone.runOutsideAngular(() => {\n this.infoWindow = new google.maps.InfoWindow(options);\n });\n this._eventManager.setTarget(this.infoWindow);\n });\n this._watchForOptionsChanges();\n this._watchForPositionChanges();\n }\n }\n ngOnDestroy() {\n this._eventManager.destroy();\n this._destroy.next();\n this._destroy.complete();\n // If no info window has been created on the server, we do not try closing it.\n // On the server, an info window cannot be created and this would cause errors.\n if (this.infoWindow) {\n this.close();\n }\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/info-window#InfoWindow.close\n */\n close() {\n this._assertInitialized();\n this.infoWindow.close();\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/info-window#InfoWindow.getContent\n */\n getContent() {\n this._assertInitialized();\n return this.infoWindow.getContent();\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/info-window\n * #InfoWindow.getPosition\n */\n getPosition() {\n this._assertInitialized();\n return this.infoWindow.getPosition();\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/info-window#InfoWindow.getZIndex\n */\n getZIndex() {\n this._assertInitialized();\n return this.infoWindow.getZIndex();\n }\n /**\n * Opens the MapInfoWindow using the provided anchor. If the anchor is not set,\n * then the position property of the options input is used instead.\n */\n open(anchor) {\n this._assertInitialized();\n const anchorObject = anchor ? anchor.getAnchor() : undefined;\n // Prevent the info window from initializing when trying to reopen on the same anchor.\n // Note that when the window is opened for the first time, the anchor will always be\n // undefined. If that's the case, we have to allow it to open in order to handle the\n // case where the window doesn't have an anchor, but is placed at a particular position.\n if (this.infoWindow.get('anchor') !== anchorObject || !anchorObject) {\n this._elementRef.nativeElement.style.display = '';\n this.infoWindow.open(this._googleMap.googleMap, anchorObject);\n }\n }\n _combineOptions() {\n return combineLatest([this._options, this._position]).pipe(map(([options, position]) => {\n const combinedOptions = Object.assign(Object.assign({}, options), { position: position || options.position, content: this._elementRef.nativeElement });\n return combinedOptions;\n }));\n }\n _watchForOptionsChanges() {\n this._options.pipe(takeUntil(this._destroy)).subscribe(options => {\n this._assertInitialized();\n this.infoWindow.setOptions(options);\n });\n }\n _watchForPositionChanges() {\n this._position.pipe(takeUntil(this._destroy)).subscribe(position => {\n if (position) {\n this._assertInitialized();\n this.infoWindow.setPosition(position);\n }\n });\n }\n _assertInitialized() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._googleMap.googleMap) {\n throw Error('Cannot access Google Map information before the API has been initialized. ' +\n 'Please wait for the API to load before trying to interact with it.');\n }\n if (!this.infoWindow) {\n throw Error('Cannot interact with a Google Map Info Window before it has been ' +\n 'initialized. Please wait for the Info Window to load before trying to interact with ' +\n 'it.');\n }\n }\n }\n}\nMapInfoWindow.ɵfac = function MapInfoWindow_Factory(t) { return new (t || MapInfoWindow)(ɵngcc0.ɵɵdirectiveInject(GoogleMap), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nMapInfoWindow.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MapInfoWindow, selectors: [[\"map-info-window\"]], hostAttrs: [2, \"display\", \"none\"], inputs: { options: \"options\", position: \"position\" }, outputs: { closeclick: \"closeclick\", contentChanged: \"contentChanged\", domready: \"domready\", positionChanged: \"positionChanged\", zindexChanged: \"zindexChanged\" }, exportAs: [\"mapInfoWindow\"] });\nMapInfoWindow.ctorParameters = () => [\n { type: GoogleMap },\n { type: ElementRef },\n { type: NgZone }\n];\nMapInfoWindow.propDecorators = {\n options: [{ type: Input }],\n position: [{ type: Input }],\n closeclick: [{ type: Output }],\n contentChanged: [{ type: Output }],\n domready: [{ type: Output }],\n positionChanged: [{ type: Output }],\n zindexChanged: [{ type: Output }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MapInfoWindow, [{\n type: Directive,\n args: [{\n selector: 'map-info-window',\n exportAs: 'mapInfoWindow',\n host: { 'style': 'display: none' }\n }]\n }], function () { return [{ type: GoogleMap }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.NgZone }]; }, { closeclick: [{\n type: Output\n }], contentChanged: [{\n type: Output\n }], domready: [{\n type: Output\n }], positionChanged: [{\n type: Output\n }], zindexChanged: [{\n type: Output\n }], options: [{\n type: Input\n }], position: [{\n type: Input\n }] }); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Angular component that renders a Google Maps KML Layer via the Google Maps JavaScript API.\n *\n * See developers.google.com/maps/documentation/javascript/reference/kml#KmlLayer\n */\nclass MapKmlLayer {\n constructor(_map, _ngZone) {\n this._map = _map;\n this._ngZone = _ngZone;\n this._eventManager = new MapEventManager(this._ngZone);\n this._options = new BehaviorSubject({});\n this._url = new BehaviorSubject('');\n this._destroyed = new Subject();\n /**\n * See developers.google.com/maps/documentation/javascript/reference/kml#KmlLayer.click\n */\n this.kmlClick = this._eventManager.getLazyEmitter('click');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/kml\n * #KmlLayer.defaultviewport_changed\n */\n this.defaultviewportChanged = this._eventManager.getLazyEmitter('defaultviewport_changed');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/kml#KmlLayer.status_changed\n */\n this.statusChanged = this._eventManager.getLazyEmitter('status_changed');\n }\n set options(options) {\n this._options.next(options || {});\n }\n set url(url) {\n this._url.next(url);\n }\n ngOnInit() {\n if (this._map._isBrowser) {\n this._combineOptions().pipe(take(1)).subscribe(options => {\n // Create the object outside the zone so its events don't trigger change detection.\n // We'll bring it back in inside the `MapEventManager` only for the events that the\n // user has subscribed to.\n this._ngZone.runOutsideAngular(() => this.kmlLayer = new google.maps.KmlLayer(options));\n this._assertInitialized();\n this.kmlLayer.setMap(this._map.googleMap);\n this._eventManager.setTarget(this.kmlLayer);\n });\n this._watchForOptionsChanges();\n this._watchForUrlChanges();\n }\n }\n ngOnDestroy() {\n this._eventManager.destroy();\n this._destroyed.next();\n this._destroyed.complete();\n if (this.kmlLayer) {\n this.kmlLayer.setMap(null);\n }\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/kml#KmlLayer.getDefaultViewport\n */\n getDefaultViewport() {\n this._assertInitialized();\n return this.kmlLayer.getDefaultViewport();\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/kml#KmlLayer.getMetadata\n */\n getMetadata() {\n this._assertInitialized();\n return this.kmlLayer.getMetadata();\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/kml#KmlLayer.getStatus\n */\n getStatus() {\n this._assertInitialized();\n return this.kmlLayer.getStatus();\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/kml#KmlLayer.getUrl\n */\n getUrl() {\n this._assertInitialized();\n return this.kmlLayer.getUrl();\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/kml#KmlLayer.getZIndex\n */\n getZIndex() {\n this._assertInitialized();\n return this.kmlLayer.getZIndex();\n }\n _combineOptions() {\n return combineLatest([this._options, this._url]).pipe(map(([options, url]) => {\n const combinedOptions = Object.assign(Object.assign({}, options), { url: url || options.url });\n return combinedOptions;\n }));\n }\n _watchForOptionsChanges() {\n this._options.pipe(takeUntil(this._destroyed)).subscribe(options => {\n if (this.kmlLayer) {\n this._assertInitialized();\n this.kmlLayer.setOptions(options);\n }\n });\n }\n _watchForUrlChanges() {\n this._url.pipe(takeUntil(this._destroyed)).subscribe(url => {\n if (url && this.kmlLayer) {\n this._assertInitialized();\n this.kmlLayer.setUrl(url);\n }\n });\n }\n _assertInitialized() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._map.googleMap) {\n throw Error('Cannot access Google Map information before the API has been initialized. ' +\n 'Please wait for the API to load before trying to interact with it.');\n }\n if (!this.kmlLayer) {\n throw Error('Cannot interact with a Google Map KmlLayer before it has been ' +\n 'initialized. Please wait for the KmlLayer to load before trying to interact with it.');\n }\n }\n }\n}\nMapKmlLayer.ɵfac = function MapKmlLayer_Factory(t) { return new (t || MapKmlLayer)(ɵngcc0.ɵɵdirectiveInject(GoogleMap), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nMapKmlLayer.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MapKmlLayer, selectors: [[\"map-kml-layer\"]], inputs: { options: \"options\", url: \"url\" }, outputs: { kmlClick: \"kmlClick\", defaultviewportChanged: \"defaultviewportChanged\", statusChanged: \"statusChanged\" }, exportAs: [\"mapKmlLayer\"] });\nMapKmlLayer.ctorParameters = () => [\n { type: GoogleMap },\n { type: NgZone }\n];\nMapKmlLayer.propDecorators = {\n options: [{ type: Input }],\n url: [{ type: Input }],\n kmlClick: [{ type: Output }],\n defaultviewportChanged: [{ type: Output }],\n statusChanged: [{ type: Output }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MapKmlLayer, [{\n type: Directive,\n args: [{\n selector: 'map-kml-layer',\n exportAs: 'mapKmlLayer'\n }]\n }], function () { return [{ type: GoogleMap }, { type: ɵngcc0.NgZone }]; }, { kmlClick: [{\n type: Output\n }], defaultviewportChanged: [{\n type: Output\n }], statusChanged: [{\n type: Output\n }], options: [{\n type: Input\n }], url: [{\n type: Input\n }] }); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Default options for the Google Maps marker component. Displays a marker\n * at the Googleplex.\n */\nconst DEFAULT_MARKER_OPTIONS = {\n position: { lat: 37.421995, lng: -122.084092 },\n};\n/**\n * Angular component that renders a Google Maps marker via the Google Maps JavaScript API.\n *\n * See developers.google.com/maps/documentation/javascript/reference/marker\n */\nclass MapMarker {\n constructor(_googleMap, _ngZone) {\n this._googleMap = _googleMap;\n this._ngZone = _ngZone;\n this._eventManager = new MapEventManager(this._ngZone);\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.animation_changed\n */\n this.animationChanged = this._eventManager.getLazyEmitter('animation_changed');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.click\n */\n this.mapClick = this._eventManager.getLazyEmitter('click');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.clickable_changed\n */\n this.clickableChanged = this._eventManager.getLazyEmitter('clickable_changed');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.cursor_changed\n */\n this.cursorChanged = this._eventManager.getLazyEmitter('cursor_changed');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.dblclick\n */\n this.mapDblclick = this._eventManager.getLazyEmitter('dblclick');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.drag\n */\n this.mapDrag = this._eventManager.getLazyEmitter('drag');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.dragend\n */\n this.mapDragend = this._eventManager.getLazyEmitter('dragend');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.draggable_changed\n */\n this.draggableChanged = this._eventManager.getLazyEmitter('draggable_changed');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.dragstart\n */\n this.mapDragstart = this._eventManager.getLazyEmitter('dragstart');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.flat_changed\n */\n this.flatChanged = this._eventManager.getLazyEmitter('flat_changed');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.icon_changed\n */\n this.iconChanged = this._eventManager.getLazyEmitter('icon_changed');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.mousedown\n */\n this.mapMousedown = this._eventManager.getLazyEmitter('mousedown');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.mouseout\n */\n this.mapMouseout = this._eventManager.getLazyEmitter('mouseout');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.mouseover\n */\n this.mapMouseover = this._eventManager.getLazyEmitter('mouseover');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.mouseup\n */\n this.mapMouseup = this._eventManager.getLazyEmitter('mouseup');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.position_changed\n */\n this.positionChanged = this._eventManager.getLazyEmitter('position_changed');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.rightclick\n */\n this.mapRightclick = this._eventManager.getLazyEmitter('rightclick');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.shape_changed\n */\n this.shapeChanged = this._eventManager.getLazyEmitter('shape_changed');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.title_changed\n */\n this.titleChanged = this._eventManager.getLazyEmitter('title_changed');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.visible_changed\n */\n this.visibleChanged = this._eventManager.getLazyEmitter('visible_changed');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.zindex_changed\n */\n this.zindexChanged = this._eventManager.getLazyEmitter('zindex_changed');\n }\n /**\n * Title of the marker.\n * See: developers.google.com/maps/documentation/javascript/reference/marker#MarkerOptions.title\n */\n set title(title) {\n this._title = title;\n }\n /**\n * Position of the marker. See:\n * developers.google.com/maps/documentation/javascript/reference/marker#MarkerOptions.position\n */\n set position(position) {\n this._position = position;\n }\n /**\n * Label for the marker.\n * See: developers.google.com/maps/documentation/javascript/reference/marker#MarkerOptions.label\n */\n set label(label) {\n this._label = label;\n }\n /**\n * Whether the marker is clickable. See:\n * developers.google.com/maps/documentation/javascript/reference/marker#MarkerOptions.clickable\n */\n set clickable(clickable) {\n this._clickable = clickable;\n }\n /**\n * Options used to configure the marker.\n * See: developers.google.com/maps/documentation/javascript/reference/marker#MarkerOptions\n */\n set options(options) {\n this._options = options;\n }\n ngOnInit() {\n if (this._googleMap._isBrowser) {\n // Create the object outside the zone so its events don't trigger change detection.\n // We'll bring it back in inside the `MapEventManager` only for the events that the\n // user has subscribed to.\n this._ngZone.runOutsideAngular(() => {\n this.marker = new google.maps.Marker(this._combineOptions());\n });\n this._assertInitialized();\n this.marker.setMap(this._googleMap.googleMap);\n this._eventManager.setTarget(this.marker);\n }\n }\n ngOnChanges(changes) {\n const { marker, _title, _position, _label, _clickable } = this;\n if (marker) {\n if (changes['options']) {\n marker.setOptions(this._combineOptions());\n }\n if (changes['title'] && _title !== undefined) {\n marker.setTitle(_title);\n }\n if (changes['position'] && _position) {\n marker.setPosition(_position);\n }\n if (changes['label'] && _label !== undefined) {\n marker.setLabel(_label);\n }\n if (changes['clickable'] && _clickable !== undefined) {\n marker.setClickable(_clickable);\n }\n }\n }\n ngOnDestroy() {\n this._eventManager.destroy();\n if (this.marker) {\n this.marker.setMap(null);\n }\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.getAnimation\n */\n getAnimation() {\n this._assertInitialized();\n return this.marker.getAnimation() || null;\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.getClickable\n */\n getClickable() {\n this._assertInitialized();\n return this.marker.getClickable();\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.getCursor\n */\n getCursor() {\n this._assertInitialized();\n return this.marker.getCursor() || null;\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.getDraggable\n */\n getDraggable() {\n this._assertInitialized();\n return !!this.marker.getDraggable();\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.getIcon\n */\n getIcon() {\n this._assertInitialized();\n return this.marker.getIcon() || null;\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.getLabel\n */\n getLabel() {\n this._assertInitialized();\n return this.marker.getLabel() || null;\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.getOpacity\n */\n getOpacity() {\n this._assertInitialized();\n return this.marker.getOpacity() || null;\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.getPosition\n */\n getPosition() {\n this._assertInitialized();\n return this.marker.getPosition() || null;\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.getShape\n */\n getShape() {\n this._assertInitialized();\n return this.marker.getShape() || null;\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.getTitle\n */\n getTitle() {\n this._assertInitialized();\n return this.marker.getTitle() || null;\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.getVisible\n */\n getVisible() {\n this._assertInitialized();\n return this.marker.getVisible();\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.getZIndex\n */\n getZIndex() {\n this._assertInitialized();\n return this.marker.getZIndex() || null;\n }\n /** Gets the anchor point that can be used to attach other Google Maps objects. */\n getAnchor() {\n this._assertInitialized();\n return this.marker;\n }\n /** Creates a combined options object using the passed-in options and the individual inputs. */\n _combineOptions() {\n const options = this._options || DEFAULT_MARKER_OPTIONS;\n return Object.assign(Object.assign({}, options), { title: this._title || options.title, position: this._position || options.position, label: this._label || options.label, clickable: this._clickable !== undefined ? this._clickable : options.clickable, map: this._googleMap.googleMap });\n }\n _assertInitialized() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._googleMap.googleMap) {\n throw Error('Cannot access Google Map information before the API has been initialized. ' +\n 'Please wait for the API to load before trying to interact with it.');\n }\n if (!this.marker) {\n throw Error('Cannot interact with a Google Map Marker before it has been ' +\n 'initialized. Please wait for the Marker to load before trying to interact with it.');\n }\n }\n }\n}\nMapMarker.ɵfac = function MapMarker_Factory(t) { return new (t || MapMarker)(ɵngcc0.ɵɵdirectiveInject(GoogleMap), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nMapMarker.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MapMarker, selectors: [[\"map-marker\"]], inputs: { title: \"title\", position: \"position\", label: \"label\", clickable: \"clickable\", options: \"options\" }, outputs: { animationChanged: \"animationChanged\", mapClick: \"mapClick\", clickableChanged: \"clickableChanged\", cursorChanged: \"cursorChanged\", mapDblclick: \"mapDblclick\", mapDrag: \"mapDrag\", mapDragend: \"mapDragend\", draggableChanged: \"draggableChanged\", mapDragstart: \"mapDragstart\", flatChanged: \"flatChanged\", iconChanged: \"iconChanged\", mapMousedown: \"mapMousedown\", mapMouseout: \"mapMouseout\", mapMouseover: \"mapMouseover\", mapMouseup: \"mapMouseup\", positionChanged: \"positionChanged\", mapRightclick: \"mapRightclick\", shapeChanged: \"shapeChanged\", titleChanged: \"titleChanged\", visibleChanged: \"visibleChanged\", zindexChanged: \"zindexChanged\" }, exportAs: [\"mapMarker\"], features: [ɵngcc0.ɵɵNgOnChangesFeature] });\nMapMarker.ctorParameters = () => [\n { type: GoogleMap },\n { type: NgZone }\n];\nMapMarker.propDecorators = {\n title: [{ type: Input }],\n position: [{ type: Input }],\n label: [{ type: Input }],\n clickable: [{ type: Input }],\n options: [{ type: Input }],\n animationChanged: [{ type: Output }],\n mapClick: [{ type: Output }],\n clickableChanged: [{ type: Output }],\n cursorChanged: [{ type: Output }],\n mapDblclick: [{ type: Output }],\n mapDrag: [{ type: Output }],\n mapDragend: [{ type: Output }],\n draggableChanged: [{ type: Output }],\n mapDragstart: [{ type: Output }],\n flatChanged: [{ type: Output }],\n iconChanged: [{ type: Output }],\n mapMousedown: [{ type: Output }],\n mapMouseout: [{ type: Output }],\n mapMouseover: [{ type: Output }],\n mapMouseup: [{ type: Output }],\n positionChanged: [{ type: Output }],\n mapRightclick: [{ type: Output }],\n shapeChanged: [{ type: Output }],\n titleChanged: [{ type: Output }],\n visibleChanged: [{ type: Output }],\n zindexChanged: [{ type: Output }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MapMarker, [{\n type: Directive,\n args: [{\n selector: 'map-marker',\n exportAs: 'mapMarker'\n }]\n }], function () { return [{ type: GoogleMap }, { type: ɵngcc0.NgZone }]; }, { animationChanged: [{\n type: Output\n }], mapClick: [{\n type: Output\n }], clickableChanged: [{\n type: Output\n }], cursorChanged: [{\n type: Output\n }], mapDblclick: [{\n type: Output\n }], mapDrag: [{\n type: Output\n }], mapDragend: [{\n type: Output\n }], draggableChanged: [{\n type: Output\n }], mapDragstart: [{\n type: Output\n }], flatChanged: [{\n type: Output\n }], iconChanged: [{\n type: Output\n }], mapMousedown: [{\n type: Output\n }], mapMouseout: [{\n type: Output\n }], mapMouseover: [{\n type: Output\n }], mapMouseup: [{\n type: Output\n }], positionChanged: [{\n type: Output\n }], mapRightclick: [{\n type: Output\n }], shapeChanged: [{\n type: Output\n }], titleChanged: [{\n type: Output\n }], visibleChanged: [{\n type: Output\n }], zindexChanged: [{\n type: Output\n }], title: [{\n type: Input\n }], position: [{\n type: Input\n }], label: [{\n type: Input\n }], clickable: [{\n type: Input\n }], options: [{\n type: Input\n }] }); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Angular component for implementing a Google Maps Marker Clusterer.\n *\n * See https://developers.google.com/maps/documentation/javascript/marker-clustering\n */\nclass MapMarkerClusterer {\n constructor(_googleMap, _ngZone) {\n this._googleMap = _googleMap;\n this._ngZone = _ngZone;\n this._currentMarkers = new Set();\n this._eventManager = new MapEventManager(this._ngZone);\n this._destroy = new Subject();\n this.ariaLabelFn = () => '';\n /**\n * See\n * googlemaps.github.io/v3-utility-library/modules/\n * _google_markerclustererplus.html#clusteringbegin\n */\n this.clusteringbegin = this._eventManager.getLazyEmitter('clusteringbegin');\n /**\n * See\n * googlemaps.github.io/v3-utility-library/modules/_google_markerclustererplus.html#clusteringend\n */\n this.clusteringend = this._eventManager.getLazyEmitter('clusteringend');\n this._canInitialize = this._googleMap._isBrowser;\n }\n set averageCenter(averageCenter) {\n this._averageCenter = averageCenter;\n }\n set batchSizeIE(batchSizeIE) {\n this._batchSizeIE = batchSizeIE;\n }\n set calculator(calculator) {\n this._calculator = calculator;\n }\n set clusterClass(clusterClass) {\n this._clusterClass = clusterClass;\n }\n set enableRetinaIcons(enableRetinaIcons) {\n this._enableRetinaIcons = enableRetinaIcons;\n }\n set gridSize(gridSize) {\n this._gridSize = gridSize;\n }\n set ignoreHidden(ignoreHidden) {\n this._ignoreHidden = ignoreHidden;\n }\n set imageExtension(imageExtension) {\n this._imageExtension = imageExtension;\n }\n set imagePath(imagePath) {\n this._imagePath = imagePath;\n }\n set imageSizes(imageSizes) {\n this._imageSizes = imageSizes;\n }\n set maxZoom(maxZoom) {\n this._maxZoom = maxZoom;\n }\n set minimumClusterSize(minimumClusterSize) {\n this._minimumClusterSize = minimumClusterSize;\n }\n set styles(styles) {\n this._styles = styles;\n }\n set title(title) {\n this._title = title;\n }\n set zIndex(zIndex) {\n this._zIndex = zIndex;\n }\n set zoomOnClick(zoomOnClick) {\n this._zoomOnClick = zoomOnClick;\n }\n ngOnInit() {\n if (this._canInitialize) {\n // Create the object outside the zone so its events don't trigger change detection.\n // We'll bring it back in inside the `MapEventManager` only for the events that the\n // user has subscribed to.\n this._ngZone.runOutsideAngular(() => {\n this.markerClusterer = new MarkerClusterer(this._googleMap.googleMap, [], this._combineOptions());\n });\n this._assertInitialized();\n this._eventManager.setTarget(this.markerClusterer);\n }\n }\n ngAfterContentInit() {\n if (this._canInitialize) {\n this._watchForMarkerChanges();\n }\n }\n ngOnChanges(changes) {\n const { markerClusterer: clusterer, ariaLabelFn, _averageCenter, _batchSizeIE, _calculator, _styles, _clusterClass, _enableRetinaIcons, _gridSize, _ignoreHidden, _imageExtension, _imagePath, _imageSizes, _maxZoom, _minimumClusterSize, _title, _zIndex, _zoomOnClick } = this;\n if (clusterer) {\n if (changes['ariaLabelFn']) {\n clusterer.ariaLabelFn = ariaLabelFn;\n }\n if (changes['averageCenter'] && _averageCenter !== undefined) {\n clusterer.setAverageCenter(_averageCenter);\n }\n if (changes['batchSizeIE'] && _batchSizeIE !== undefined) {\n clusterer.setBatchSizeIE(_batchSizeIE);\n }\n if (changes['calculator'] && _calculator) {\n clusterer.setCalculator(_calculator);\n }\n if (changes['clusterClass'] && _clusterClass !== undefined) {\n clusterer.setClusterClass(_clusterClass);\n }\n if (changes['enableRetinaIcons'] && _enableRetinaIcons !== undefined) {\n clusterer.setEnableRetinaIcons(_enableRetinaIcons);\n }\n if (changes['gridSize'] && _gridSize !== undefined) {\n clusterer.setGridSize(_gridSize);\n }\n if (changes['ignoreHidden'] && _ignoreHidden !== undefined) {\n clusterer.setIgnoreHidden(_ignoreHidden);\n }\n if (changes['imageExtension'] && _imageExtension !== undefined) {\n clusterer.setImageExtension(_imageExtension);\n }\n if (changes['imagePath'] && _imagePath !== undefined) {\n clusterer.setImagePath(_imagePath);\n }\n if (changes['imageSizes'] && _imageSizes) {\n clusterer.setImageSizes(_imageSizes);\n }\n if (changes['maxZoom'] && _maxZoom !== undefined) {\n clusterer.setMaxZoom(_maxZoom);\n }\n if (changes['minimumClusterSize'] && _minimumClusterSize !== undefined) {\n clusterer.setMinimumClusterSize(_minimumClusterSize);\n }\n if (changes['styles'] && _styles) {\n clusterer.setStyles(_styles);\n }\n if (changes['title'] && _title !== undefined) {\n clusterer.setTitle(_title);\n }\n if (changes['zIndex'] && _zIndex !== undefined) {\n clusterer.setZIndex(_zIndex);\n }\n if (changes['zoomOnClick'] && _zoomOnClick !== undefined) {\n clusterer.setZoomOnClick(_zoomOnClick);\n }\n }\n }\n ngOnDestroy() {\n this._destroy.next();\n this._destroy.complete();\n this._eventManager.destroy();\n if (this.markerClusterer) {\n this.markerClusterer.setMap(null);\n }\n }\n fitMapToMarkers(padding) {\n this._assertInitialized();\n this.markerClusterer.fitMapToMarkers(padding);\n }\n getAverageCenter() {\n this._assertInitialized();\n return this.markerClusterer.getAverageCenter();\n }\n getBatchSizeIE() {\n this._assertInitialized();\n return this.markerClusterer.getBatchSizeIE();\n }\n getCalculator() {\n this._assertInitialized();\n return this.markerClusterer.getCalculator();\n }\n getClusterClass() {\n this._assertInitialized();\n return this.markerClusterer.getClusterClass();\n }\n getClusters() {\n this._assertInitialized();\n return this.markerClusterer.getClusters();\n }\n getEnableRetinaIcons() {\n this._assertInitialized();\n return this.markerClusterer.getEnableRetinaIcons();\n }\n getGridSize() {\n this._assertInitialized();\n return this.markerClusterer.getGridSize();\n }\n getIgnoreHidden() {\n this._assertInitialized();\n return this.markerClusterer.getIgnoreHidden();\n }\n getImageExtension() {\n this._assertInitialized();\n return this.markerClusterer.getImageExtension();\n }\n getImagePath() {\n this._assertInitialized();\n return this.markerClusterer.getImagePath();\n }\n getImageSizes() {\n this._assertInitialized();\n return this.markerClusterer.getImageSizes();\n }\n getMaxZoom() {\n this._assertInitialized();\n return this.markerClusterer.getMaxZoom();\n }\n getMinimumClusterSize() {\n this._assertInitialized();\n return this.markerClusterer.getMinimumClusterSize();\n }\n getStyles() {\n this._assertInitialized();\n return this.markerClusterer.getStyles();\n }\n getTitle() {\n this._assertInitialized();\n return this.markerClusterer.getTitle();\n }\n getTotalClusters() {\n this._assertInitialized();\n return this.markerClusterer.getTotalClusters();\n }\n getTotalMarkers() {\n this._assertInitialized();\n return this.markerClusterer.getTotalMarkers();\n }\n getZIndex() {\n this._assertInitialized();\n return this.markerClusterer.getZIndex();\n }\n getZoomOnClick() {\n this._assertInitialized();\n return this.markerClusterer.getZoomOnClick();\n }\n _combineOptions() {\n return {\n ariaLabelFn: this.ariaLabelFn,\n averageCenter: this._averageCenter,\n batchSize: this.batchSize,\n batchSizeIE: this._batchSizeIE,\n calculator: this._calculator,\n clusterClass: this._clusterClass,\n enableRetinaIcons: this._enableRetinaIcons,\n gridSize: this._gridSize,\n ignoreHidden: this._ignoreHidden,\n imageExtension: this._imageExtension,\n imagePath: this._imagePath,\n imageSizes: this._imageSizes,\n maxZoom: this._maxZoom,\n minimumClusterSize: this._minimumClusterSize,\n styles: this._styles,\n title: this._title,\n zIndex: this._zIndex,\n zoomOnClick: this._zoomOnClick,\n };\n }\n _watchForMarkerChanges() {\n this._assertInitialized();\n const initialMarkers = [];\n for (const marker of this._getInternalMarkers(this._markers.toArray())) {\n this._currentMarkers.add(marker);\n initialMarkers.push(marker);\n }\n this.markerClusterer.addMarkers(initialMarkers);\n this._markers.changes.pipe(takeUntil(this._destroy)).subscribe((markerComponents) => {\n this._assertInitialized();\n const newMarkers = new Set(this._getInternalMarkers(markerComponents));\n const markersToAdd = [];\n const markersToRemove = [];\n for (const marker of Array.from(newMarkers)) {\n if (!this._currentMarkers.has(marker)) {\n this._currentMarkers.add(marker);\n markersToAdd.push(marker);\n }\n }\n for (const marker of Array.from(this._currentMarkers)) {\n if (!newMarkers.has(marker)) {\n markersToRemove.push(marker);\n }\n }\n this.markerClusterer.addMarkers(markersToAdd, true);\n this.markerClusterer.removeMarkers(markersToRemove, true);\n this.markerClusterer.repaint();\n for (const marker of markersToRemove) {\n this._currentMarkers.delete(marker);\n }\n });\n }\n _getInternalMarkers(markers) {\n return markers.filter(markerComponent => !!markerComponent.marker)\n .map(markerComponent => markerComponent.marker);\n }\n _assertInitialized() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._googleMap.googleMap) {\n throw Error('Cannot access Google Map information before the API has been initialized. ' +\n 'Please wait for the API to load before trying to interact with it.');\n }\n if (!this.markerClusterer) {\n throw Error('Cannot interact with a MarkerClusterer before it has been initialized. ' +\n 'Please wait for the MarkerClusterer to load before trying to interact with it.');\n }\n }\n }\n}\nMapMarkerClusterer.ɵfac = function MapMarkerClusterer_Factory(t) { return new (t || MapMarkerClusterer)(ɵngcc0.ɵɵdirectiveInject(GoogleMap), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nMapMarkerClusterer.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: MapMarkerClusterer, selectors: [[\"map-marker-clusterer\"]], contentQueries: function MapMarkerClusterer_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, MapMarker, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._markers = _t);\n } }, inputs: { ariaLabelFn: \"ariaLabelFn\", averageCenter: \"averageCenter\", batchSizeIE: \"batchSizeIE\", calculator: \"calculator\", clusterClass: \"clusterClass\", enableRetinaIcons: \"enableRetinaIcons\", gridSize: \"gridSize\", ignoreHidden: \"ignoreHidden\", imageExtension: \"imageExtension\", imagePath: \"imagePath\", imageSizes: \"imageSizes\", maxZoom: \"maxZoom\", minimumClusterSize: \"minimumClusterSize\", styles: \"styles\", title: \"title\", zIndex: \"zIndex\", zoomOnClick: \"zoomOnClick\", batchSize: \"batchSize\" }, outputs: { clusteringbegin: \"clusteringbegin\", clusteringend: \"clusteringend\" }, exportAs: [\"mapMarkerClusterer\"], features: [ɵngcc0.ɵɵNgOnChangesFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function MapMarkerClusterer_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵprojection(0);\n } }, encapsulation: 2, changeDetection: 0 });\nMapMarkerClusterer.ctorParameters = () => [\n { type: GoogleMap },\n { type: NgZone }\n];\nMapMarkerClusterer.propDecorators = {\n ariaLabelFn: [{ type: Input }],\n averageCenter: [{ type: Input }],\n batchSize: [{ type: Input }],\n batchSizeIE: [{ type: Input }],\n calculator: [{ type: Input }],\n clusterClass: [{ type: Input }],\n enableRetinaIcons: [{ type: Input }],\n gridSize: [{ type: Input }],\n ignoreHidden: [{ type: Input }],\n imageExtension: [{ type: Input }],\n imagePath: [{ type: Input }],\n imageSizes: [{ type: Input }],\n maxZoom: [{ type: Input }],\n minimumClusterSize: [{ type: Input }],\n styles: [{ type: Input }],\n title: [{ type: Input }],\n zIndex: [{ type: Input }],\n zoomOnClick: [{ type: Input }],\n clusteringbegin: [{ type: Output }],\n clusteringend: [{ type: Output }],\n _markers: [{ type: ContentChildren, args: [MapMarker, { descendants: true },] }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MapMarkerClusterer, [{\n type: Component,\n args: [{\n selector: 'map-marker-clusterer',\n exportAs: 'mapMarkerClusterer',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n encapsulation: ViewEncapsulation.None\n }]\n }], function () { return [{ type: GoogleMap }, { type: ɵngcc0.NgZone }]; }, { ariaLabelFn: [{\n type: Input\n }], clusteringbegin: [{\n type: Output\n }], clusteringend: [{\n type: Output\n }], averageCenter: [{\n type: Input\n }], batchSizeIE: [{\n type: Input\n }], calculator: [{\n type: Input\n }], clusterClass: [{\n type: Input\n }], enableRetinaIcons: [{\n type: Input\n }], gridSize: [{\n type: Input\n }], ignoreHidden: [{\n type: Input\n }], imageExtension: [{\n type: Input\n }], imagePath: [{\n type: Input\n }], imageSizes: [{\n type: Input\n }], maxZoom: [{\n type: Input\n }], minimumClusterSize: [{\n type: Input\n }], styles: [{\n type: Input\n }], title: [{\n type: Input\n }], zIndex: [{\n type: Input\n }], zoomOnClick: [{\n type: Input\n }], batchSize: [{\n type: Input\n }], _markers: [{\n type: ContentChildren,\n args: [MapMarker, { descendants: true }]\n }] }); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Angular component that renders a Google Maps Polygon via the Google Maps JavaScript API.\n *\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon\n */\nclass MapPolygon {\n constructor(_map, _ngZone) {\n this._map = _map;\n this._ngZone = _ngZone;\n this._eventManager = new MapEventManager(this._ngZone);\n this._options = new BehaviorSubject({});\n this._paths = new BehaviorSubject(undefined);\n this._destroyed = new Subject();\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.click\n */\n this.polygonClick = this._eventManager.getLazyEmitter('click');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.dblclick\n */\n this.polygonDblclick = this._eventManager.getLazyEmitter('dblclick');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.drag\n */\n this.polygonDrag = this._eventManager.getLazyEmitter('drag');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.dragend\n */\n this.polygonDragend = this._eventManager.getLazyEmitter('dragend');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.dragstart\n */\n this.polygonDragstart = this._eventManager.getLazyEmitter('dragstart');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.mousedown\n */\n this.polygonMousedown = this._eventManager.getLazyEmitter('mousedown');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.mousemove\n */\n this.polygonMousemove = this._eventManager.getLazyEmitter('mousemove');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.mouseout\n */\n this.polygonMouseout = this._eventManager.getLazyEmitter('mouseout');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.mouseover\n */\n this.polygonMouseover = this._eventManager.getLazyEmitter('mouseover');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.mouseup\n */\n this.polygonMouseup = this._eventManager.getLazyEmitter('mouseup');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.rightclick\n */\n this.polygonRightclick = this._eventManager.getLazyEmitter('rightclick');\n }\n set options(options) {\n this._options.next(options || {});\n }\n set paths(paths) {\n this._paths.next(paths);\n }\n ngOnInit() {\n if (this._map._isBrowser) {\n this._combineOptions().pipe(take(1)).subscribe(options => {\n // Create the object outside the zone so its events don't trigger change detection.\n // We'll bring it back in inside the `MapEventManager` only for the events that the\n // user has subscribed to.\n this._ngZone.runOutsideAngular(() => {\n this.polygon = new google.maps.Polygon(options);\n });\n this._assertInitialized();\n this.polygon.setMap(this._map.googleMap);\n this._eventManager.setTarget(this.polygon);\n });\n this._watchForOptionsChanges();\n this._watchForPathChanges();\n }\n }\n ngOnDestroy() {\n this._eventManager.destroy();\n this._destroyed.next();\n this._destroyed.complete();\n if (this.polygon) {\n this.polygon.setMap(null);\n }\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.getDraggable\n */\n getDraggable() {\n this._assertInitialized();\n return this.polygon.getDraggable();\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.getEditable\n */\n getEditable() {\n this._assertInitialized();\n return this.polygon.getEditable();\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.getPath\n */\n getPath() {\n this._assertInitialized();\n return this.polygon.getPath();\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.getPaths\n */\n getPaths() {\n this._assertInitialized();\n return this.polygon.getPaths();\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.getVisible\n */\n getVisible() {\n this._assertInitialized();\n return this.polygon.getVisible();\n }\n _combineOptions() {\n return combineLatest([this._options, this._paths]).pipe(map(([options, paths]) => {\n const combinedOptions = Object.assign(Object.assign({}, options), { paths: paths || options.paths });\n return combinedOptions;\n }));\n }\n _watchForOptionsChanges() {\n this._options.pipe(takeUntil(this._destroyed)).subscribe(options => {\n this._assertInitialized();\n this.polygon.setOptions(options);\n });\n }\n _watchForPathChanges() {\n this._paths.pipe(takeUntil(this._destroyed)).subscribe(paths => {\n if (paths) {\n this._assertInitialized();\n this.polygon.setPaths(paths);\n }\n });\n }\n _assertInitialized() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._map.googleMap) {\n throw Error('Cannot access Google Map information before the API has been initialized. ' +\n 'Please wait for the API to load before trying to interact with it.');\n }\n if (!this.polygon) {\n throw Error('Cannot interact with a Google Map Polygon before it has been ' +\n 'initialized. Please wait for the Polygon to load before trying to interact with it.');\n }\n }\n }\n}\nMapPolygon.ɵfac = function MapPolygon_Factory(t) { return new (t || MapPolygon)(ɵngcc0.ɵɵdirectiveInject(GoogleMap), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nMapPolygon.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MapPolygon, selectors: [[\"map-polygon\"]], inputs: { options: \"options\", paths: \"paths\" }, outputs: { polygonClick: \"polygonClick\", polygonDblclick: \"polygonDblclick\", polygonDrag: \"polygonDrag\", polygonDragend: \"polygonDragend\", polygonDragstart: \"polygonDragstart\", polygonMousedown: \"polygonMousedown\", polygonMousemove: \"polygonMousemove\", polygonMouseout: \"polygonMouseout\", polygonMouseover: \"polygonMouseover\", polygonMouseup: \"polygonMouseup\", polygonRightclick: \"polygonRightclick\" }, exportAs: [\"mapPolygon\"] });\nMapPolygon.ctorParameters = () => [\n { type: GoogleMap },\n { type: NgZone }\n];\nMapPolygon.propDecorators = {\n options: [{ type: Input }],\n paths: [{ type: Input }],\n polygonClick: [{ type: Output }],\n polygonDblclick: [{ type: Output }],\n polygonDrag: [{ type: Output }],\n polygonDragend: [{ type: Output }],\n polygonDragstart: [{ type: Output }],\n polygonMousedown: [{ type: Output }],\n polygonMousemove: [{ type: Output }],\n polygonMouseout: [{ type: Output }],\n polygonMouseover: [{ type: Output }],\n polygonMouseup: [{ type: Output }],\n polygonRightclick: [{ type: Output }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MapPolygon, [{\n type: Directive,\n args: [{\n selector: 'map-polygon',\n exportAs: 'mapPolygon'\n }]\n }], function () { return [{ type: GoogleMap }, { type: ɵngcc0.NgZone }]; }, { polygonClick: [{\n type: Output\n }], polygonDblclick: [{\n type: Output\n }], polygonDrag: [{\n type: Output\n }], polygonDragend: [{\n type: Output\n }], polygonDragstart: [{\n type: Output\n }], polygonMousedown: [{\n type: Output\n }], polygonMousemove: [{\n type: Output\n }], polygonMouseout: [{\n type: Output\n }], polygonMouseover: [{\n type: Output\n }], polygonMouseup: [{\n type: Output\n }], polygonRightclick: [{\n type: Output\n }], options: [{\n type: Input\n }], paths: [{\n type: Input\n }] }); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Angular component that renders a Google Maps Polyline via the Google Maps JavaScript API.\n *\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline\n */\nclass MapPolyline {\n constructor(_map, _ngZone) {\n this._map = _map;\n this._ngZone = _ngZone;\n this._eventManager = new MapEventManager(this._ngZone);\n this._options = new BehaviorSubject({});\n this._path = new BehaviorSubject(undefined);\n this._destroyed = new Subject();\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.click\n */\n this.polylineClick = this._eventManager.getLazyEmitter('click');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.dblclick\n */\n this.polylineDblclick = this._eventManager.getLazyEmitter('dblclick');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.drag\n */\n this.polylineDrag = this._eventManager.getLazyEmitter('drag');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.dragend\n */\n this.polylineDragend = this._eventManager.getLazyEmitter('dragend');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.dragstart\n */\n this.polylineDragstart = this._eventManager.getLazyEmitter('dragstart');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.mousedown\n */\n this.polylineMousedown = this._eventManager.getLazyEmitter('mousedown');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.mousemove\n */\n this.polylineMousemove = this._eventManager.getLazyEmitter('mousemove');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.mouseout\n */\n this.polylineMouseout = this._eventManager.getLazyEmitter('mouseout');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.mouseover\n */\n this.polylineMouseover = this._eventManager.getLazyEmitter('mouseover');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.mouseup\n */\n this.polylineMouseup = this._eventManager.getLazyEmitter('mouseup');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.rightclick\n */\n this.polylineRightclick = this._eventManager.getLazyEmitter('rightclick');\n }\n set options(options) {\n this._options.next(options || {});\n }\n set path(path) {\n this._path.next(path);\n }\n ngOnInit() {\n if (this._map._isBrowser) {\n this._combineOptions().pipe(take(1)).subscribe(options => {\n // Create the object outside the zone so its events don't trigger change detection.\n // We'll bring it back in inside the `MapEventManager` only for the events that the\n // user has subscribed to.\n this._ngZone.runOutsideAngular(() => this.polyline = new google.maps.Polyline(options));\n this._assertInitialized();\n this.polyline.setMap(this._map.googleMap);\n this._eventManager.setTarget(this.polyline);\n });\n this._watchForOptionsChanges();\n this._watchForPathChanges();\n }\n }\n ngOnDestroy() {\n this._eventManager.destroy();\n this._destroyed.next();\n this._destroyed.complete();\n if (this.polyline) {\n this.polyline.setMap(null);\n }\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.getDraggable\n */\n getDraggable() {\n this._assertInitialized();\n return this.polyline.getDraggable();\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.getEditable\n */\n getEditable() {\n this._assertInitialized();\n return this.polyline.getEditable();\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.getPath\n */\n getPath() {\n this._assertInitialized();\n return this.polyline.getPath();\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.getVisible\n */\n getVisible() {\n this._assertInitialized();\n return this.polyline.getVisible();\n }\n _combineOptions() {\n return combineLatest([this._options, this._path]).pipe(map(([options, path]) => {\n const combinedOptions = Object.assign(Object.assign({}, options), { path: path || options.path });\n return combinedOptions;\n }));\n }\n _watchForOptionsChanges() {\n this._options.pipe(takeUntil(this._destroyed)).subscribe(options => {\n this._assertInitialized();\n this.polyline.setOptions(options);\n });\n }\n _watchForPathChanges() {\n this._path.pipe(takeUntil(this._destroyed)).subscribe(path => {\n if (path) {\n this._assertInitialized();\n this.polyline.setPath(path);\n }\n });\n }\n _assertInitialized() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._map.googleMap) {\n throw Error('Cannot access Google Map information before the API has been initialized. ' +\n 'Please wait for the API to load before trying to interact with it.');\n }\n if (!this.polyline) {\n throw Error('Cannot interact with a Google Map Polyline before it has been ' +\n 'initialized. Please wait for the Polyline to load before trying to interact with it.');\n }\n }\n }\n}\nMapPolyline.ɵfac = function MapPolyline_Factory(t) { return new (t || MapPolyline)(ɵngcc0.ɵɵdirectiveInject(GoogleMap), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nMapPolyline.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MapPolyline, selectors: [[\"map-polyline\"]], inputs: { options: \"options\", path: \"path\" }, outputs: { polylineClick: \"polylineClick\", polylineDblclick: \"polylineDblclick\", polylineDrag: \"polylineDrag\", polylineDragend: \"polylineDragend\", polylineDragstart: \"polylineDragstart\", polylineMousedown: \"polylineMousedown\", polylineMousemove: \"polylineMousemove\", polylineMouseout: \"polylineMouseout\", polylineMouseover: \"polylineMouseover\", polylineMouseup: \"polylineMouseup\", polylineRightclick: \"polylineRightclick\" }, exportAs: [\"mapPolyline\"] });\nMapPolyline.ctorParameters = () => [\n { type: GoogleMap },\n { type: NgZone }\n];\nMapPolyline.propDecorators = {\n options: [{ type: Input }],\n path: [{ type: Input }],\n polylineClick: [{ type: Output }],\n polylineDblclick: [{ type: Output }],\n polylineDrag: [{ type: Output }],\n polylineDragend: [{ type: Output }],\n polylineDragstart: [{ type: Output }],\n polylineMousedown: [{ type: Output }],\n polylineMousemove: [{ type: Output }],\n polylineMouseout: [{ type: Output }],\n polylineMouseover: [{ type: Output }],\n polylineMouseup: [{ type: Output }],\n polylineRightclick: [{ type: Output }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MapPolyline, [{\n type: Directive,\n args: [{\n selector: 'map-polyline',\n exportAs: 'mapPolyline'\n }]\n }], function () { return [{ type: GoogleMap }, { type: ɵngcc0.NgZone }]; }, { polylineClick: [{\n type: Output\n }], polylineDblclick: [{\n type: Output\n }], polylineDrag: [{\n type: Output\n }], polylineDragend: [{\n type: Output\n }], polylineDragstart: [{\n type: Output\n }], polylineMousedown: [{\n type: Output\n }], polylineMousemove: [{\n type: Output\n }], polylineMouseout: [{\n type: Output\n }], polylineMouseover: [{\n type: Output\n }], polylineMouseup: [{\n type: Output\n }], polylineRightclick: [{\n type: Output\n }], options: [{\n type: Input\n }], path: [{\n type: Input\n }] }); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Angular component that renders a Google Maps Rectangle via the Google Maps JavaScript API.\n *\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle\n */\nclass MapRectangle {\n constructor(_map, _ngZone) {\n this._map = _map;\n this._ngZone = _ngZone;\n this._eventManager = new MapEventManager(this._ngZone);\n this._options = new BehaviorSubject({});\n this._bounds = new BehaviorSubject(undefined);\n this._destroyed = new Subject();\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.boundsChanged\n */\n this.boundsChanged = this._eventManager.getLazyEmitter('bounds_changed');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.click\n */\n this.rectangleClick = this._eventManager.getLazyEmitter('click');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.dblclick\n */\n this.rectangleDblclick = this._eventManager.getLazyEmitter('dblclick');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.drag\n */\n this.rectangleDrag = this._eventManager.getLazyEmitter('drag');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.dragend\n */\n this.rectangleDragend = this._eventManager.getLazyEmitter('dragend');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.dragstart\n */\n this.rectangleDragstart = this._eventManager.getLazyEmitter('dragstart');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.mousedown\n */\n this.rectangleMousedown = this._eventManager.getLazyEmitter('mousedown');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.mousemove\n */\n this.rectangleMousemove = this._eventManager.getLazyEmitter('mousemove');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.mouseout\n */\n this.rectangleMouseout = this._eventManager.getLazyEmitter('mouseout');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.mouseover\n */\n this.rectangleMouseover = this._eventManager.getLazyEmitter('mouseover');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.mouseup\n */\n this.rectangleMouseup = this._eventManager.getLazyEmitter('mouseup');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.rightclick\n */\n this.rectangleRightclick = this._eventManager.getLazyEmitter('rightclick');\n }\n set options(options) {\n this._options.next(options || {});\n }\n set bounds(bounds) {\n this._bounds.next(bounds);\n }\n ngOnInit() {\n if (this._map._isBrowser) {\n this._combineOptions().pipe(take(1)).subscribe(options => {\n // Create the object outside the zone so its events don't trigger change detection.\n // We'll bring it back in inside the `MapEventManager` only for the events that the\n // user has subscribed to.\n this._ngZone.runOutsideAngular(() => {\n this.rectangle = new google.maps.Rectangle(options);\n });\n this._assertInitialized();\n this.rectangle.setMap(this._map.googleMap);\n this._eventManager.setTarget(this.rectangle);\n });\n this._watchForOptionsChanges();\n this._watchForBoundsChanges();\n }\n }\n ngOnDestroy() {\n this._eventManager.destroy();\n this._destroyed.next();\n this._destroyed.complete();\n if (this.rectangle) {\n this.rectangle.setMap(null);\n }\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.getBounds\n */\n getBounds() {\n this._assertInitialized();\n return this.rectangle.getBounds();\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.getDraggable\n */\n getDraggable() {\n this._assertInitialized();\n return this.rectangle.getDraggable();\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.getEditable\n */\n getEditable() {\n this._assertInitialized();\n return this.rectangle.getEditable();\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.getVisible\n */\n getVisible() {\n this._assertInitialized();\n return this.rectangle.getVisible();\n }\n _combineOptions() {\n return combineLatest([this._options, this._bounds]).pipe(map(([options, bounds]) => {\n const combinedOptions = Object.assign(Object.assign({}, options), { bounds: bounds || options.bounds });\n return combinedOptions;\n }));\n }\n _watchForOptionsChanges() {\n this._options.pipe(takeUntil(this._destroyed)).subscribe(options => {\n this._assertInitialized();\n this.rectangle.setOptions(options);\n });\n }\n _watchForBoundsChanges() {\n this._bounds.pipe(takeUntil(this._destroyed)).subscribe(bounds => {\n if (bounds) {\n this._assertInitialized();\n this.rectangle.setBounds(bounds);\n }\n });\n }\n _assertInitialized() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._map.googleMap) {\n throw Error('Cannot access Google Map information before the API has been initialized. ' +\n 'Please wait for the API to load before trying to interact with it.');\n }\n if (!this.rectangle) {\n throw Error('Cannot interact with a Google Map Rectangle before it has been initialized. ' +\n 'Please wait for the Rectangle to load before trying to interact with it.');\n }\n }\n }\n}\nMapRectangle.ɵfac = function MapRectangle_Factory(t) { return new (t || MapRectangle)(ɵngcc0.ɵɵdirectiveInject(GoogleMap), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nMapRectangle.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MapRectangle, selectors: [[\"map-rectangle\"]], inputs: { options: \"options\", bounds: \"bounds\" }, outputs: { boundsChanged: \"boundsChanged\", rectangleClick: \"rectangleClick\", rectangleDblclick: \"rectangleDblclick\", rectangleDrag: \"rectangleDrag\", rectangleDragend: \"rectangleDragend\", rectangleDragstart: \"rectangleDragstart\", rectangleMousedown: \"rectangleMousedown\", rectangleMousemove: \"rectangleMousemove\", rectangleMouseout: \"rectangleMouseout\", rectangleMouseover: \"rectangleMouseover\", rectangleMouseup: \"rectangleMouseup\", rectangleRightclick: \"rectangleRightclick\" }, exportAs: [\"mapRectangle\"] });\nMapRectangle.ctorParameters = () => [\n { type: GoogleMap },\n { type: NgZone }\n];\nMapRectangle.propDecorators = {\n options: [{ type: Input }],\n bounds: [{ type: Input }],\n boundsChanged: [{ type: Output }],\n rectangleClick: [{ type: Output }],\n rectangleDblclick: [{ type: Output }],\n rectangleDrag: [{ type: Output }],\n rectangleDragend: [{ type: Output }],\n rectangleDragstart: [{ type: Output }],\n rectangleMousedown: [{ type: Output }],\n rectangleMousemove: [{ type: Output }],\n rectangleMouseout: [{ type: Output }],\n rectangleMouseover: [{ type: Output }],\n rectangleMouseup: [{ type: Output }],\n rectangleRightclick: [{ type: Output }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MapRectangle, [{\n type: Directive,\n args: [{\n selector: 'map-rectangle',\n exportAs: 'mapRectangle'\n }]\n }], function () { return [{ type: GoogleMap }, { type: ɵngcc0.NgZone }]; }, { boundsChanged: [{\n type: Output\n }], rectangleClick: [{\n type: Output\n }], rectangleDblclick: [{\n type: Output\n }], rectangleDrag: [{\n type: Output\n }], rectangleDragend: [{\n type: Output\n }], rectangleDragstart: [{\n type: Output\n }], rectangleMousedown: [{\n type: Output\n }], rectangleMousemove: [{\n type: Output\n }], rectangleMouseout: [{\n type: Output\n }], rectangleMouseover: [{\n type: Output\n }], rectangleMouseup: [{\n type: Output\n }], rectangleRightclick: [{\n type: Output\n }], options: [{\n type: Input\n }], bounds: [{\n type: Input\n }] }); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Angular component that renders a Google Maps Traffic Layer via the Google Maps JavaScript API.\n *\n * See developers.google.com/maps/documentation/javascript/reference/map#TrafficLayer\n */\nclass MapTrafficLayer {\n constructor(_map, _ngZone) {\n this._map = _map;\n this._ngZone = _ngZone;\n this._autoRefresh = new BehaviorSubject(true);\n this._destroyed = new Subject();\n }\n /**\n * Whether the traffic layer refreshes with updated information automatically.\n */\n set autoRefresh(autoRefresh) {\n this._autoRefresh.next(autoRefresh);\n }\n ngOnInit() {\n if (this._map._isBrowser) {\n this._combineOptions().pipe(take(1)).subscribe(options => {\n // Create the object outside the zone so its events don't trigger change detection.\n this._ngZone.runOutsideAngular(() => {\n this.trafficLayer = new google.maps.TrafficLayer(options);\n });\n this._assertInitialized();\n this.trafficLayer.setMap(this._map.googleMap);\n });\n this._watchForAutoRefreshChanges();\n }\n }\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n if (this.trafficLayer) {\n this.trafficLayer.setMap(null);\n }\n }\n _combineOptions() {\n return this._autoRefresh.pipe(map(autoRefresh => {\n const combinedOptions = { autoRefresh };\n return combinedOptions;\n }));\n }\n _watchForAutoRefreshChanges() {\n this._combineOptions().pipe(takeUntil(this._destroyed)).subscribe(options => {\n this._assertInitialized();\n this.trafficLayer.setOptions(options);\n });\n }\n _assertInitialized() {\n if (!this._map.googleMap) {\n throw Error('Cannot access Google Map information before the API has been initialized. ' +\n 'Please wait for the API to load before trying to interact with it.');\n }\n if (!this.trafficLayer) {\n throw Error('Cannot interact with a Google Map Traffic Layer before it has been initialized. ' +\n 'Please wait for the Traffic Layer to load before trying to interact with it.');\n }\n }\n}\nMapTrafficLayer.ɵfac = function MapTrafficLayer_Factory(t) { return new (t || MapTrafficLayer)(ɵngcc0.ɵɵdirectiveInject(GoogleMap), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nMapTrafficLayer.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MapTrafficLayer, selectors: [[\"map-traffic-layer\"]], inputs: { autoRefresh: \"autoRefresh\" }, exportAs: [\"mapTrafficLayer\"] });\nMapTrafficLayer.ctorParameters = () => [\n { type: GoogleMap },\n { type: NgZone }\n];\nMapTrafficLayer.propDecorators = {\n autoRefresh: [{ type: Input }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MapTrafficLayer, [{\n type: Directive,\n args: [{\n selector: 'map-traffic-layer',\n exportAs: 'mapTrafficLayer'\n }]\n }], function () { return [{ type: GoogleMap }, { type: ɵngcc0.NgZone }]; }, { autoRefresh: [{\n type: Input\n }] }); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Angular component that renders a Google Maps Transit Layer via the Google Maps JavaScript API.\n *\n * See developers.google.com/maps/documentation/javascript/reference/map#TransitLayer\n */\nclass MapTransitLayer extends MapBaseLayer {\n _initializeObject() {\n this.transitLayer = new google.maps.TransitLayer();\n }\n _setMap() {\n this._assertLayerInitialized();\n this.transitLayer.setMap(this._map.googleMap);\n }\n _unsetMap() {\n if (this.transitLayer) {\n this.transitLayer.setMap(null);\n }\n }\n _assertLayerInitialized() {\n if (!this.transitLayer) {\n throw Error('Cannot interact with a Google Map Transit Layer before it has been initialized. ' +\n 'Please wait for the Transit Layer to load before trying to interact with it.');\n }\n }\n}\nMapTransitLayer.ɵfac = /*@__PURE__*/ function () { let ɵMapTransitLayer_BaseFactory; return function MapTransitLayer_Factory(t) { return (ɵMapTransitLayer_BaseFactory || (ɵMapTransitLayer_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(MapTransitLayer)))(t || MapTransitLayer); }; }();\nMapTransitLayer.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MapTransitLayer, selectors: [[\"map-transit-layer\"]], exportAs: [\"mapTransitLayer\"], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MapTransitLayer, [{\n type: Directive,\n args: [{\n selector: 'map-transit-layer',\n exportAs: 'mapTransitLayer'\n }]\n }], null, null); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst COMPONENTS = [\n GoogleMap,\n MapBaseLayer,\n MapBicyclingLayer,\n MapCircle,\n MapGroundOverlay,\n MapInfoWindow,\n MapKmlLayer,\n MapMarker,\n MapMarkerClusterer,\n MapPolygon,\n MapPolyline,\n MapRectangle,\n MapTrafficLayer,\n MapTransitLayer,\n];\nclass GoogleMapsModule {\n}\nGoogleMapsModule.ɵfac = function GoogleMapsModule_Factory(t) { return new (t || GoogleMapsModule)(); };\nGoogleMapsModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: GoogleMapsModule });\nGoogleMapsModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(GoogleMapsModule, [{\n type: NgModule,\n args: [{\n declarations: COMPONENTS,\n exports: COMPONENTS\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(GoogleMapsModule, { declarations: [GoogleMap, MapBaseLayer, MapBicyclingLayer, MapCircle, MapGroundOverlay, MapInfoWindow, MapKmlLayer, MapMarker, MapMarkerClusterer, MapPolygon, MapPolyline, MapRectangle, MapTrafficLayer, MapTransitLayer], exports: [GoogleMap, MapBaseLayer, MapBicyclingLayer, MapCircle, MapGroundOverlay, MapInfoWindow, MapKmlLayer, MapMarker, MapMarkerClusterer, MapPolygon, MapPolyline, MapRectangle, MapTrafficLayer, MapTransitLayer] }); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { GoogleMap, GoogleMapsModule, MapBaseLayer, MapBicyclingLayer, MapCircle, MapGroundOverlay, MapInfoWindow, MapKmlLayer, MapMarker, MapMarkerClusterer, MapPolygon, MapPolyline, MapRectangle, MapTrafficLayer, MapTransitLayer };\n\n","import { NgModule } from '@angular/core';\r\nimport { SharedModule } from '@app/shared/shared.module';\r\nimport { RouterModule } from '@angular/router';\r\nimport { GoogleMapSectionComponent } from './google-map-section.component';\r\nimport { DEMO_COMPONENTS } from './demos';\r\nimport { DocsModule } from '@app/shared/components/docs';\r\nimport { routes } from './demo-google-map.routes';\r\nimport { GoogleMapsModule } from '@angular/google-maps';\r\n\r\n@NgModule({\r\n declarations: [\r\n GoogleMapSectionComponent,\r\n ...DEMO_COMPONENTS\r\n ],\r\n imports: [\r\n SharedModule,\r\n DocsModule,\r\n RouterModule.forChild(routes),\r\n GoogleMapsModule\r\n ],\r\n exports: [GoogleMapSectionComponent],\r\n entryComponents: [...DEMO_COMPONENTS]\r\n})\r\nexport class DemoGoogleMapModule {\r\n static routes: any = routes;\r\n}\r\n","import { GoogleMapSectionComponent } from './google-map-section.component';\r\n\r\nexport const routes = [{ path: '', component: GoogleMapSectionComponent }];\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\n\r\n// Fill your google map api key here\r\nconst API_KEY = ''\r\n\r\n@Component({\r\n selector: 'demo-google-map-basic',\r\n templateUrl: './basic.html',\r\n})\r\nexport class DemoGoogleMapBasicComponent implements OnInit {\r\n apiLoaded: Observable;\r\n\r\n options: google.maps.MapOptions = {\r\n center: {lat: 40, lng: -20},\r\n zoom: 4\r\n };\r\n\r\n constructor(httpClient: HttpClient) {\r\n this.apiLoaded = httpClient.jsonp(`https://maps.googleapis.com/maps/api/js?key=${API_KEY}`, 'callback').pipe(\r\n map(() => true),\r\n catchError(() => of(false)),\r\n );\r\n }\r\n\r\n ngOnInit(): void { }\r\n}\r\n","
\r\n \r\n
","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\nimport { demoComponentContent } from './google-map-section.list';\r\nimport { ContentSection } from '@app/shared/components/docs/models/content-section.model';\r\n\r\n@Component({\r\n selector: 'google-map-section',\r\n templateUrl: './google-map-section.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class GoogleMapSectionComponent {\r\n name = 'GoogleMap';\r\n src = '';\r\n componentContent: ContentSection[] = demoComponentContent;\r\n}\r\n","\r\n

This component provides a Google Maps Angular component that implements the\r\n Google Maps JavaScript API.\r\n More component usage can be found here.

\r\n \r\n
\r\n ","\r\n\r\nimport { ContentSection } from '@app/shared/components/docs/models/content-section.model';\r\nimport { DemoTopSectionComponent } from '@app/shared/components/docs/demo-section-components/demo-top-section/index';\r\nimport { ExamplesComponent } from '@app/shared/components/docs/demo-section-components/demo-examples-section/index';\r\nimport { DemoGoogleMapBasicComponent } from './demos/basic/basic';\r\n\r\nexport const demoComponentContent: ContentSection[] = [\r\n {\r\n name: 'Usage',\r\n anchor: 'usage',\r\n outlet: DemoTopSectionComponent,\r\n content: {\r\n doc: require('!!raw-loader!./docs/usage.md')\r\n }\r\n },\r\n {\r\n name: 'Examples',\r\n anchor: 'examples',\r\n outlet: ExamplesComponent,\r\n content: [\r\n {\r\n title: 'Basic',\r\n anchor: 'basic',\r\n description: ``,\r\n component: require('!!raw-loader!./demos/basic/basic'),\r\n html: require('!!raw-loader!./demos/basic/basic.html'),\r\n outlet: DemoGoogleMapBasicComponent\r\n },\r\n ]\r\n }\r\n];\r\n","export default \"
\\r\\n \\r\\n
\";","export default \"import { Component, OnInit } from \\\"@angular/core\\\";\\r\\nimport { HttpClient } from '@angular/common/http';\\r\\nimport { Observable, of } from 'rxjs';\\r\\nimport { catchError, map } from 'rxjs/operators';\\r\\n\\r\\n// Fill your google map api key here\\r\\nconst API_KEY = ''\\r\\n\\r\\n@Component({\\r\\n selector: 'demo-google-map-basic',\\r\\n templateUrl: './basic.html',\\r\\n})\\r\\nexport class DemoGoogleMapBasicComponent implements OnInit {\\r\\n apiLoaded: Observable;\\r\\n\\r\\n options: google.maps.MapOptions = {\\r\\n center: {lat: 40, lng: -20},\\r\\n zoom: 4\\r\\n };\\r\\n\\r\\n constructor(httpClient: HttpClient) {\\r\\n this.apiLoaded = httpClient.jsonp(`https://maps.googleapis.com/maps/api/js?key=${API_KEY}`, 'callback').pipe(\\r\\n map(() => true),\\r\\n catchError(() => of(false)),\\r\\n );\\r\\n }\\r\\n\\r\\n ngOnInit(): void { }\\r\\n}\\r\\n\";","export default \"import { GoogleMapsModule } from '@angular/google-maps';\\r\\n\\r\\n@NgModule({\\r\\n imports: [GoogleMapsModule,...]\\r\\n})\\r\\nexport class AppModule(){}\\r\\n\";"],"names":[],"sourceRoot":"webpack:///"}