Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@capacitor/google-maps

Package Overview
Dependencies
Maintainers
18
Versions
443
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@capacitor/google-maps - npm Package Compare versions

Comparing version
7.2.1-dev-20251031T093642.0
to
7.2.1
+3
-1
dist/esm/web.js

@@ -67,6 +67,8 @@ import { WebPlugin } from '@capacitor/core';

version: 'weekly',
libraries: ['places'],
language,
region,
});
this.gMapsRef = await loader.importLibrary('maps');
const google = await loader.load();
this.gMapsRef = google.maps;
// Import marker library once

@@ -73,0 +75,0 @@ const { AdvancedMarkerElement, PinElement } = (await google.maps.importLibrary('marker'));

@@ -1,1 +0,1 @@

{"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGrF,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AA4BtD,MAAM,OAAO,sBAAuB,SAAQ,SAAS;IAArD;;QACU,aAAQ,GAAwC,SAAS,CAAC;QAC1D,0BAAqB,GAAgE,SAAS,CAAC;QAC/F,eAAU,GAAqD,SAAS,CAAC;QACzE,SAAI,GAsBR,EAAE,CAAC;QACC,iBAAY,GAAG,CAAC,CAAC;QACjB,sBAAiB,GAAG,CAAC,CAAC;QACtB,kBAAa,GAAG,CAAC,CAAC;QAClB,iBAAY,GAAG,CAAC,CAAC;QACjB,mBAAc,GAAG,CAAC,CAAC;QACnB,cAAS,GAAG,CAAC,CAAC;QAEd,0BAAqB,GAA0B,CACrD,CAA4B,EAC5B,OAAgB,EAChB,GAAoB,EACd,EAAE;;YACR,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YACrC,MAAM,KAAK,GAAU,EAAE,CAAC;YAExB,IAAI,OAAO,CAAC,OAAO,IAAI,SAAS,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC/D,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;oBACrC,IAAI,MAAM,YAAY,IAAI,CAAC,qBAAqB,EAAE,CAAC;wBACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;wBACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAqC,CAAC;wBAE9D,KAAK,CAAC,IAAI,CAAC;4BACT,QAAQ,EAAE,QAAQ;4BAClB,QAAQ,EAAE,QAAQ,CAAC,GAAG;4BACtB,SAAS,EAAE,QAAQ,CAAC,GAAG;4BACvB,KAAK,EAAE,MAAA,MAAM,CAAC,KAAK,mCAAI,EAAE;4BACzB,OAAO,EAAE,EAAE;yBACZ,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE;gBACrC,KAAK,EAAE,KAAK;gBACZ,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAC9B,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAC/B,IAAI,EAAE,OAAO,CAAC,KAAK;gBACnB,KAAK,EAAE,KAAK;aACb,CAAC,CAAC;QACL,CAAC,CAAC;IA+mBJ,CAAC;IA7mBS,YAAY,CAAC,GAAoB;QACvC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC3B,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;gBAC7B,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,eAAe,CAAC,KAAa,EAAE,MAAgD;QACrF,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;YAC1C,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC;gBAC3C,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,MAAc,EAAE,MAAe,EAAE,QAAiB;QAC9E,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;YACtD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC;gBAC5B,MAAM,EAAE,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE;gBACpB,OAAO,EAAE,QAAQ;gBACjB,QAAQ;gBACR,MAAM;aACP,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAEnD,6BAA6B;YAC7B,MAAM,EAAE,qBAAqB,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,aAAa,CAC5E,QAAQ,CACT,CAA8B,CAAC;YAChC,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;YACnD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;YAE7B,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAqB;QACrC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAqB;QACtC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAiB;QAC/B,iCAAiC;QACjC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC;YACjC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU;YAC/B,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;YAC7B,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;YACxB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;SACxB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAqB;QACpC,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAClD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;YACxB,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACrE,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAkB;QACjC,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAC1C,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;YACrC,OAAO,GAAG,SAAS,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,KAAuB;;QAC9C,MAAM,YAAY,GAAG,MAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,YAAY,mCAAI,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;QAExF,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAC7C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,YAAY,GAAG,YAAY,CAAC;QAClD,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC;YAC5C,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,YAAY,GAAG,SAAS,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,2BAA2B;QAC/B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;IAED,gBAAgB;QACd,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,KAAqB;QAC/C,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;gBAC1B,SAAS,CAAC,WAAW,CAAC,kBAAkB,CACtC,CAAC,QAA6B,EAAE,EAAE;oBAChC,MAAM,GAAG,GAAG;wBACV,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ;wBAC7B,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS;qBAC/B,CAAC;oBAEF,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;oBAEvC,IAAI,CAAC,eAAe,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;oBAEpD,IAAI,CAAC,eAAe,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;gBAChD,CAAC,EACD,GAAG,EAAE;oBACH,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;gBAC/D,CAAC,CACF,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;IACH,CAAC;IACD,KAAK,CAAC,UAAU,CAAC,KAAkB;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QAEnD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAqB;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QAEnD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO,IAAI,YAAY,CAAC;YACtB,SAAS,EAAE;gBACT,GAAG,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE;gBAChC,GAAG,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE;aACjC;YACD,MAAM,EAAE;gBACN,GAAG,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE;gBAC7B,GAAG,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE;aAC9B;YACD,SAAS,EAAE;gBACT,GAAG,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE;gBAChC,GAAG,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE;aACjC;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAoB;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAClD,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,KAAyB;QAC5C,MAAM,WAAW,GAAG,KAAK,CAAC,WAA0B,CAAC;QAErD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;QAEpC,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAEvC,MAAM,gBAAgB,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;YACpD,UAAU,EAAE,UAAU,KAAK,EAAE,IAAI;gBAC/B,OAAO,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;YAC7G,CAAC;YACD,QAAQ,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;YACxC,OAAO,EAAE,WAAW,CAAC,OAAO;SAC7B,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC;QAExD,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAE3C,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,KAA4B;QAClD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;QACpC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO;QACT,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,eAAe,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YACzD,IAAI,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC3F,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAChC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBAC7D,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAqB;QACpC,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAEhC,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACvC,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;YAEjE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC;YAElC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC;YACjC,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC;YAE5D,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnB,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC;QAED,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAoB;QAClC,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;QAEnF,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC;QAElC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC;QACjD,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC;QAE5D,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,KAAwB;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAEhC,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACjC,IAAI,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;gBACpB,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC;gBAC3B,OAAO,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAuB;QACxC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC;YACvD,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAqB;QACrC,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE/B,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACxC,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACrD,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAExB,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC;YAC1C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;YAE/C,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACpB,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC;QAED,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,IAAwB;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE/B,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACjC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC9B,OAAO,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAoB;QACnC,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE/B,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAClD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAEvB,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;YACxC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;YAE7C,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnB,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC;QAED,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAuB;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE/B,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAChC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC7B,OAAO,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAsB;QACvC,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE/B,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC1C,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YACxD,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;YACtC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAEzB,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC;YAC5C,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;YAEjD,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjB,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC;QAED,OAAO;YACL,GAAG,EAAE,OAAO;SACb,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,IAAyB;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE/B,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAClC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC/B,OAAO,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,KAA2B;;QAChD,MAAM,OAAO,GAA+C,EAAE,CAAC;QAE/D,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC;YACxD,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG;YAC5B,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,IAAI,qBAAqB,CAAC;gBACnC,SAAS,EAAE,MAAA,KAAK,CAAC,cAAc,mCAAI,CAAC;aACrC,CAAC;YACF,cAAc,EAAE,IAAI,CAAC,qBAAqB;SAC3C,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,KAAqB;QAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxC,IAAI,WAAW,CAAC,eAAe,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAEnD,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACzC,WAAW,CAAC,eAAe,GAAG,SAAS,CAAC;YAExC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,MAAM,CAAC,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAoB;QAC/B,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACvC,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEvE,+CAA+C;QAC/C,MAAM,MAAM,qBAAQ,KAAK,CAAC,MAAM,CAAE,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,CAAC,KAAK,GAAG,iBAAiB,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;QACrD,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG;YACpB,GAAG,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC;YACtD,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO,EAAE,EAAE;YACX,YAAY,EAAE,EAAE;YAChB,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,EAAE;SACd,CAAC;QACF,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAqB;QACjC,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpC,OAAO,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,KAA4B;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,KAA0B;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrB,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC;YAC9B,SAAS,EAAE;gBACT,GAAG,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE;gBAChC,GAAG,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE;aACjC;YACD,MAAM,EAAE;gBACN,GAAG,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE;gBAC7B,GAAG,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE;aAC9B;YACD,SAAS,EAAE;gBACT,GAAG,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE;gBAChC,GAAG,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE;aACjC;SACF,CAAC,CAAC;QACH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC5B,CAAC;IAEO,eAAe,CAAC,KAAmB;QACzC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CACjC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAChE,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CACjE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,KAAa,EAAE,QAAgB,EAAE,MAA0B;QAClF,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE;YAC/B,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE;gBACpC,KAAK,EAAE,KAAK;gBACZ,QAAQ,EAAE,QAAQ;gBAClB,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;aACvB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,KAAa,EAAE,SAAiB,EAAE,OAA4B;QACtF,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE;YAChC,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE;gBACrC,KAAK,EAAE,KAAK;gBACZ,SAAS,EAAE,SAAS;gBACpB,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;aACxB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,KAAa,EAAE,UAAkB,EAAE,QAA8B;QAC1F,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE;YACjC,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE;gBACtC,KAAK,EAAE,KAAK;gBACZ,UAAU,EAAE,UAAU;gBACtB,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;aACzB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,KAAa,EACb,QAAgB,EAChB,MAAgD;QAEhD,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE;;YAC/B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAqC,CAAC;YAC9D,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE;gBACpC,KAAK,EAAE,KAAK;gBACZ,QAAQ,EAAE,QAAQ;gBAClB,QAAQ,EAAE,QAAQ,CAAC,GAAG;gBACtB,SAAS,EAAE,QAAQ,CAAC,GAAG;gBACvB,KAAK,EAAE,MAAA,MAAM,CAAC,KAAK,mCAAI,EAAE;gBACzB,OAAO,EAAE,EAAE;aACZ,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACxB,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,GAAG,EAAE;;gBACnC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAqC,CAAC;gBAC9D,IAAI,CAAC,eAAe,CAAC,mBAAmB,EAAE;oBACxC,KAAK,EAAE,KAAK;oBACZ,QAAQ,EAAE,QAAQ;oBAClB,QAAQ,EAAE,QAAQ,CAAC,GAAG;oBACtB,SAAS,EAAE,QAAQ,CAAC,GAAG;oBACvB,KAAK,EAAE,MAAA,MAAM,CAAC,KAAK,mCAAI,EAAE;oBACzB,OAAO,EAAE,EAAE;iBACZ,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE;;gBAC9B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAqC,CAAC;gBAC9D,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE;oBACnC,KAAK,EAAE,KAAK;oBACZ,QAAQ,EAAE,QAAQ;oBAClB,QAAQ,EAAE,QAAQ,CAAC,GAAG;oBACtB,SAAS,EAAE,QAAQ,CAAC,GAAG;oBACvB,KAAK,EAAE,MAAA,MAAM,CAAC,KAAK,mCAAI,EAAE;oBACzB,OAAO,EAAE,EAAE;iBACZ,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE;;gBACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAqC,CAAC;gBAC9D,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE;oBACtC,KAAK,EAAE,KAAK;oBACZ,QAAQ,EAAE,QAAQ;oBAClB,QAAQ,EAAE,QAAQ,CAAC,GAAG;oBACtB,SAAS,EAAE,QAAQ,CAAC,GAAG;oBACvB,KAAK,EAAE,MAAA,MAAM,CAAC,KAAK,mCAAI,EAAE;oBACzB,OAAO,EAAE,EAAE;iBACZ,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,KAAa;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;QAEjC,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE;;YACjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACtD,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE;gBACnC,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,GAAG,CAAC,UAAU,EAAE;gBACzB,MAAM,EAAE,MAAM;gBACd,QAAQ,EAAE,MAAA,GAAG,CAAC,SAAS,EAAE,0CAAE,GAAG,EAAE;gBAChC,SAAS,EAAE,MAAA,GAAG,CAAC,SAAS,EAAE,0CAAE,GAAG,EAAE;gBACjC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE;gBACnB,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE;aACpB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,WAAW,CAAC,gBAAgB,EAAE,GAAG,EAAE;YACrC,IAAI,CAAC,eAAe,CAAC,qBAAqB,EAAE;gBAC1C,KAAK,EAAE,KAAK;gBACZ,SAAS,EAAE,IAAI;aAChB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,WAAW,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;;YAC3C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACtD,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE;gBACtC,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,GAAG,CAAC,UAAU,EAAE;gBACzB,MAAM,EAAE,MAAM;gBACd,QAAQ,EAAE,MAAA,GAAG,CAAC,SAAS,EAAE,0CAAE,GAAG,EAAE;gBAChC,SAAS,EAAE,MAAA,GAAG,CAAC,SAAS,EAAE,0CAAE,GAAG,EAAE;gBACjC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE;gBACnB,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE;aACpB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAyD,EAAE,EAAE;;YACrF,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE;gBACjC,KAAK,EAAE,KAAK;gBACZ,QAAQ,EAAE,MAAA,CAAC,CAAC,MAAM,0CAAE,GAAG,EAAE;gBACzB,SAAS,EAAE,MAAA,CAAC,CAAC,MAAM,0CAAE,GAAG,EAAE;aAC3B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE;YACjC,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC;IAEO,eAAe,CAAC,MAAc,EAAE,GAAoB;;QAC1D,IAAI,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,OAAO,GAA4B,SAAS,CAAC;QAEjD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC1C,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC;YACzB,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;gBAC/C,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC;YACnD,CAAC;YACD,OAAO,GAAG,GAAG,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,GAAyC;gBACvD,KAAK,EAAE,MAAA,MAAM,CAAC,OAAO,mCAAI,CAAC;gBAC1B,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,UAAU,EAAE,MAAM,CAAC,SAAS;oBAC1B,CAAC,CAAC,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG;oBAC5E,CAAC,CAAC,SAAS;aACd,CAAC;YAEF,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAC5C,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QACxB,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,IAAI,CAAC,qBAAqB,CAAC;YACpD,QAAQ,EAAE,MAAM,CAAC,UAAU;YAC3B,GAAG,EAAE,GAAG;YACR,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,YAAY,EAAE,MAAM,CAAC,SAAS;SAC/B,CAAC,CAAC;QAEH,OAAO,cAAc,CAAC;IACxB,CAAC;CACF","sourcesContent":["import { WebPlugin } from '@capacitor/core';\nimport type { Cluster, onClusterClickHandler } from '@googlemaps/markerclusterer';\nimport { MarkerClusterer, SuperClusterAlgorithm } from '@googlemaps/markerclusterer';\n\nimport type { Marker, TileOverlay } from './definitions';\nimport { MapType, LatLngBounds } from './definitions';\nimport type {\n AddTileOverlayArgs,\n AddMarkerArgs,\n CameraArgs,\n AddMarkersArgs,\n CapacitorGoogleMapsPlugin,\n CreateMapArgs,\n CurrentLocArgs,\n DestroyMapArgs,\n MapTypeArgs,\n PaddingArgs,\n RemoveMarkerArgs,\n TrafficLayerArgs,\n RemoveMarkersArgs,\n MapBoundsContainsArgs,\n EnableClusteringArgs,\n FitBoundsArgs,\n MapBoundsExtendArgs,\n AddPolygonsArgs,\n RemovePolygonsArgs,\n AddCirclesArgs,\n RemoveCirclesArgs,\n AddPolylinesArgs,\n RemovePolylinesArgs,\n RemoveTileOverlayArgs,\n} from './implementation';\n\nexport class CapacitorGoogleMapsWeb extends WebPlugin implements CapacitorGoogleMapsPlugin {\n private gMapsRef: google.maps.MapsLibrary | undefined = undefined;\n private AdvancedMarkerElement: typeof google.maps.marker.AdvancedMarkerElement | undefined = undefined;\n private PinElement: typeof google.maps.marker.PinElement | undefined = undefined;\n private maps: {\n [id: string]: {\n element: HTMLElement;\n map: google.maps.Map;\n markers: {\n [id: string]: google.maps.marker.AdvancedMarkerElement;\n };\n tileOverlays: {\n [id: string]: google.maps.ImageMapType;\n };\n polygons: {\n [id: string]: google.maps.Polygon;\n };\n circles: {\n [id: string]: google.maps.Circle;\n };\n polylines: {\n [id: string]: google.maps.Polyline;\n };\n markerClusterer?: MarkerClusterer;\n trafficLayer?: google.maps.TrafficLayer;\n };\n } = {};\n private currMarkerId = 0;\n private currTileOverlayId = 0;\n private currPolygonId = 0;\n private currCircleId = 0;\n private currPolylineId = 0;\n private currMapId = 0;\n\n private onClusterClickHandler: onClusterClickHandler = (\n _: google.maps.MapMouseEvent,\n cluster: Cluster,\n map: google.maps.Map\n ): void => {\n const mapId = this.getIdFromMap(map);\n const items: any[] = [];\n\n if (cluster.markers != undefined && this.AdvancedMarkerElement) {\n for (const marker of cluster.markers) {\n if (marker instanceof this.AdvancedMarkerElement) {\n const markerId = this.getIdFromMarker(mapId, marker);\n const position = marker.position as google.maps.LatLngLiteral;\n\n items.push({\n markerId: markerId,\n latitude: position.lat,\n longitude: position.lng,\n title: marker.title ?? '',\n snippet: '',\n });\n }\n }\n }\n\n this.notifyListeners('onClusterClick', {\n mapId: mapId,\n latitude: cluster.position.lat,\n longitude: cluster.position.lng,\n size: cluster.count,\n items: items,\n });\n };\n\n private getIdFromMap(map: google.maps.Map): string {\n for (const id in this.maps) {\n if (this.maps[id].map == map) {\n return id;\n }\n }\n\n return '';\n }\n\n private getIdFromMarker(mapId: string, marker: google.maps.marker.AdvancedMarkerElement): string {\n for (const id in this.maps[mapId].markers) {\n if (this.maps[mapId].markers[id] == marker) {\n return id;\n }\n }\n\n return '';\n }\n\n private async importGoogleLib(apiKey: string, region?: string, language?: string) {\n if (this.gMapsRef === undefined) {\n const lib = await import('@googlemaps/js-api-loader');\n const loader = new lib.Loader({\n apiKey: apiKey ?? '',\n version: 'weekly',\n language,\n region,\n });\n this.gMapsRef = await loader.importLibrary('maps');\n\n // Import marker library once\n const { AdvancedMarkerElement, PinElement } = (await google.maps.importLibrary(\n 'marker'\n )) as google.maps.MarkerLibrary;\n this.AdvancedMarkerElement = AdvancedMarkerElement;\n this.PinElement = PinElement;\n\n console.log('Loaded google maps API');\n }\n }\n\n async enableTouch(_args: { id: string }): Promise<void> {\n this.maps[_args.id].map.setOptions({ gestureHandling: 'auto' });\n }\n\n async disableTouch(_args: { id: string }): Promise<void> {\n this.maps[_args.id].map.setOptions({ gestureHandling: 'none' });\n }\n\n async setCamera(_args: CameraArgs): Promise<void> {\n // Animation not supported yet...\n this.maps[_args.id].map.moveCamera({\n center: _args.config.coordinate,\n heading: _args.config.bearing,\n tilt: _args.config.angle,\n zoom: _args.config.zoom,\n });\n }\n\n async getMapType(_args: { id: string }): Promise<{ type: string }> {\n let type = this.maps[_args.id].map.getMapTypeId();\n if (type !== undefined) {\n if (type === 'roadmap') {\n type = MapType.Normal;\n }\n return { type: `${type.charAt(0).toUpperCase()}${type.slice(1)}` };\n }\n throw new Error('Map type is undefined');\n }\n\n async setMapType(_args: MapTypeArgs): Promise<void> {\n let mapType = _args.mapType.toLowerCase();\n if (_args.mapType === MapType.Normal) {\n mapType = 'roadmap';\n }\n this.maps[_args.id].map.setMapTypeId(mapType);\n }\n\n async enableIndoorMaps(): Promise<void> {\n throw new Error('Method not supported on web.');\n }\n\n async enableTrafficLayer(_args: TrafficLayerArgs): Promise<void> {\n const trafficLayer = this.maps[_args.id].trafficLayer ?? new google.maps.TrafficLayer();\n\n if (_args.enabled) {\n trafficLayer.setMap(this.maps[_args.id].map);\n this.maps[_args.id].trafficLayer = trafficLayer;\n } else if (this.maps[_args.id].trafficLayer) {\n trafficLayer.setMap(null);\n this.maps[_args.id].trafficLayer = undefined;\n }\n }\n\n async enableAccessibilityElements(): Promise<void> {\n throw new Error('Method not supported on web.');\n }\n\n dispatchMapEvent(): Promise<void> {\n throw new Error('Method not supported on web.');\n }\n\n async enableCurrentLocation(_args: CurrentLocArgs): Promise<void> {\n if (_args.enabled) {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(\n (position: GeolocationPosition) => {\n const pos = {\n lat: position.coords.latitude,\n lng: position.coords.longitude,\n };\n\n this.maps[_args.id].map.setCenter(pos);\n\n this.notifyListeners('onMyLocationButtonClick', {});\n\n this.notifyListeners('onMyLocationClick', {});\n },\n () => {\n throw new Error('Geolocation not supported on web browser.');\n }\n );\n } else {\n throw new Error('Geolocation not supported on web browser.');\n }\n }\n }\n async setPadding(_args: PaddingArgs): Promise<void> {\n const bounds = this.maps[_args.id].map.getBounds();\n\n if (bounds !== undefined) {\n this.maps[_args.id].map.fitBounds(bounds, _args.padding);\n }\n }\n\n async getMapBounds(_args: { id: string }): Promise<LatLngBounds> {\n const bounds = this.maps[_args.id].map.getBounds();\n\n if (!bounds) {\n throw new Error('Google Map Bounds could not be found.');\n }\n\n return new LatLngBounds({\n southwest: {\n lat: bounds.getSouthWest().lat(),\n lng: bounds.getSouthWest().lng(),\n },\n center: {\n lat: bounds.getCenter().lat(),\n lng: bounds.getCenter().lng(),\n },\n northeast: {\n lat: bounds.getNorthEast().lat(),\n lng: bounds.getNorthEast().lng(),\n },\n });\n }\n\n async fitBounds(_args: FitBoundsArgs): Promise<void> {\n const map = this.maps[_args.id].map;\n const bounds = this.getLatLngBounds(_args.bounds);\n map.fitBounds(bounds, _args.padding);\n }\n\n async addTileOverlay(_args: AddTileOverlayArgs): Promise<{ id: string }> {\n const tileOverlay = _args.tileOverlay as TileOverlay;\n\n const map = this.maps[_args.id].map;\n\n const id = '' + this.currTileOverlayId;\n\n const customMapOverlay = new google.maps.ImageMapType({\n getTileUrl: function (coord, zoom) {\n return tileOverlay.url.replace('{x}', `${coord.x}`).replace('{y}', `${coord.y}`).replace('{z}', `${zoom}`);\n },\n tileSize: new google.maps.Size(256, 256),\n opacity: tileOverlay.opacity,\n });\n\n this.maps[_args.id].tileOverlays[id] = customMapOverlay;\n\n map.overlayMapTypes.push(customMapOverlay);\n\n this.currTileOverlayId++;\n\n return { id: id };\n }\n\n async removeTileOverlay(_args: RemoveTileOverlayArgs): Promise<void> {\n const map = this.maps[_args.id].map;\n if (!map) {\n return;\n }\n\n for (let i = 0; i < map.overlayMapTypes.getLength(); i++) {\n if (map.overlayMapTypes.getAt(i) === this.maps[_args.id].tileOverlays[_args.tileOverlayId]) {\n map.overlayMapTypes.removeAt(i);\n delete this.maps[_args.id].tileOverlays[_args.tileOverlayId];\n break;\n }\n }\n }\n\n async addMarkers(_args: AddMarkersArgs): Promise<{ ids: string[] }> {\n const markerIds: string[] = [];\n const map = this.maps[_args.id];\n\n for (const markerArgs of _args.markers) {\n const advancedMarker = this.buildMarkerOpts(markerArgs, map.map);\n\n const id = '' + this.currMarkerId;\n\n map.markers[id] = advancedMarker;\n await this.setMarkerListeners(_args.id, id, advancedMarker);\n\n markerIds.push(id);\n this.currMarkerId++;\n }\n\n return { ids: markerIds };\n }\n\n async addMarker(_args: AddMarkerArgs): Promise<{ id: string }> {\n const advancedMarker = this.buildMarkerOpts(_args.marker, this.maps[_args.id].map);\n\n const id = '' + this.currMarkerId;\n\n this.maps[_args.id].markers[id] = advancedMarker;\n await this.setMarkerListeners(_args.id, id, advancedMarker);\n\n this.currMarkerId++;\n\n return { id: id };\n }\n\n async removeMarkers(_args: RemoveMarkersArgs): Promise<void> {\n const map = this.maps[_args.id];\n\n for (const id of _args.markerIds) {\n if (map.markers[id]) {\n map.markers[id].map = null;\n delete map.markers[id];\n }\n }\n }\n\n async removeMarker(_args: RemoveMarkerArgs): Promise<void> {\n if (this.maps[_args.id].markers[_args.markerId]) {\n this.maps[_args.id].markers[_args.markerId].map = null;\n delete this.maps[_args.id].markers[_args.markerId];\n }\n }\n\n async addPolygons(args: AddPolygonsArgs): Promise<{ ids: string[] }> {\n const polygonIds: string[] = [];\n const map = this.maps[args.id];\n\n for (const polygonArgs of args.polygons) {\n const polygon = new google.maps.Polygon(polygonArgs);\n polygon.setMap(map.map);\n\n const id = '' + this.currPolygonId;\n this.maps[args.id].polygons[id] = polygon;\n this.setPolygonListeners(args.id, id, polygon);\n\n polygonIds.push(id);\n this.currPolygonId++;\n }\n\n return { ids: polygonIds };\n }\n\n async removePolygons(args: RemovePolygonsArgs): Promise<void> {\n const map = this.maps[args.id];\n\n for (const id of args.polygonIds) {\n map.polygons[id].setMap(null);\n delete map.polygons[id];\n }\n }\n\n async addCircles(args: AddCirclesArgs): Promise<{ ids: string[] }> {\n const circleIds: string[] = [];\n const map = this.maps[args.id];\n\n for (const circleArgs of args.circles) {\n const circle = new google.maps.Circle(circleArgs);\n circle.setMap(map.map);\n\n const id = '' + this.currCircleId;\n this.maps[args.id].circles[id] = circle;\n this.setCircleListeners(args.id, id, circle);\n\n circleIds.push(id);\n this.currCircleId++;\n }\n\n return { ids: circleIds };\n }\n\n async removeCircles(args: RemoveCirclesArgs): Promise<void> {\n const map = this.maps[args.id];\n\n for (const id of args.circleIds) {\n map.circles[id].setMap(null);\n delete map.circles[id];\n }\n }\n\n async addPolylines(args: AddPolylinesArgs): Promise<{ ids: string[] }> {\n const lineIds: string[] = [];\n const map = this.maps[args.id];\n\n for (const polylineArgs of args.polylines) {\n const polyline = new google.maps.Polyline(polylineArgs);\n polyline.set('tag', polylineArgs.tag);\n polyline.setMap(map.map);\n\n const id = '' + this.currPolylineId;\n this.maps[args.id].polylines[id] = polyline;\n this.setPolylineListeners(args.id, id, polyline);\n\n lineIds.push(id);\n this.currPolylineId++;\n }\n\n return {\n ids: lineIds,\n };\n }\n\n async removePolylines(args: RemovePolylinesArgs): Promise<void> {\n const map = this.maps[args.id];\n\n for (const id of args.polylineIds) {\n map.polylines[id].setMap(null);\n delete map.polylines[id];\n }\n }\n\n async enableClustering(_args: EnableClusteringArgs): Promise<void> {\n const markers: google.maps.marker.AdvancedMarkerElement[] = [];\n\n for (const id in this.maps[_args.id].markers) {\n markers.push(this.maps[_args.id].markers[id]);\n }\n\n this.maps[_args.id].markerClusterer = new MarkerClusterer({\n map: this.maps[_args.id].map,\n markers: markers,\n algorithm: new SuperClusterAlgorithm({\n minPoints: _args.minClusterSize ?? 4,\n }),\n onClusterClick: this.onClusterClickHandler,\n });\n }\n\n async disableClustering(_args: { id: string }): Promise<void> {\n const mapInstance = this.maps[_args.id];\n if (mapInstance.markerClusterer) {\n const markers = Object.values(mapInstance.markers);\n\n mapInstance.markerClusterer.setMap(null);\n mapInstance.markerClusterer = undefined;\n\n for (const marker of markers) {\n marker.map = mapInstance.map;\n }\n }\n }\n\n async onScroll(): Promise<void> {\n throw new Error('Method not supported on web.');\n }\n\n async onResize(): Promise<void> {\n throw new Error('Method not supported on web.');\n }\n\n async onDisplay(): Promise<void> {\n throw new Error('Method not supported on web.');\n }\n\n async create(_args: CreateMapArgs): Promise<void> {\n console.log(`Create map: ${_args.id}`);\n await this.importGoogleLib(_args.apiKey, _args.region, _args.language);\n\n // Ensure we have a Map ID for Advanced Markers\n const config = { ..._args.config };\n if (!config.mapId) {\n config.mapId = `capacitor_map_${this.currMapId++}`;\n }\n\n this.maps[_args.id] = {\n map: new window.google.maps.Map(_args.element, config),\n element: _args.element,\n markers: {},\n tileOverlays: {},\n polygons: {},\n circles: {},\n polylines: {},\n };\n this.setMapListeners(_args.id);\n }\n\n async destroy(_args: DestroyMapArgs): Promise<void> {\n console.log(`Destroy map: ${_args.id}`);\n const mapItem = this.maps[_args.id];\n mapItem.element.innerHTML = '';\n mapItem.map.unbindAll();\n delete this.maps[_args.id];\n }\n\n async mapBoundsContains(_args: MapBoundsContainsArgs): Promise<{ contains: boolean }> {\n const bounds = this.getLatLngBounds(_args.bounds);\n const point = new google.maps.LatLng(_args.point.lat, _args.point.lng);\n return { contains: bounds.contains(point) };\n }\n\n async mapBoundsExtend(_args: MapBoundsExtendArgs): Promise<{ bounds: LatLngBounds }> {\n const bounds = this.getLatLngBounds(_args.bounds);\n const point = new google.maps.LatLng(_args.point.lat, _args.point.lng);\n bounds.extend(point);\n const result = new LatLngBounds({\n southwest: {\n lat: bounds.getSouthWest().lat(),\n lng: bounds.getSouthWest().lng(),\n },\n center: {\n lat: bounds.getCenter().lat(),\n lng: bounds.getCenter().lng(),\n },\n northeast: {\n lat: bounds.getNorthEast().lat(),\n lng: bounds.getNorthEast().lng(),\n },\n });\n return { bounds: result };\n }\n\n private getLatLngBounds(_args: LatLngBounds): google.maps.LatLngBounds {\n return new google.maps.LatLngBounds(\n new google.maps.LatLng(_args.southwest.lat, _args.southwest.lng),\n new google.maps.LatLng(_args.northeast.lat, _args.northeast.lng)\n );\n }\n\n async setCircleListeners(mapId: string, circleId: string, circle: google.maps.Circle): Promise<void> {\n circle.addListener('click', () => {\n this.notifyListeners('onCircleClick', {\n mapId: mapId,\n circleId: circleId,\n tag: circle.get('tag'),\n });\n });\n }\n\n async setPolygonListeners(mapId: string, polygonId: string, polygon: google.maps.Polygon): Promise<void> {\n polygon.addListener('click', () => {\n this.notifyListeners('onPolygonClick', {\n mapId: mapId,\n polygonId: polygonId,\n tag: polygon.get('tag'),\n });\n });\n }\n\n async setPolylineListeners(mapId: string, polylineId: string, polyline: google.maps.Polyline): Promise<void> {\n polyline.addListener('click', () => {\n this.notifyListeners('onPolylineClick', {\n mapId: mapId,\n polylineId: polylineId,\n tag: polyline.get('tag'),\n });\n });\n }\n\n async setMarkerListeners(\n mapId: string,\n markerId: string,\n marker: google.maps.marker.AdvancedMarkerElement\n ): Promise<void> {\n marker.addListener('click', () => {\n const position = marker.position as google.maps.LatLngLiteral;\n this.notifyListeners('onMarkerClick', {\n mapId: mapId,\n markerId: markerId,\n latitude: position.lat,\n longitude: position.lng,\n title: marker.title ?? '',\n snippet: '',\n });\n });\n\n if (marker.gmpDraggable) {\n marker.addListener('dragstart', () => {\n const position = marker.position as google.maps.LatLngLiteral;\n this.notifyListeners('onMarkerDragStart', {\n mapId: mapId,\n markerId: markerId,\n latitude: position.lat,\n longitude: position.lng,\n title: marker.title ?? '',\n snippet: '',\n });\n });\n\n marker.addListener('drag', () => {\n const position = marker.position as google.maps.LatLngLiteral;\n this.notifyListeners('onMarkerDrag', {\n mapId: mapId,\n markerId: markerId,\n latitude: position.lat,\n longitude: position.lng,\n title: marker.title ?? '',\n snippet: '',\n });\n });\n\n marker.addListener('dragend', () => {\n const position = marker.position as google.maps.LatLngLiteral;\n this.notifyListeners('onMarkerDragEnd', {\n mapId: mapId,\n markerId: markerId,\n latitude: position.lat,\n longitude: position.lng,\n title: marker.title ?? '',\n snippet: '',\n });\n });\n }\n }\n\n async setMapListeners(mapId: string): Promise<void> {\n const map = this.maps[mapId].map;\n\n map.addListener('idle', async () => {\n const bounds = await this.getMapBounds({ id: mapId });\n this.notifyListeners('onCameraIdle', {\n mapId: mapId,\n bearing: map.getHeading(),\n bounds: bounds,\n latitude: map.getCenter()?.lat(),\n longitude: map.getCenter()?.lng(),\n tilt: map.getTilt(),\n zoom: map.getZoom(),\n });\n });\n\n map.addListener('center_changed', () => {\n this.notifyListeners('onCameraMoveStarted', {\n mapId: mapId,\n isGesture: true,\n });\n });\n\n map.addListener('bounds_changed', async () => {\n const bounds = await this.getMapBounds({ id: mapId });\n this.notifyListeners('onBoundsChanged', {\n mapId: mapId,\n bearing: map.getHeading(),\n bounds: bounds,\n latitude: map.getCenter()?.lat(),\n longitude: map.getCenter()?.lng(),\n tilt: map.getTilt(),\n zoom: map.getZoom(),\n });\n });\n\n map.addListener('click', (e: google.maps.MapMouseEvent | google.maps.IconMouseEvent) => {\n this.notifyListeners('onMapClick', {\n mapId: mapId,\n latitude: e.latLng?.lat(),\n longitude: e.latLng?.lng(),\n });\n });\n\n this.notifyListeners('onMapReady', {\n mapId: mapId,\n });\n }\n\n private buildMarkerOpts(marker: Marker, map: google.maps.Map): google.maps.marker.AdvancedMarkerElement {\n if (!this.AdvancedMarkerElement || !this.PinElement) {\n throw new Error('Marker library not loaded');\n }\n\n let content: HTMLElement | undefined = undefined;\n\n if (marker.iconUrl) {\n const img = document.createElement('img');\n img.src = marker.iconUrl;\n if (marker.iconSize) {\n img.style.width = `${marker.iconSize.width}px`;\n img.style.height = `${marker.iconSize.height}px`;\n }\n content = img;\n } else {\n const pinOptions: google.maps.marker.PinElementOptions = {\n scale: marker.opacity ?? 1,\n glyph: marker.title,\n background: marker.tintColor\n ? `rgb(${marker.tintColor.r}, ${marker.tintColor.g}, ${marker.tintColor.b})`\n : undefined,\n };\n\n const pin = new this.PinElement(pinOptions);\n content = pin.element;\n }\n\n const advancedMarker = new this.AdvancedMarkerElement({\n position: marker.coordinate,\n map: map,\n content: content,\n title: marker.title,\n gmpDraggable: marker.draggable,\n });\n\n return advancedMarker;\n }\n}\n"]}
{"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"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","sourcesContent":["import { WebPlugin } from '@capacitor/core';\nimport type { Cluster, onClusterClickHandler } from '@googlemaps/markerclusterer';\nimport { MarkerClusterer, SuperClusterAlgorithm } from '@googlemaps/markerclusterer';\n\nimport type { Marker, TileOverlay } from './definitions';\nimport { MapType, LatLngBounds } from './definitions';\nimport type {\n AddTileOverlayArgs,\n AddMarkerArgs,\n CameraArgs,\n AddMarkersArgs,\n CapacitorGoogleMapsPlugin,\n CreateMapArgs,\n CurrentLocArgs,\n DestroyMapArgs,\n MapTypeArgs,\n PaddingArgs,\n RemoveMarkerArgs,\n TrafficLayerArgs,\n RemoveMarkersArgs,\n MapBoundsContainsArgs,\n EnableClusteringArgs,\n FitBoundsArgs,\n MapBoundsExtendArgs,\n AddPolygonsArgs,\n RemovePolygonsArgs,\n AddCirclesArgs,\n RemoveCirclesArgs,\n AddPolylinesArgs,\n RemovePolylinesArgs,\n RemoveTileOverlayArgs,\n} from './implementation';\n\nexport class CapacitorGoogleMapsWeb extends WebPlugin implements CapacitorGoogleMapsPlugin {\n private gMapsRef: typeof google.maps | undefined = undefined;\n private AdvancedMarkerElement: typeof google.maps.marker.AdvancedMarkerElement | undefined = undefined;\n private PinElement: typeof google.maps.marker.PinElement | undefined = undefined;\n private maps: {\n [id: string]: {\n element: HTMLElement;\n map: google.maps.Map;\n markers: {\n [id: string]: google.maps.marker.AdvancedMarkerElement;\n };\n tileOverlays: {\n [id: string]: google.maps.ImageMapType;\n };\n polygons: {\n [id: string]: google.maps.Polygon;\n };\n circles: {\n [id: string]: google.maps.Circle;\n };\n polylines: {\n [id: string]: google.maps.Polyline;\n };\n markerClusterer?: MarkerClusterer;\n trafficLayer?: google.maps.TrafficLayer;\n };\n } = {};\n private currMarkerId = 0;\n private currTileOverlayId = 0;\n private currPolygonId = 0;\n private currCircleId = 0;\n private currPolylineId = 0;\n private currMapId = 0;\n\n private onClusterClickHandler: onClusterClickHandler = (\n _: google.maps.MapMouseEvent,\n cluster: Cluster,\n map: google.maps.Map\n ): void => {\n const mapId = this.getIdFromMap(map);\n const items: any[] = [];\n\n if (cluster.markers != undefined && this.AdvancedMarkerElement) {\n for (const marker of cluster.markers) {\n if (marker instanceof this.AdvancedMarkerElement) {\n const markerId = this.getIdFromMarker(mapId, marker);\n const position = marker.position as google.maps.LatLngLiteral;\n\n items.push({\n markerId: markerId,\n latitude: position.lat,\n longitude: position.lng,\n title: marker.title ?? '',\n snippet: '',\n });\n }\n }\n }\n\n this.notifyListeners('onClusterClick', {\n mapId: mapId,\n latitude: cluster.position.lat,\n longitude: cluster.position.lng,\n size: cluster.count,\n items: items,\n });\n };\n\n private getIdFromMap(map: google.maps.Map): string {\n for (const id in this.maps) {\n if (this.maps[id].map == map) {\n return id;\n }\n }\n\n return '';\n }\n\n private getIdFromMarker(mapId: string, marker: google.maps.marker.AdvancedMarkerElement): string {\n for (const id in this.maps[mapId].markers) {\n if (this.maps[mapId].markers[id] == marker) {\n return id;\n }\n }\n\n return '';\n }\n\n private async importGoogleLib(apiKey: string, region?: string, language?: string) {\n if (this.gMapsRef === undefined) {\n const lib = await import('@googlemaps/js-api-loader');\n const loader = new lib.Loader({\n apiKey: apiKey ?? '',\n version: 'weekly',\n libraries: ['places'],\n language,\n region,\n });\n const google = await loader.load();\n this.gMapsRef = google.maps;\n\n // Import marker library once\n const { AdvancedMarkerElement, PinElement } = (await google.maps.importLibrary(\n 'marker'\n )) as google.maps.MarkerLibrary;\n this.AdvancedMarkerElement = AdvancedMarkerElement;\n this.PinElement = PinElement;\n\n console.log('Loaded google maps API');\n }\n }\n\n async enableTouch(_args: { id: string }): Promise<void> {\n this.maps[_args.id].map.setOptions({ gestureHandling: 'auto' });\n }\n\n async disableTouch(_args: { id: string }): Promise<void> {\n this.maps[_args.id].map.setOptions({ gestureHandling: 'none' });\n }\n\n async setCamera(_args: CameraArgs): Promise<void> {\n // Animation not supported yet...\n this.maps[_args.id].map.moveCamera({\n center: _args.config.coordinate,\n heading: _args.config.bearing,\n tilt: _args.config.angle,\n zoom: _args.config.zoom,\n });\n }\n\n async getMapType(_args: { id: string }): Promise<{ type: string }> {\n let type = this.maps[_args.id].map.getMapTypeId();\n if (type !== undefined) {\n if (type === 'roadmap') {\n type = MapType.Normal;\n }\n return { type: `${type.charAt(0).toUpperCase()}${type.slice(1)}` };\n }\n throw new Error('Map type is undefined');\n }\n\n async setMapType(_args: MapTypeArgs): Promise<void> {\n let mapType = _args.mapType.toLowerCase();\n if (_args.mapType === MapType.Normal) {\n mapType = 'roadmap';\n }\n this.maps[_args.id].map.setMapTypeId(mapType);\n }\n\n async enableIndoorMaps(): Promise<void> {\n throw new Error('Method not supported on web.');\n }\n\n async enableTrafficLayer(_args: TrafficLayerArgs): Promise<void> {\n const trafficLayer = this.maps[_args.id].trafficLayer ?? new google.maps.TrafficLayer();\n\n if (_args.enabled) {\n trafficLayer.setMap(this.maps[_args.id].map);\n this.maps[_args.id].trafficLayer = trafficLayer;\n } else if (this.maps[_args.id].trafficLayer) {\n trafficLayer.setMap(null);\n this.maps[_args.id].trafficLayer = undefined;\n }\n }\n\n async enableAccessibilityElements(): Promise<void> {\n throw new Error('Method not supported on web.');\n }\n\n dispatchMapEvent(): Promise<void> {\n throw new Error('Method not supported on web.');\n }\n\n async enableCurrentLocation(_args: CurrentLocArgs): Promise<void> {\n if (_args.enabled) {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(\n (position: GeolocationPosition) => {\n const pos = {\n lat: position.coords.latitude,\n lng: position.coords.longitude,\n };\n\n this.maps[_args.id].map.setCenter(pos);\n\n this.notifyListeners('onMyLocationButtonClick', {});\n\n this.notifyListeners('onMyLocationClick', {});\n },\n () => {\n throw new Error('Geolocation not supported on web browser.');\n }\n );\n } else {\n throw new Error('Geolocation not supported on web browser.');\n }\n }\n }\n async setPadding(_args: PaddingArgs): Promise<void> {\n const bounds = this.maps[_args.id].map.getBounds();\n\n if (bounds !== undefined) {\n this.maps[_args.id].map.fitBounds(bounds, _args.padding);\n }\n }\n\n async getMapBounds(_args: { id: string }): Promise<LatLngBounds> {\n const bounds = this.maps[_args.id].map.getBounds();\n\n if (!bounds) {\n throw new Error('Google Map Bounds could not be found.');\n }\n\n return new LatLngBounds({\n southwest: {\n lat: bounds.getSouthWest().lat(),\n lng: bounds.getSouthWest().lng(),\n },\n center: {\n lat: bounds.getCenter().lat(),\n lng: bounds.getCenter().lng(),\n },\n northeast: {\n lat: bounds.getNorthEast().lat(),\n lng: bounds.getNorthEast().lng(),\n },\n });\n }\n\n async fitBounds(_args: FitBoundsArgs): Promise<void> {\n const map = this.maps[_args.id].map;\n const bounds = this.getLatLngBounds(_args.bounds);\n map.fitBounds(bounds, _args.padding);\n }\n\n async addTileOverlay(_args: AddTileOverlayArgs): Promise<{ id: string }> {\n const tileOverlay = _args.tileOverlay as TileOverlay;\n\n const map = this.maps[_args.id].map;\n\n const id = '' + this.currTileOverlayId;\n\n const customMapOverlay = new google.maps.ImageMapType({\n getTileUrl: function (coord, zoom) {\n return tileOverlay.url.replace('{x}', `${coord.x}`).replace('{y}', `${coord.y}`).replace('{z}', `${zoom}`);\n },\n tileSize: new google.maps.Size(256, 256),\n opacity: tileOverlay.opacity,\n });\n\n this.maps[_args.id].tileOverlays[id] = customMapOverlay;\n\n map.overlayMapTypes.push(customMapOverlay);\n\n this.currTileOverlayId++;\n\n return { id: id };\n }\n\n async removeTileOverlay(_args: RemoveTileOverlayArgs): Promise<void> {\n const map = this.maps[_args.id].map;\n if (!map) {\n return;\n }\n\n for (let i = 0; i < map.overlayMapTypes.getLength(); i++) {\n if (map.overlayMapTypes.getAt(i) === this.maps[_args.id].tileOverlays[_args.tileOverlayId]) {\n map.overlayMapTypes.removeAt(i);\n delete this.maps[_args.id].tileOverlays[_args.tileOverlayId];\n break;\n }\n }\n }\n\n async addMarkers(_args: AddMarkersArgs): Promise<{ ids: string[] }> {\n const markerIds: string[] = [];\n const map = this.maps[_args.id];\n\n for (const markerArgs of _args.markers) {\n const advancedMarker = this.buildMarkerOpts(markerArgs, map.map);\n\n const id = '' + this.currMarkerId;\n\n map.markers[id] = advancedMarker;\n await this.setMarkerListeners(_args.id, id, advancedMarker);\n\n markerIds.push(id);\n this.currMarkerId++;\n }\n\n return { ids: markerIds };\n }\n\n async addMarker(_args: AddMarkerArgs): Promise<{ id: string }> {\n const advancedMarker = this.buildMarkerOpts(_args.marker, this.maps[_args.id].map);\n\n const id = '' + this.currMarkerId;\n\n this.maps[_args.id].markers[id] = advancedMarker;\n await this.setMarkerListeners(_args.id, id, advancedMarker);\n\n this.currMarkerId++;\n\n return { id: id };\n }\n\n async removeMarkers(_args: RemoveMarkersArgs): Promise<void> {\n const map = this.maps[_args.id];\n\n for (const id of _args.markerIds) {\n if (map.markers[id]) {\n map.markers[id].map = null;\n delete map.markers[id];\n }\n }\n }\n\n async removeMarker(_args: RemoveMarkerArgs): Promise<void> {\n if (this.maps[_args.id].markers[_args.markerId]) {\n this.maps[_args.id].markers[_args.markerId].map = null;\n delete this.maps[_args.id].markers[_args.markerId];\n }\n }\n\n async addPolygons(args: AddPolygonsArgs): Promise<{ ids: string[] }> {\n const polygonIds: string[] = [];\n const map = this.maps[args.id];\n\n for (const polygonArgs of args.polygons) {\n const polygon = new google.maps.Polygon(polygonArgs);\n polygon.setMap(map.map);\n\n const id = '' + this.currPolygonId;\n this.maps[args.id].polygons[id] = polygon;\n this.setPolygonListeners(args.id, id, polygon);\n\n polygonIds.push(id);\n this.currPolygonId++;\n }\n\n return { ids: polygonIds };\n }\n\n async removePolygons(args: RemovePolygonsArgs): Promise<void> {\n const map = this.maps[args.id];\n\n for (const id of args.polygonIds) {\n map.polygons[id].setMap(null);\n delete map.polygons[id];\n }\n }\n\n async addCircles(args: AddCirclesArgs): Promise<{ ids: string[] }> {\n const circleIds: string[] = [];\n const map = this.maps[args.id];\n\n for (const circleArgs of args.circles) {\n const circle = new google.maps.Circle(circleArgs);\n circle.setMap(map.map);\n\n const id = '' + this.currCircleId;\n this.maps[args.id].circles[id] = circle;\n this.setCircleListeners(args.id, id, circle);\n\n circleIds.push(id);\n this.currCircleId++;\n }\n\n return { ids: circleIds };\n }\n\n async removeCircles(args: RemoveCirclesArgs): Promise<void> {\n const map = this.maps[args.id];\n\n for (const id of args.circleIds) {\n map.circles[id].setMap(null);\n delete map.circles[id];\n }\n }\n\n async addPolylines(args: AddPolylinesArgs): Promise<{ ids: string[] }> {\n const lineIds: string[] = [];\n const map = this.maps[args.id];\n\n for (const polylineArgs of args.polylines) {\n const polyline = new google.maps.Polyline(polylineArgs);\n polyline.set('tag', polylineArgs.tag);\n polyline.setMap(map.map);\n\n const id = '' + this.currPolylineId;\n this.maps[args.id].polylines[id] = polyline;\n this.setPolylineListeners(args.id, id, polyline);\n\n lineIds.push(id);\n this.currPolylineId++;\n }\n\n return {\n ids: lineIds,\n };\n }\n\n async removePolylines(args: RemovePolylinesArgs): Promise<void> {\n const map = this.maps[args.id];\n\n for (const id of args.polylineIds) {\n map.polylines[id].setMap(null);\n delete map.polylines[id];\n }\n }\n\n async enableClustering(_args: EnableClusteringArgs): Promise<void> {\n const markers: google.maps.marker.AdvancedMarkerElement[] = [];\n\n for (const id in this.maps[_args.id].markers) {\n markers.push(this.maps[_args.id].markers[id]);\n }\n\n this.maps[_args.id].markerClusterer = new MarkerClusterer({\n map: this.maps[_args.id].map,\n markers: markers,\n algorithm: new SuperClusterAlgorithm({\n minPoints: _args.minClusterSize ?? 4,\n }),\n onClusterClick: this.onClusterClickHandler,\n });\n }\n\n async disableClustering(_args: { id: string }): Promise<void> {\n const mapInstance = this.maps[_args.id];\n if (mapInstance.markerClusterer) {\n const markers = Object.values(mapInstance.markers);\n\n mapInstance.markerClusterer.setMap(null);\n mapInstance.markerClusterer = undefined;\n\n for (const marker of markers) {\n marker.map = mapInstance.map;\n }\n }\n }\n\n async onScroll(): Promise<void> {\n throw new Error('Method not supported on web.');\n }\n\n async onResize(): Promise<void> {\n throw new Error('Method not supported on web.');\n }\n\n async onDisplay(): Promise<void> {\n throw new Error('Method not supported on web.');\n }\n\n async create(_args: CreateMapArgs): Promise<void> {\n console.log(`Create map: ${_args.id}`);\n await this.importGoogleLib(_args.apiKey, _args.region, _args.language);\n\n // Ensure we have a Map ID for Advanced Markers\n const config = { ..._args.config };\n if (!config.mapId) {\n config.mapId = `capacitor_map_${this.currMapId++}`;\n }\n\n this.maps[_args.id] = {\n map: new window.google.maps.Map(_args.element, config),\n element: _args.element,\n markers: {},\n tileOverlays: {},\n polygons: {},\n circles: {},\n polylines: {},\n };\n this.setMapListeners(_args.id);\n }\n\n async destroy(_args: DestroyMapArgs): Promise<void> {\n console.log(`Destroy map: ${_args.id}`);\n const mapItem = this.maps[_args.id];\n mapItem.element.innerHTML = '';\n mapItem.map.unbindAll();\n delete this.maps[_args.id];\n }\n\n async mapBoundsContains(_args: MapBoundsContainsArgs): Promise<{ contains: boolean }> {\n const bounds = this.getLatLngBounds(_args.bounds);\n const point = new google.maps.LatLng(_args.point.lat, _args.point.lng);\n return { contains: bounds.contains(point) };\n }\n\n async mapBoundsExtend(_args: MapBoundsExtendArgs): Promise<{ bounds: LatLngBounds }> {\n const bounds = this.getLatLngBounds(_args.bounds);\n const point = new google.maps.LatLng(_args.point.lat, _args.point.lng);\n bounds.extend(point);\n const result = new LatLngBounds({\n southwest: {\n lat: bounds.getSouthWest().lat(),\n lng: bounds.getSouthWest().lng(),\n },\n center: {\n lat: bounds.getCenter().lat(),\n lng: bounds.getCenter().lng(),\n },\n northeast: {\n lat: bounds.getNorthEast().lat(),\n lng: bounds.getNorthEast().lng(),\n },\n });\n return { bounds: result };\n }\n\n private getLatLngBounds(_args: LatLngBounds): google.maps.LatLngBounds {\n return new google.maps.LatLngBounds(\n new google.maps.LatLng(_args.southwest.lat, _args.southwest.lng),\n new google.maps.LatLng(_args.northeast.lat, _args.northeast.lng)\n );\n }\n\n async setCircleListeners(mapId: string, circleId: string, circle: google.maps.Circle): Promise<void> {\n circle.addListener('click', () => {\n this.notifyListeners('onCircleClick', {\n mapId: mapId,\n circleId: circleId,\n tag: circle.get('tag'),\n });\n });\n }\n\n async setPolygonListeners(mapId: string, polygonId: string, polygon: google.maps.Polygon): Promise<void> {\n polygon.addListener('click', () => {\n this.notifyListeners('onPolygonClick', {\n mapId: mapId,\n polygonId: polygonId,\n tag: polygon.get('tag'),\n });\n });\n }\n\n async setPolylineListeners(mapId: string, polylineId: string, polyline: google.maps.Polyline): Promise<void> {\n polyline.addListener('click', () => {\n this.notifyListeners('onPolylineClick', {\n mapId: mapId,\n polylineId: polylineId,\n tag: polyline.get('tag'),\n });\n });\n }\n\n async setMarkerListeners(\n mapId: string,\n markerId: string,\n marker: google.maps.marker.AdvancedMarkerElement\n ): Promise<void> {\n marker.addListener('click', () => {\n const position = marker.position as google.maps.LatLngLiteral;\n this.notifyListeners('onMarkerClick', {\n mapId: mapId,\n markerId: markerId,\n latitude: position.lat,\n longitude: position.lng,\n title: marker.title ?? '',\n snippet: '',\n });\n });\n\n if (marker.gmpDraggable) {\n marker.addListener('dragstart', () => {\n const position = marker.position as google.maps.LatLngLiteral;\n this.notifyListeners('onMarkerDragStart', {\n mapId: mapId,\n markerId: markerId,\n latitude: position.lat,\n longitude: position.lng,\n title: marker.title ?? '',\n snippet: '',\n });\n });\n\n marker.addListener('drag', () => {\n const position = marker.position as google.maps.LatLngLiteral;\n this.notifyListeners('onMarkerDrag', {\n mapId: mapId,\n markerId: markerId,\n latitude: position.lat,\n longitude: position.lng,\n title: marker.title ?? '',\n snippet: '',\n });\n });\n\n marker.addListener('dragend', () => {\n const position = marker.position as google.maps.LatLngLiteral;\n this.notifyListeners('onMarkerDragEnd', {\n mapId: mapId,\n markerId: markerId,\n latitude: position.lat,\n longitude: position.lng,\n title: marker.title ?? '',\n snippet: '',\n });\n });\n }\n }\n\n async setMapListeners(mapId: string): Promise<void> {\n const map = this.maps[mapId].map;\n\n map.addListener('idle', async () => {\n const bounds = await this.getMapBounds({ id: mapId });\n this.notifyListeners('onCameraIdle', {\n mapId: mapId,\n bearing: map.getHeading(),\n bounds: bounds,\n latitude: map.getCenter()?.lat(),\n longitude: map.getCenter()?.lng(),\n tilt: map.getTilt(),\n zoom: map.getZoom(),\n });\n });\n\n map.addListener('center_changed', () => {\n this.notifyListeners('onCameraMoveStarted', {\n mapId: mapId,\n isGesture: true,\n });\n });\n\n map.addListener('bounds_changed', async () => {\n const bounds = await this.getMapBounds({ id: mapId });\n this.notifyListeners('onBoundsChanged', {\n mapId: mapId,\n bearing: map.getHeading(),\n bounds: bounds,\n latitude: map.getCenter()?.lat(),\n longitude: map.getCenter()?.lng(),\n tilt: map.getTilt(),\n zoom: map.getZoom(),\n });\n });\n\n map.addListener('click', (e: google.maps.MapMouseEvent | google.maps.IconMouseEvent) => {\n this.notifyListeners('onMapClick', {\n mapId: mapId,\n latitude: e.latLng?.lat(),\n longitude: e.latLng?.lng(),\n });\n });\n\n this.notifyListeners('onMapReady', {\n mapId: mapId,\n });\n }\n\n private buildMarkerOpts(marker: Marker, map: google.maps.Map): google.maps.marker.AdvancedMarkerElement {\n if (!this.AdvancedMarkerElement || !this.PinElement) {\n throw new Error('Marker library not loaded');\n }\n\n let content: HTMLElement | undefined = undefined;\n\n if (marker.iconUrl) {\n const img = document.createElement('img');\n img.src = marker.iconUrl;\n if (marker.iconSize) {\n img.style.width = `${marker.iconSize.width}px`;\n img.style.height = `${marker.iconSize.height}px`;\n }\n content = img;\n } else {\n const pinOptions: google.maps.marker.PinElementOptions = {\n scale: marker.opacity ?? 1,\n glyph: marker.title,\n background: marker.tintColor\n ? `rgb(${marker.tintColor.r}, ${marker.tintColor.g}, ${marker.tintColor.b})`\n : undefined,\n };\n\n const pin = new this.PinElement(pinOptions);\n content = pin.element;\n }\n\n const advancedMarker = new this.AdvancedMarkerElement({\n position: marker.coordinate,\n map: map,\n content: content,\n title: marker.title,\n gmpDraggable: marker.draggable,\n });\n\n return advancedMarker;\n }\n}\n"]}

@@ -1008,6 +1008,8 @@ 'use strict';

version: 'weekly',
libraries: ['places'],
language,
region,
});
this.gMapsRef = await loader.importLibrary('maps');
const google = await loader.load();
this.gMapsRef = google.maps;
// Import marker library once

@@ -1014,0 +1016,0 @@ const { AdvancedMarkerElement, PinElement } = (await google.maps.importLibrary('marker'));

@@ -986,6 +986,8 @@ var capacitorCapacitorGoogleMaps = (function (exports, core, markerclusterer) {

version: 'weekly',
libraries: ['places'],
language,
region,
});
this.gMapsRef = await loader.importLibrary('maps');
const google = await loader.load();
this.gMapsRef = google.maps;
// Import marker library once

@@ -992,0 +994,0 @@ const { AdvancedMarkerElement, PinElement } = (await google.maps.importLibrary('marker'));

{
"name": "@capacitor/google-maps",
"version": "7.2.1-dev-20251031T093642.0",
"version": "7.2.1",
"description": "Google maps on Capacitor",

@@ -98,3 +98,3 @@ "main": "dist/plugin.cjs.js",

},
"gitHead": "581db68600917668c905bc2243ea7844100517f0"
"gitHead": "d77591ddb4280f7220c3eec36507ae14788b492d"
}

@@ -6,3 +6,3 @@ // swift-tools-version: 5.9

name: "CapacitorGoogleMaps",
platforms: [.iOS(.v15)],
platforms: [.iOS(.v14)],
products: [

@@ -15,4 +15,4 @@ .library(

.package(url: "https://github.com/ionic-team/capacitor-swift-pm.git", from: "7.0.0"),
.package(url: "https://github.com/googlemaps/ios-maps-sdk.git", .upToNextMajor(from:"9.4.0")),
.package(url: "https://github.com/googlemaps/google-maps-ios-utils.git", .exact("6.1.0"))
.package(url: "https://github.com/googlemaps/ios-maps-sdk.git", .upToNextMajor(from:"8.4.0")),
.package(url: "https://github.com/googlemaps/google-maps-ios-utils.git", .upToNextMajor(from:"5.0.0"))
],

@@ -19,0 +19,0 @@ targets: [

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display