├── .eslintrc
├── .gitignore
├── .npmignore
├── .prettierignore
├── .prettierrc
├── LICENSE
├── README.md
├── assets
├── banner.jpg
├── instruction.gif
└── logo.svg
├── build
├── admin
│ ├── components
│ │ └── MapPicker
│ │ │ ├── MapPickerComponent
│ │ │ ├── index.d.ts
│ │ │ ├── index.js
│ │ │ └── index.js.map
│ │ │ ├── MapPickerIcon
│ │ │ ├── index.d.ts
│ │ │ ├── index.js
│ │ │ └── index.js.map
│ │ │ └── MapPickerInput
│ │ │ ├── index.d.ts
│ │ │ ├── index.js
│ │ │ └── index.js.map
│ ├── constants.d.ts
│ ├── constants.js
│ ├── constants.js.map
│ ├── hooks
│ │ ├── index.d.ts
│ │ ├── index.js
│ │ ├── index.js.map
│ │ ├── use-plugin-config.d.ts
│ │ ├── use-plugin-config.js
│ │ └── use-plugin-config.js.map
│ ├── index.d.ts
│ ├── index.js
│ ├── index.js.map
│ ├── reducers
│ │ ├── config.d.ts
│ │ ├── config.js
│ │ ├── config.js.map
│ │ ├── index.d.ts
│ │ ├── index.js
│ │ └── index.js.map
│ ├── translations
│ │ ├── index.d.ts
│ │ ├── index.js
│ │ └── index.js.map
│ └── utils
│ │ ├── get-trad.d.ts
│ │ ├── get-trad.js
│ │ ├── get-trad.js.map
│ │ ├── getMessage.d.ts
│ │ ├── getMessage.js
│ │ ├── getMessage.js.map
│ │ ├── index.d.ts
│ │ ├── index.js
│ │ ├── index.js.map
│ │ ├── plugin-id.d.ts
│ │ ├── plugin-id.js
│ │ ├── plugin-id.js.map
│ │ ├── plugin-name.d.ts
│ │ ├── plugin-name.js
│ │ └── plugin-name.js.map
├── server
│ ├── config.d.ts
│ ├── config.js
│ ├── config.js.map
│ ├── controllers
│ │ ├── google-map-picker.d.ts
│ │ ├── google-map-picker.js
│ │ ├── google-map-picker.js.map
│ │ ├── index.d.ts
│ │ ├── index.js
│ │ └── index.js.map
│ ├── helpers
│ │ ├── pluginConfig.d.ts
│ │ ├── pluginConfig.js
│ │ └── pluginConfig.js.map
│ ├── index.d.ts
│ ├── index.js
│ ├── index.js.map
│ ├── register.d.ts
│ ├── register.js
│ ├── register.js.map
│ ├── routes
│ │ ├── admin-api.d.ts
│ │ ├── admin-api.js
│ │ ├── admin-api.js.map
│ │ ├── index.d.ts
│ │ ├── index.js
│ │ └── index.js.map
│ ├── services
│ │ ├── index.d.ts
│ │ ├── index.js
│ │ ├── index.js.map
│ │ ├── plugin.d.ts
│ │ ├── plugin.js
│ │ └── plugin.js.map
│ └── utils
│ │ ├── get-service.d.ts
│ │ ├── get-service.js
│ │ ├── get-service.js.map
│ │ ├── index.d.ts
│ │ ├── index.js
│ │ ├── index.js.map
│ │ ├── plugin-id.d.ts
│ │ ├── plugin-id.js
│ │ └── plugin-id.js.map
├── tsconfig.tsbuildinfo
└── types
│ ├── index.d.ts
│ ├── index.js
│ └── index.js.map
├── package.json
├── src
├── admin
│ ├── components
│ │ └── MapPicker
│ │ │ ├── MapPickerComponent
│ │ │ └── index.tsx
│ │ │ ├── MapPickerIcon
│ │ │ └── index.tsx
│ │ │ └── MapPickerInput
│ │ │ └── index.tsx
│ ├── constants.ts
│ ├── hooks
│ │ └── use-plugin-config.ts
│ ├── index.tsx
│ ├── reducers
│ │ ├── config.ts
│ │ └── index.ts
│ ├── translations
│ │ ├── en.json
│ │ ├── index.ts
│ │ └── ru.json
│ └── utils
│ │ ├── get-trad.ts
│ │ ├── index.ts
│ │ ├── plugin-id.ts
│ │ └── plugin-name.ts
├── server
│ ├── config.ts
│ ├── controllers
│ │ ├── google-map-picker.ts
│ │ └── index.ts
│ ├── helpers
│ │ └── pluginConfig.ts
│ ├── index.ts
│ ├── register.ts
│ ├── routes
│ │ ├── admin-api.ts
│ │ └── index.ts
│ ├── services
│ │ ├── index.ts
│ │ └── plugin.ts
│ └── utils
│ │ ├── get-service.ts
│ │ ├── index.ts
│ │ └── plugin-id.ts
├── tsconfig.json
└── types
│ ├── globals.d.ts
│ ├── index.ts
│ ├── strapi-design-system.d.ts
│ ├── strapi-helper-plugin.d.ts
│ ├── strapi-icons.d.ts
│ ├── strapi-parts.d.ts
│ └── strapi-utils.d.ts
├── strapi-admin.js
├── strapi-server.js
├── tsconfig.json
├── tsconfig.tsbuildinfo
└── yarn.lock
/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "env": {
3 | "browser": true,
4 | "es2021": true,
5 | "jest": true
6 | },
7 | "extends": ["eslint:recommended", "plugin:react/recommended", "plugin:@typescript-eslint/recommended", "prettier"],
8 | "parser": "@typescript-eslint/parser",
9 | "parserOptions": {
10 | "ecmaFeatures": {
11 | "jsx": true
12 | },
13 | "ecmaVersion": "latest",
14 | "sourceType": "module"
15 | },
16 | "plugins": ["react", "@typescript-eslint", "react-hooks", "prettier"],
17 | "rules": {
18 | "react/react-in-jsx-scope": "off",
19 | "camelcase": "error",
20 | "spaced-comment": "error",
21 | "quotes": ["error", "double"],
22 | "no-duplicate-imports": "error"
23 | },
24 | "settings": {
25 | "import/resolver": {
26 | "typescript": {}
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | ############################
2 | # OS X
3 | ############################
4 |
5 | .DS_Store
6 | .AppleDouble
7 | .LSOverride
8 | Icon
9 | .Spotlight-V100
10 | .Trashes
11 | ._*
12 |
13 |
14 | ############################
15 | # Linux
16 | ############################
17 |
18 | *~
19 |
20 |
21 | ############################
22 | # Windows
23 | ############################
24 |
25 | Thumbs.db
26 | ehthumbs.db
27 | Desktop.ini
28 | $RECYCLE.BIN/
29 | *.cab
30 | *.msi
31 | *.msm
32 | *.msp
33 |
34 |
35 | ############################
36 | # Packages
37 | ############################
38 |
39 | *.7z
40 | *.csv
41 | *.dat
42 | *.dmg
43 | *.gz
44 | *.iso
45 | *.jar
46 | *.rar
47 | *.tar
48 | *.zip
49 | *.com
50 | *.class
51 | *.dll
52 | *.exe
53 | *.o
54 | *.seed
55 | *.so
56 | *.swo
57 | *.swp
58 | *.swn
59 | *.swm
60 | *.out
61 | *.pid
62 |
63 |
64 |
65 | ############################
66 | # Node.js
67 | ############################
68 |
69 | node_modules
70 | .node_history
71 | tsconfig.tsbuildinfo
--------------------------------------------------------------------------------
/.npmignore:
--------------------------------------------------------------------------------
1 | .eslintrc
2 | .gitignore
3 | .npmignore
4 | .prettierignore
5 | .prettierrc
6 | jest.config.front.js
7 | jest.config.js
8 | strapi-admin.js
9 | strapi-server.js
10 | tsconfig.json
11 | tsconfig.tsbuildinfo
12 | yarn.lock
13 | src
14 | assets
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | dist
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "trailingComma": "es5",
3 | "tabWidth": 4,
4 | "semi": true,
5 | "singleQuote": false,
6 | "printWidth": 120
7 | }
8 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2023-2023 Yuriy Repin
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |

3 |
4 |
9 |
10 |
11 |
12 | ---
13 |
14 | ## 🗿 How to install
15 |
16 | ```javascript
17 | # yarn
18 | yarn add strapi-plugin-google-map-picker
19 |
20 | # npm
21 | npm i strapi-plugin-google-map-picker
22 | ```
23 |
24 | ## 🔧 Configuration
25 |
26 | #### 1. Add plugin in plugins.js
27 | ```javascript
28 | // config/plugins.js
29 | ...
30 | ...
31 | "google-map-picker": {
32 | config: {
33 | apiKey: env("GOOGLE_PUBLIC_KEY"), // required
34 | default_center: { lat: 54.106438, lng: 11.556940 }, // required
35 | favorites_places: [
36 | {
37 | title: "Berlin",
38 | coordinates: { lat: 52.518536, lng: 52.518536 },
39 | },
40 | {
41 | title: "Zurich",
42 | coordinates: { lat: 47.384168, lng: 8.526831 },
43 | },
44 | {
45 | title: "Oslo",
46 | coordinates: { lat: 59.911002, lng: 10.756167},
47 | },
48 | ],
49 | },
50 | },
51 | ...
52 | ...
53 | ```
54 | #### 2. Add "strapi::security" in middlewares.js
55 | ```javascript
56 | // config/middlewares.ts
57 | ...
58 | ...
59 | 'strapi::errors',
60 | {
61 | name: "strapi::security",
62 | config: {
63 | contentSecurityPolicy: {
64 | directives: {
65 | "script-src": ["'self'", "maps.googleapis.com", "maps.gstatic.com"],
66 | "img-src": ["'self'", "data:", "maps.googleapis.com", "maps.gstatic.com"],
67 | },
68 | },
69 | },
70 | },
71 | 'strapi::cors',
72 | ...
73 | ...
74 | ```
75 |
76 | #### 3. Add custom field
77 |
78 |
79 |
80 |
81 |
--------------------------------------------------------------------------------
/assets/banner.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spalz/strapi-plugin-google-map-picker/bedf49dd77d82ab495570522562a789753cef560/assets/banner.jpg
--------------------------------------------------------------------------------
/assets/instruction.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spalz/strapi-plugin-google-map-picker/bedf49dd77d82ab495570522562a789753cef560/assets/instruction.gif
--------------------------------------------------------------------------------
/assets/logo.svg:
--------------------------------------------------------------------------------
1 |
29 |
--------------------------------------------------------------------------------
/build/admin/components/MapPicker/MapPickerComponent/index.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 | import { MapPickerInputProps } from "../../../../types";
3 | declare const MapPickerComponent: (props: MapPickerInputProps) => JSX.Element | null;
4 | export default MapPickerComponent;
5 |
--------------------------------------------------------------------------------
/build/admin/components/MapPicker/MapPickerComponent/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __importDefault = (this && this.__importDefault) || function (mod) {
3 | return (mod && mod.__esModule) ? mod : { "default": mod };
4 | };
5 | Object.defineProperty(exports, "__esModule", { value: true });
6 | const react_1 = __importDefault(require("react"));
7 | const Box_1 = require("@strapi/design-system/Box");
8 | const Link_1 = require("@strapi/design-system/Link");
9 | const design_system_1 = require("@strapi/design-system");
10 | const Typography_1 = require("@strapi/design-system/Typography");
11 | const Field_1 = require("@strapi/design-system/Field");
12 | const MapPickerInput_1 = __importDefault(require("../MapPickerInput"));
13 | const use_plugin_config_1 = __importDefault(require("../../../hooks/use-plugin-config"));
14 | const MapPickerComponent = (props) => {
15 | const { config, isLoading } = (0, use_plugin_config_1.default)();
16 | return config && config.apiKey && config.defaultCenter ? (react_1.default.createElement(MapPickerInput_1.default, { ...props, config: config })) : (!isLoading && !config.apiKey) || (!isLoading && !config.defaultCenter) ? (react_1.default.createElement(react_1.default.Fragment, null,
17 | react_1.default.createElement(Field_1.FieldLabel, null, props.name),
18 | react_1.default.createElement(Box_1.Box, { paddingTop: "1" },
19 | react_1.default.createElement(design_system_1.Status, { variant: "warning", size: "S", showBullet: false },
20 | react_1.default.createElement(Typography_1.Typography, null,
21 | react_1.default.createElement(Typography_1.Typography, null,
22 | "Missing: ",
23 | !config.apiKey && react_1.default.createElement(Typography_1.Typography, { fontWeight: "bold" }, "apiKey"),
24 | !config.apiKey && !config.defaultCenter ? " and " : null,
25 | !config.defaultCenter && react_1.default.createElement(Typography_1.Typography, { fontWeight: "bold" }, "defaultCenter"))),
26 | react_1.default.createElement("br", null),
27 | react_1.default.createElement(Link_1.Link, { href: "https://github.com/spalz/strapi-plugin-google-map-picker", isExternal: true }, "Installation Instructions (GitHub)"))))) : null;
28 | };
29 | exports.default = MapPickerComponent;
30 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/build/admin/components/MapPicker/MapPickerComponent/index.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/admin/components/MapPicker/MapPickerComponent/index.tsx"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAE1B,mDAAgD;AAChD,qDAAkD;AAClD,yDAA+C;AAC/C,iEAA8D;AAC9D,uDAAyD;AAEzD,uEAA+C;AAC/C,yFAA+D;AAG/D,MAAM,kBAAkB,GAAG,CAAC,KAA0B,EAAE,EAAE;IACtD,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,2BAAe,GAAE,CAAC;IAEhD,OAAO,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CACrD,8BAAC,wBAAc,OAAK,KAAK,EAAE,MAAM,EAAE,MAAM,GAAI,CAChD,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAC1E;QACI,8BAAC,kBAAU,QAAE,KAAK,CAAC,IAAI,CAAc;QACrC,8BAAC,SAAG,IAAC,UAAU,EAAC,GAAG;YACf,8BAAC,sBAAM,IAAC,OAAO,EAAC,SAAS,EAAC,IAAI,EAAC,GAAG,EAAC,UAAU,EAAE,KAAK;gBAChD,8BAAC,uBAAU;oBACP,8BAAC,uBAAU;;wBACG,CAAC,MAAM,CAAC,MAAM,IAAI,8BAAC,uBAAU,IAAC,UAAU,EAAC,MAAM,aAAoB;wBAC5E,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;wBACxD,CAAC,MAAM,CAAC,aAAa,IAAI,8BAAC,uBAAU,IAAC,UAAU,EAAC,MAAM,oBAA2B,CACzE,CACJ;gBACb,yCAAM;gBACN,8BAAC,WAAI,IAAC,IAAI,EAAC,0DAA0D,EAAC,UAAU,+CAEzE,CACF,CACP,CACP,CACN,CAAC,CAAC,CAAC,IAAI,CAAC;AACb,CAAC,CAAC;AAEF,kBAAe,kBAAkB,CAAC"}
--------------------------------------------------------------------------------
/build/admin/components/MapPicker/MapPickerIcon/index.d.ts:
--------------------------------------------------------------------------------
1 | declare const MapPickerIcon: () => JSX.Element;
2 | export default MapPickerIcon;
3 |
--------------------------------------------------------------------------------
/build/admin/components/MapPicker/MapPickerIcon/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __importDefault = (this && this.__importDefault) || function (mod) {
3 | return (mod && mod.__esModule) ? mod : { "default": mod };
4 | };
5 | Object.defineProperty(exports, "__esModule", { value: true });
6 | const react_1 = __importDefault(require("react"));
7 | const styled_components_1 = __importDefault(require("styled-components"));
8 | const Icon_1 = require("@strapi/design-system/Icon");
9 | const Flex_1 = require("@strapi/design-system/Flex");
10 | const icons_1 = require("@strapi/icons");
11 | const IconBox = (0, styled_components_1.default)(Flex_1.Flex) `
12 | background-color: #f0f0ff;
13 | border: 1px solid #d9d8ff;
14 | svg > path {
15 | fill: #4285f4;
16 | }
17 | `;
18 | const MapPickerIcon = () => {
19 | return (react_1.default.createElement(IconBox, { justifyContent: "center", alignItems: "center", width: 7, height: 6, hasRadius: true, "aria-hidden": true },
20 | react_1.default.createElement(Icon_1.Icon, { as: icons_1.PinMap })));
21 | };
22 | exports.default = MapPickerIcon;
23 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/build/admin/components/MapPicker/MapPickerIcon/index.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/admin/components/MapPicker/MapPickerIcon/index.tsx"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAC1B,0EAAuC;AACvC,qDAAkD;AAClD,qDAAkD;AAClD,yCAAuC;AAEvC,MAAM,OAAO,GAAG,IAAA,2BAAM,EAAC,WAAI,CAAC,CAAA;;;;;;CAM3B,CAAC;AAEF,MAAM,aAAa,GAAG,GAAG,EAAE;IACvB,OAAO,CACH,8BAAC,OAAO,IAAC,cAAc,EAAC,QAAQ,EAAC,UAAU,EAAC,QAAQ,EAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS;QAC/E,8BAAC,WAAI,IAAC,EAAE,EAAE,cAAM,GAAI,CACd,CACb,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe,aAAa,CAAC"}
--------------------------------------------------------------------------------
/build/admin/components/MapPicker/MapPickerInput/index.d.ts:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import { MapPickerInputProps } from "../../../../types";
3 | declare const MapPickerInput: React.FC;
4 | export default MapPickerInput;
5 |
--------------------------------------------------------------------------------
/build/admin/components/MapPicker/MapPickerInput/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3 | if (k2 === undefined) k2 = k;
4 | var desc = Object.getOwnPropertyDescriptor(m, k);
5 | if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6 | desc = { enumerable: true, get: function() { return m[k]; } };
7 | }
8 | Object.defineProperty(o, k2, desc);
9 | }) : (function(o, m, k, k2) {
10 | if (k2 === undefined) k2 = k;
11 | o[k2] = m[k];
12 | }));
13 | var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14 | Object.defineProperty(o, "default", { enumerable: true, value: v });
15 | }) : function(o, v) {
16 | o["default"] = v;
17 | });
18 | var __importStar = (this && this.__importStar) || function (mod) {
19 | if (mod && mod.__esModule) return mod;
20 | var result = {};
21 | if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22 | __setModuleDefault(result, mod);
23 | return result;
24 | };
25 | var __importDefault = (this && this.__importDefault) || function (mod) {
26 | return (mod && mod.__esModule) ? mod : { "default": mod };
27 | };
28 | Object.defineProperty(exports, "__esModule", { value: true });
29 | const react_1 = __importStar(require("react"));
30 | const react_intl_1 = require("react-intl");
31 | const styled_components_1 = __importDefault(require("styled-components"));
32 | const Stack_1 = require("@strapi/design-system/Stack");
33 | const Button_1 = require("@strapi/design-system/Button");
34 | const Box_1 = require("@strapi/design-system/Box");
35 | const Status_1 = require("@strapi/design-system/Status");
36 | const Link_1 = require("@strapi/design-system/Link");
37 | const Typography_1 = require("@strapi/design-system/Typography");
38 | const Field_1 = require("@strapi/design-system/Field");
39 | const api_1 = require("@react-google-maps/api");
40 | const utils_1 = require("../../../utils");
41 | const LIBRARIES = ["places", "geometry"];
42 | const AUTOCOMPLETE_FIELDS = ["geometry"];
43 | const mapContainerStyle = {
44 | height: "400px",
45 | width: "100%",
46 | };
47 | const MapPickerInput = ({ attribute, description, error = null, intlLabel, labelAction = null, name, onChange, required = false, value, config: { apiKey, defaultCenter, favoritesPlaces }, }) => {
48 | const { isLoaded, loadError } = (0, api_1.useLoadScript)({
49 | googleMapsApiKey: apiKey,
50 | libraries: LIBRARIES,
51 | });
52 | const { formatMessage } = (0, react_intl_1.useIntl)();
53 | const [searchResult, setSearchResult] = (0, react_1.useState)();
54 | const [marker, setMarker] = (0, react_1.useState)(false);
55 | const [location, setLocation] = (0, react_1.useState)(defaultCenter);
56 | const [center, setCenter] = (0, react_1.useState)(defaultCenter);
57 | const [field, setField] = (0, react_1.useState)(false);
58 | const [fieldError, setFieldError] = (0, react_1.useState)(false);
59 | const onLoadAutocomplete = (autocomplete) => {
60 | setSearchResult(autocomplete);
61 | };
62 | const onPlaceChanged = () => {
63 | if (searchResult != null) {
64 | setMarker(true);
65 | const place = searchResult.getPlace();
66 | const geometry = place?.geometry?.location;
67 | if (geometry) {
68 | setCenter({
69 | lat: geometry.lat(),
70 | lng: geometry.lng(),
71 | });
72 | }
73 | }
74 | };
75 | const onMarkerDraggable = (drag) => {
76 | setMarker(true);
77 | if (drag && drag.latLng) {
78 | setLocation({
79 | lat: drag.latLng.lat(),
80 | lng: drag.latLng.lng(),
81 | });
82 | onChange?.({
83 | target: {
84 | name,
85 | value: JSON.stringify({
86 | lat: drag.latLng.lat(),
87 | lng: drag.latLng.lng(),
88 | }),
89 | type: attribute.type,
90 | },
91 | });
92 | }
93 | };
94 | const onChangeLocation = (coordinates) => {
95 | setCenter({
96 | lat: coordinates.lat,
97 | lng: coordinates.lng,
98 | });
99 | };
100 | const onChangeField = (value) => {
101 | if (!marker) {
102 | setMarker(true);
103 | }
104 | const regexCoordinates = /^((\-?|\+?)?\d+(\.\d+)?),\s((\-?|\+?)?\d+(\.\d+)?)$/gi;
105 | const val = value.target.value;
106 | const checkVal = regexCoordinates.test(val);
107 | if (checkVal) {
108 | setFieldError(false);
109 | const [lat, lng] = val.split(",");
110 | setLocation({ lat: Number(lat), lng: Number(lng) });
111 | setCenter({ lat: Number(lat), lng: Number(lng) });
112 | onChange?.({
113 | target: {
114 | name,
115 | value: JSON.stringify({ lat: Number(lat), lng: Number(lng) }),
116 | type: attribute.type,
117 | },
118 | });
119 | }
120 | else {
121 | setFieldError(true);
122 | }
123 | };
124 | const onLoad = react_1.default.useCallback(function onLoad() {
125 | if (value) {
126 | setMarker(true);
127 | setLocation(JSON.parse(value));
128 | setCenter(JSON.parse(value));
129 | }
130 | }, []);
131 | const valDisplay = (value) => {
132 | if (value) {
133 | const val = JSON.parse(value);
134 | return `${val.lat.toFixed(6)}, ${val.lng.toFixed(6)}`;
135 | }
136 | else {
137 | return formatMessage({
138 | id: (0, utils_1.getTrad)("google-map-picker.not-selected"),
139 | defaultMessage: "Not selected",
140 | });
141 | }
142 | };
143 | if (loadError?.target?.id === "script-loader") {
144 | return (react_1.default.createElement(react_1.default.Fragment, null,
145 | react_1.default.createElement(Field_1.FieldLabel, null, name),
146 | react_1.default.createElement(Box_1.Box, { paddingTop: "1" },
147 | react_1.default.createElement(Status_1.Status, { variant: "warning", size: "S", showBullet: false },
148 | react_1.default.createElement(Typography_1.Typography, null,
149 | react_1.default.createElement(Typography_1.Typography, null,
150 | "Possibly missing: ",
151 | react_1.default.createElement(Typography_1.Typography, { fontWeight: "bold" }, "middlewares"))),
152 | react_1.default.createElement("br", null),
153 | react_1.default.createElement(Link_1.Link, { href: "https://github.com/spalz/strapi-plugin-google-map-picker", isExternal: true }, "Installation Instructions (GitHub)")))));
154 | }
155 | if (!isLoaded) {
156 | return react_1.default.createElement(SLoading, { style: mapContainerStyle }, "Loading...");
157 | }
158 | return (react_1.default.createElement(Field_1.Field, { name: name, id: name, error: error, hint: description && formatMessage(description), required: required },
159 | react_1.default.createElement(Stack_1.Stack, { spacing: 1 },
160 | react_1.default.createElement(SFieldLabel, null,
161 | react_1.default.createElement(Field_1.FieldLabel, { action: labelAction },
162 | formatMessage(intlLabel),
163 | react_1.default.createElement(SCoordinates, { onClick: () => setField(true), className: `${field ? "active" : ""}` }, valDisplay(value))),
164 | field && (react_1.default.createElement(SFieldInput, { type: "text", placeholder: "lat, lng", onChange: (val) => onChangeField(val), className: `${fieldError ? "error" : ""}` }))),
165 | isLoaded ? (react_1.default.createElement("div", null,
166 | favoritesPlaces && (react_1.default.createElement(SFavoritesPlaces, null, favoritesPlaces.map((item, idx) => {
167 | return (react_1.default.createElement(SFavoritesPlacesItem, { key: idx, onClick: () => onChangeLocation(item.coordinates) },
168 | react_1.default.createElement(Button_1.Button, { size: "S", variant: "tertiary" }, item.title)));
169 | }))),
170 | react_1.default.createElement(SGoogleMap, null,
171 | react_1.default.createElement(api_1.GoogleMap, { id: name, mapContainerStyle: mapContainerStyle, zoom: 10, center: center, onClick: (MapMouseEvent) => onMarkerDraggable(MapMouseEvent), onLoad: () => onLoad(), options: {
172 | zoomControl: true,
173 | maxZoom: 18,
174 | } },
175 | react_1.default.createElement(api_1.Autocomplete, { onLoad: (autocomplete) => onLoadAutocomplete(autocomplete), onPlaceChanged: () => onPlaceChanged(), fields: AUTOCOMPLETE_FIELDS },
176 | react_1.default.createElement(SSearchField, { type: "text", placeholder: formatMessage({
177 | id: (0, utils_1.getTrad)("google-map-picker.search"),
178 | defaultMessage: "Search",
179 | }) })),
180 | marker ? (react_1.default.createElement(api_1.MarkerF, { position: location, draggable: true, onDragEnd: (onDragEnd) => onMarkerDraggable(onDragEnd) })) : null)))) : (react_1.default.createElement(SLoading, { style: mapContainerStyle }, "Loading...")),
181 | react_1.default.createElement(Field_1.FieldHint, null),
182 | react_1.default.createElement(Field_1.FieldError, null))));
183 | };
184 | const SLoading = styled_components_1.default.div `
185 | display: flex;
186 | background-color: ${({ theme }) => theme.colors.neutral300};
187 | align-items: center;
188 | justify-content: center;
189 | `;
190 | const SGoogleMap = styled_components_1.default.div `
191 | border-radius: ${({ theme }) => theme.borderRadius};
192 | overflow: hidden;
193 | `;
194 | const SFieldLabel = styled_components_1.default.div `
195 | display: flex;
196 | align-items: center;
197 | justify-content: space-between;
198 | gap: 20px;
199 | `;
200 | const SCoordinates = styled_components_1.default.span `
201 | display: inline-flex;
202 | align-items: center;
203 | font-weight: 600;
204 | font-size: 0.75rem;
205 | margin-left: 0.2em;
206 | cursor: pointer;
207 | color: ${({ theme }) => theme.colors.neutral800};
208 | height: 26px;
209 | &.active {
210 | cursor: default;
211 | }
212 | `;
213 | const SFieldInput = styled_components_1.default.input `
214 | border: 1px solid ${({ theme }) => theme.colors.neutral200};
215 | border-radius: ${({ theme }) => theme.borderRadius};
216 | background: ${({ theme }) => theme.colors.neutral0};
217 |
218 | padding: 0.2em 0.4em 0.3em;
219 | color: ${({ theme }) => theme.colors.neutral800};
220 | font-weight: 400;
221 | flex: 1;
222 | font-size: ${12 / 14}rem;
223 | display: block;
224 | width: 100%;
225 | ::placeholder {
226 | color: ${({ theme }) => theme.colors.neutral500};
227 | opacity: 1;
228 | }
229 | &:focus {
230 | outline: none;
231 | box-shadow: none;
232 | }
233 | &.error {
234 | border-color: ${({ theme }) => theme.colors.danger600};
235 | }
236 | `;
237 | const SFavoritesPlaces = styled_components_1.default.div `
238 | display: flex;
239 | gap: 10px;
240 | margin-bottom: 10px;
241 | color: ${({ theme }) => theme.colors.primary600};
242 | &:hover {
243 | color: ${({ theme }) => theme.colors.primary500};
244 | }
245 | &.active {
246 | color: ${({ theme }) => theme.colors.primary700};
247 | }
248 | `;
249 | const SFavoritesPlacesItem = styled_components_1.default.div ``;
250 | const SSearchField = styled_components_1.default.input `
251 | box-sizing: border-box;
252 | border: 1px solid transparent;
253 | width: 240px;
254 | height: 40px;
255 | padding: 0 12px;
256 | border-radius: 3px;
257 | box-shadow: rgb(0 0 0 / 30%) 0px 1px 4px -1px;
258 | font-size: 14px;
259 | outline: none;
260 | text-overflow: ellipses;
261 | position: absolute;
262 | left: 200px;
263 | margin-top: 10px;
264 | `;
265 | exports.default = MapPickerInput;
266 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/build/admin/components/MapPicker/MapPickerInput/index.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/admin/components/MapPicker/MapPickerInput/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAwC;AACxC,2CAAqC;AACrC,0EAAuC;AACvC,uDAAoD;AACpD,yDAAsD;AACtD,mDAAgD;AAChD,yDAAsD;AACtD,qDAAkD;AAClD,iEAA8D;AAC9D,uDAAuF;AACvF,gDAAyF;AAEzF,0CAAyC;AAGzC,MAAM,SAAS,GAAiC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AACvE,MAAM,mBAAmB,GAAG,CAAC,UAAU,CAAC,CAAC;AAEzC,MAAM,iBAAiB,GAAG;IACtB,MAAM,EAAE,OAAO;IACf,KAAK,EAAE,MAAM;CAChB,CAAC;AAEF,MAAM,cAAc,GAAkC,CAAC,EACnD,SAAS,EACT,WAAW,EACX,KAAK,GAAG,IAAI,EACZ,SAAS,EACT,WAAW,GAAG,IAAI,EAClB,IAAI,EACJ,QAAQ,EACR,QAAQ,GAAG,KAAK,EAChB,KAAK,EACL,MAAM,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,GACrD,EAAE,EAAE;IACD,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAA,mBAAa,EAAC;QAC1C,gBAAgB,EAAE,MAAM;QACxB,SAAS,EAAE,SAAS;KACvB,CAAC,CAAC;IAEH,MAAM,EAAE,aAAa,EAAE,GAAG,IAAA,oBAAO,GAAE,CAAC;IAEpC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,GAAmC,CAAC;IACpF,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAC,aAAa,CAAC,CAAC;IACxD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAA+B,aAAa,CAAC,CAAC;IAClF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAEpD,MAAM,kBAAkB,GAAG,CAAC,YAA6C,EAAE,EAAE;QACzE,eAAe,CAAC,YAAY,CAAC,CAAC;IAClC,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,GAAG,EAAE;QACxB,IAAI,YAAY,IAAI,IAAI,EAAE;YACtB,SAAS,CAAC,IAAI,CAAC,CAAC;YAChB,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC;YAC3C,IAAI,QAAQ,EAAE;gBACV,SAAS,CAAC;oBACN,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE;oBACnB,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE;iBACtB,CAAC,CAAC;aACN;SACJ;IACL,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,CAAC,IAA+B,EAAE,EAAE;QAC1D,SAAS,CAAC,IAAI,CAAC,CAAC;QAChB,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;YACrB,WAAW,CAAC;gBACR,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;gBACtB,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;aACzB,CAAC,CAAC;YACH,QAAQ,EAAE,CAAC;gBACP,MAAM,EAAE;oBACJ,IAAI;oBACJ,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC;wBAClB,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;wBACtB,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;qBACzB,CAAC;oBACF,IAAI,EAAE,SAAS,CAAC,IAAI;iBACvB;aACJ,CAAC,CAAC;SACN;IACL,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,CAAC,WAAyC,EAAE,EAAE;QACnE,SAAS,CAAC;YACN,GAAG,EAAE,WAAW,CAAC,GAAG;YACpB,GAAG,EAAE,WAAW,CAAC,GAAG;SACvB,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,KAAoC,EAAE,EAAE;QAC3D,IAAI,CAAC,MAAM,EAAE;YACT,SAAS,CAAC,IAAI,CAAC,CAAC;SACnB;QAED,MAAM,gBAAgB,GAAG,uDAAuD,CAAC;QACjF,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QAC/B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE5C,IAAI,QAAQ,EAAE;YACV,aAAa,CAAC,KAAK,CAAC,CAAC;YACrB,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAClC,WAAW,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACpD,SAAS,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClD,QAAQ,EAAE,CAAC;gBACP,MAAM,EAAE;oBACJ,IAAI;oBACJ,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC7D,IAAI,EAAE,SAAS,CAAC,IAAI;iBACvB;aACJ,CAAC,CAAC;SACN;aAAM;YACH,aAAa,CAAC,IAAI,CAAC,CAAC;SACvB;IACL,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,eAAK,CAAC,WAAW,CAAC,SAAS,MAAM;QAC5C,IAAI,KAAK,EAAE;YACP,SAAS,CAAC,IAAI,CAAC,CAAC;YAChB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YAC/B,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;SAChC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,UAAU,GAAG,CAAC,KAAqB,EAAE,EAAE;QACzC,IAAI,KAAK,EAAE;YACP,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC9B,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;SACzD;aAAM;YACH,OAAO,aAAa,CAAC;gBACjB,EAAE,EAAE,IAAA,eAAO,EAAC,gCAAgC,CAAC;gBAC7C,cAAc,EAAE,cAAc;aACjC,CAAC,CAAC;SACN;IACL,CAAC,CAAC;IAIF,IAAI,SAAS,EAAE,MAAM,EAAE,EAAE,KAAK,eAAe,EAAE;QAC3C,OAAO,CACH;YACI,8BAAC,kBAAU,QAAE,IAAI,CAAc;YAC/B,8BAAC,SAAG,IAAC,UAAU,EAAC,GAAG;gBACf,8BAAC,eAAM,IAAC,OAAO,EAAC,SAAS,EAAC,IAAI,EAAC,GAAG,EAAC,UAAU,EAAE,KAAK;oBAChD,8BAAC,uBAAU;wBACP,8BAAC,uBAAU;;4BACW,8BAAC,uBAAU,IAAC,UAAU,EAAC,MAAM,kBAAyB,CAC/D,CACJ;oBACb,yCAAM;oBACN,8BAAC,WAAI,IAAC,IAAI,EAAC,0DAA0D,EAAC,UAAU,+CAEzE,CACF,CACP,CACP,CACN,CAAC;KACL;IAED,IAAI,CAAC,QAAQ,EAAE;QACX,OAAO,8BAAC,QAAQ,IAAC,KAAK,EAAE,iBAAiB,iBAAuB,CAAC;KACpE;IAED,OAAO,CACH,8BAAC,aAAK,IAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,IAAI,aAAa,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,QAAQ;QAC1G,8BAAC,aAAK,IAAC,OAAO,EAAE,CAAC;YACb,8BAAC,WAAW;gBACR,8BAAC,kBAAU,IAAC,MAAM,EAAE,WAAW;oBAC1B,aAAa,CAAC,SAAS,CAAC;oBACzB,8BAAC,YAAY,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,IAC7E,UAAU,CAAC,KAAK,CAAC,CACP,CACN;gBACZ,KAAK,IAAI,CACN,8BAAC,WAAW,IACR,IAAI,EAAC,MAAM,EACX,WAAW,EAAC,UAAU,EACtB,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,EACrC,SAAS,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,GAC3C,CACL,CACS;YAEb,QAAQ,CAAC,CAAC,CAAC,CACR;gBACK,eAAe,IAAI,CAChB,8BAAC,gBAAgB,QACZ,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;oBAC/B,OAAO,CACH,8BAAC,oBAAoB,IACjB,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC;wBAEjD,8BAAC,eAAM,IAAC,IAAI,EAAC,GAAG,EAAC,OAAO,EAAC,UAAU,IAC9B,IAAI,CAAC,KAAK,CACN,CACU,CAC1B,CAAC;gBACN,CAAC,CAAC,CACa,CACtB;gBAED,8BAAC,UAAU;oBACP,8BAAC,eAAS,IACN,EAAE,EAAE,IAAI,EACR,iBAAiB,EAAE,iBAAiB,EACpC,IAAI,EAAE,EAAE,EACR,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,aAAa,CAAC,EAC5D,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,EACtB,OAAO,EAAE;4BACL,WAAW,EAAE,IAAI;4BACjB,OAAO,EAAE,EAAE;yBACd;wBAED,8BAAC,kBAAY,IACT,MAAM,EAAE,CAAC,YAA6C,EAAE,EAAE,CACtD,kBAAkB,CAAC,YAAY,CAAC,EAEpC,cAAc,EAAE,GAAG,EAAE,CAAC,cAAc,EAAE,EACtC,MAAM,EAAE,mBAAmB;4BAE3B,8BAAC,YAAY,IACT,IAAI,EAAC,MAAM,EACX,WAAW,EAAE,aAAa,CAAC;oCACvB,EAAE,EAAE,IAAA,eAAO,EAAC,0BAA0B,CAAC;oCACvC,cAAc,EAAE,QAAQ;iCAC3B,CAAC,GACJ,CACS;wBACd,MAAM,CAAC,CAAC,CAAC,CACN,8BAAC,aAAO,IACJ,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,IAAI,EACf,SAAS,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,GACxD,CACL,CAAC,CAAC,CAAC,IAAI,CACA,CACH,CACX,CACT,CAAC,CAAC,CAAC,CACA,8BAAC,QAAQ,IAAC,KAAK,EAAE,iBAAiB,iBAAuB,CAC5D;YAED,8BAAC,iBAAS,OAAG;YACb,8BAAC,kBAAU,OAAG,CACV,CACJ,CACX,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,2BAAM,CAAC,GAAG,CAAA;;wBAEH,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU;;;CAG7D,CAAC;AAEF,MAAM,UAAU,GAAG,2BAAM,CAAC,GAAG,CAAA;qBACR,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY;;CAErD,CAAC;AAEF,MAAM,WAAW,GAAG,2BAAM,CAAC,GAAG,CAAA;;;;;CAK7B,CAAC;AAEF,MAAM,YAAY,GAAG,2BAAM,CAAC,IAAI,CAAA;;;;;;;aAOnB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU;;;;;CAKlD,CAAC;AAEF,MAAM,WAAW,GAAG,2BAAM,CAAC,KAAK,CAAA;wBACR,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU;qBACzC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY;kBACpC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ;;;aAGzC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU;;;iBAGlC,EAAE,GAAG,EAAE;;;;iBAIP,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU;;;;;;;;wBAQ/B,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS;;CAE5D,CAAC;AAEF,MAAM,gBAAgB,GAAG,2BAAM,CAAC,GAAG,CAAA;;;;aAItB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU;;iBAElC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU;;;iBAGtC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU;;CAEtD,CAAC;AAEF,MAAM,oBAAoB,GAAG,2BAAM,CAAC,GAAG,CAAA,EAAE,CAAC;AAE1C,MAAM,YAAY,GAAG,2BAAM,CAAC,KAAK,CAAA;;;;;;;;;;;;;;CAchC,CAAC;AAEF,kBAAe,cAAc,CAAC"}
--------------------------------------------------------------------------------
/build/admin/constants.d.ts:
--------------------------------------------------------------------------------
1 | export declare const RESOLVE_CONFIG: string;
2 |
--------------------------------------------------------------------------------
/build/admin/constants.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | Object.defineProperty(exports, "__esModule", { value: true });
3 | exports.RESOLVE_CONFIG = void 0;
4 | const utils_1 = require("./utils");
5 | exports.RESOLVE_CONFIG = `${utils_1.pluginId}/resolve-config`;
6 | //# sourceMappingURL=constants.js.map
--------------------------------------------------------------------------------
/build/admin/constants.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/admin/constants.ts"],"names":[],"mappings":";;;AAAA,mCAAmC;AAEtB,QAAA,cAAc,GAAG,GAAG,gBAAQ,iBAAiB,CAAC"}
--------------------------------------------------------------------------------
/build/admin/hooks/index.d.ts:
--------------------------------------------------------------------------------
1 | export { default as usePluginConfig } from "./use-plugin-config";
2 |
--------------------------------------------------------------------------------
/build/admin/hooks/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __importDefault = (this && this.__importDefault) || function (mod) {
3 | return (mod && mod.__esModule) ? mod : { "default": mod };
4 | };
5 | Object.defineProperty(exports, "__esModule", { value: true });
6 | exports.usePluginConfig = void 0;
7 | var use_plugin_config_1 = require("./use-plugin-config");
8 | Object.defineProperty(exports, "usePluginConfig", { enumerable: true, get: function () { return __importDefault(use_plugin_config_1).default; } });
9 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/build/admin/hooks/index.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/admin/hooks/index.ts"],"names":[],"mappings":";;;;;;AAAA,yDAAiE;AAAxD,qIAAA,OAAO,OAAmB"}
--------------------------------------------------------------------------------
/build/admin/hooks/use-plugin-config.d.ts:
--------------------------------------------------------------------------------
1 | declare const usePluginConfig: () => {
2 | config: any;
3 | isLoading: any;
4 | };
5 | export default usePluginConfig;
6 |
--------------------------------------------------------------------------------
/build/admin/hooks/use-plugin-config.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | Object.defineProperty(exports, "__esModule", { value: true });
3 | const react_1 = require("react");
4 | const react_redux_1 = require("react-redux");
5 | const helper_plugin_1 = require("@strapi/helper-plugin");
6 | const constants_1 = require("../constants");
7 | const utils_1 = require("../utils");
8 | const usePluginConfig = () => {
9 | const dispatch = (0, react_redux_1.useDispatch)();
10 | const toggleNotification = (0, helper_plugin_1.useNotification)();
11 | const { config, isLoading } = (0, react_redux_1.useSelector)((state) => state[`${utils_1.pluginId}_config`]);
12 | (0, react_1.useEffect)(() => {
13 | if (!isLoading && !!config) {
14 | return;
15 | }
16 | const abortController = new AbortController();
17 | const fetchData = async () => {
18 | try {
19 | const endpoint = `/${utils_1.pluginId}/config`;
20 | const data = await (0, helper_plugin_1.request)(endpoint, {
21 | method: "GET",
22 | signal: abortController.signal,
23 | });
24 | return data ?? {};
25 | }
26 | catch (err) {
27 | if (!abortController.signal.aborted) {
28 | toggleNotification({
29 | type: "warning",
30 | message: { id: "notification.error" },
31 | });
32 | return err;
33 | }
34 | }
35 | };
36 | fetchData().then((data) => dispatch({ type: constants_1.RESOLVE_CONFIG, data }));
37 | return () => abortController.abort();
38 | }, [dispatch, toggleNotification]);
39 | return { config, isLoading };
40 | };
41 | exports.default = usePluginConfig;
42 | //# sourceMappingURL=use-plugin-config.js.map
--------------------------------------------------------------------------------
/build/admin/hooks/use-plugin-config.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"use-plugin-config.js","sourceRoot":"","sources":["../../../src/admin/hooks/use-plugin-config.ts"],"names":[],"mappings":";;AAAA,iCAAkC;AAClC,6CAAuD;AACvD,yDAAiE;AAEjE,4CAA8C;AAC9C,oCAAoC;AAEpC,MAAM,eAAe,GAAG,GAAG,EAAE;IACzB,MAAM,QAAQ,GAAG,IAAA,yBAAW,GAAE,CAAC;IAC/B,MAAM,kBAAkB,GAAG,IAAA,+BAAe,GAAE,CAAC;IAC7C,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,yBAAW,EAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,gBAAQ,SAAS,CAAC,CAAC,CAAC;IAEvF,IAAA,iBAAS,EAAC,GAAG,EAAE;QACX,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,MAAM,EAAE;YACxB,OAAO;SACV;QAED,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAE9C,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE;YACzB,IAAI;gBACA,MAAM,QAAQ,GAAG,IAAI,gBAAQ,SAAS,CAAC;gBACvC,MAAM,IAAI,GAAG,MAAM,IAAA,uBAAO,EAAC,QAAQ,EAAE;oBACjC,MAAM,EAAE,KAAK;oBACb,MAAM,EAAE,eAAe,CAAC,MAAM;iBACjC,CAAC,CAAC;gBAEH,OAAO,IAAI,IAAI,EAAE,CAAC;aACrB;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE;oBACjC,kBAAkB,CAAC;wBACf,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,EAAE,EAAE,EAAE,oBAAoB,EAAE;qBACxC,CAAC,CAAC;oBAEH,OAAO,GAAG,CAAC;iBACd;aACJ;QACL,CAAC,CAAC;QAEF,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,0BAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAErE,OAAO,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;IACzC,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAEnC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AACjC,CAAC,CAAC;AAEF,kBAAe,eAAe,CAAC"}
--------------------------------------------------------------------------------
/build/admin/index.d.ts:
--------------------------------------------------------------------------------
1 | import { StrapiAdminInstance } from "strapi-typed";
2 | import { TranslationKey } from "./translations";
3 | declare const _default: {
4 | register(app: StrapiAdminInstance): void;
5 | registerTrads({ locales }: {
6 | locales: Array;
7 | }): Promise<({
8 | data: any;
9 | locale: string;
10 | } | {
11 | data: {};
12 | locale: string;
13 | })[]>;
14 | };
15 | export default _default;
16 |
--------------------------------------------------------------------------------
/build/admin/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3 | if (k2 === undefined) k2 = k;
4 | var desc = Object.getOwnPropertyDescriptor(m, k);
5 | if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6 | desc = { enumerable: true, get: function() { return m[k]; } };
7 | }
8 | Object.defineProperty(o, k2, desc);
9 | }) : (function(o, m, k, k2) {
10 | if (k2 === undefined) k2 = k;
11 | o[k2] = m[k];
12 | }));
13 | var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14 | Object.defineProperty(o, "default", { enumerable: true, value: v });
15 | }) : function(o, v) {
16 | o["default"] = v;
17 | });
18 | var __importStar = (this && this.__importStar) || function (mod) {
19 | if (mod && mod.__esModule) return mod;
20 | var result = {};
21 | if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22 | __setModuleDefault(result, mod);
23 | return result;
24 | };
25 | var __importDefault = (this && this.__importDefault) || function (mod) {
26 | return (mod && mod.__esModule) ? mod : { "default": mod };
27 | };
28 | Object.defineProperty(exports, "__esModule", { value: true });
29 | const helper_plugin_1 = require("@strapi/helper-plugin");
30 | const MapPickerIcon_1 = __importDefault(require("./components/MapPicker/MapPickerIcon"));
31 | const utils_1 = require("./utils");
32 | const reducers_1 = __importDefault(require("./reducers"));
33 | exports.default = {
34 | register(app) {
35 | app.customFields.register({
36 | name: "place",
37 | pluginId: utils_1.pluginId,
38 | type: "string",
39 | icon: MapPickerIcon_1.default,
40 | intlLabel: {
41 | id: (0, utils_1.getTrad)("google-map-picker.label"),
42 | defaultMessage: "Place",
43 | },
44 | intlDescription: {
45 | id: (0, utils_1.getTrad)("google-map-picker.description"),
46 | defaultMessage: "Select place",
47 | },
48 | components: {
49 | Input: async () => Promise.resolve().then(() => __importStar(require("./components/MapPicker/MapPickerComponent"))),
50 | },
51 | options: {
52 | base: [],
53 | advanced: [
54 | {
55 | intlLabel: {
56 | id: (0, utils_1.getTrad)("google-map-picker.options.advanced.regex"),
57 | defaultMessage: "RegExp pattern",
58 | },
59 | name: "regex",
60 | type: "text",
61 | description: {
62 | id: (0, utils_1.getTrad)("google-map-picker.options.advanced.regex.description"),
63 | defaultMessage: "The text of the regular expression",
64 | },
65 | },
66 | {
67 | sectionTitle: {
68 | id: "global.settings",
69 | defaultMessage: "Settings",
70 | },
71 | items: [
72 | {
73 | name: "required",
74 | type: "checkbox",
75 | intlLabel: {
76 | id: (0, utils_1.getTrad)("google-map-picker.options.advanced.requiredField"),
77 | defaultMessage: "Required field",
78 | },
79 | description: {
80 | id: (0, utils_1.getTrad)("google-map-picker.options.advanced.requiredField.description"),
81 | defaultMessage: "You won't be able to create an entry if this field is empty",
82 | },
83 | },
84 | ],
85 | },
86 | ],
87 | validator: () => ({}),
88 | },
89 | });
90 | app.addReducers(reducers_1.default);
91 | },
92 | async registerTrads({ locales }) {
93 | const importedTrads = await Promise.all(locales.map((locale) => {
94 | var _a;
95 | return (_a = `./translations/${locale}.json`, Promise.resolve().then(() => __importStar(require(_a)))).then(({ default: data }) => {
96 | return {
97 | data: (0, helper_plugin_1.prefixPluginTranslations)(data, utils_1.pluginId),
98 | locale,
99 | };
100 | })
101 | .catch(() => {
102 | return {
103 | data: {},
104 | locale,
105 | };
106 | });
107 | }));
108 | return Promise.resolve(importedTrads);
109 | },
110 | };
111 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/build/admin/index.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/admin/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yDAAiE;AAIjE,yFAAiE;AACjE,mCAA4C;AAC5C,0DAAkC;AAGlC,kBAAe;IACX,QAAQ,CAAC,GAAwB;QAC7B,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC;YACtB,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,gBAAQ;YAClB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,uBAAa;YACnB,SAAS,EAAE;gBACP,EAAE,EAAE,IAAA,eAAO,EAAC,yBAAyB,CAAC;gBACtC,cAAc,EAAE,OAAO;aAC1B;YACD,eAAe,EAAE;gBACb,EAAE,EAAE,IAAA,eAAO,EAAC,+BAA+B,CAAC;gBAC5C,cAAc,EAAE,cAAc;aACjC;YACD,UAAU,EAAE;gBACR,KAAK,EAAE,KAAK,IAAI,EAAE,mDAAQ,2CAA2C,GAAC;aACzE;YACD,OAAO,EAAE;gBACL,IAAI,EAAE,EAAE;gBACR,QAAQ,EAAE;oBACN;wBACI,SAAS,EAAE;4BACP,EAAE,EAAE,IAAA,eAAO,EAAC,0CAA0C,CAAC;4BACvD,cAAc,EAAE,gBAAgB;yBACnC;wBACD,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,MAAM;wBACZ,WAAW,EAAE;4BACT,EAAE,EAAE,IAAA,eAAO,EAAC,sDAAsD,CAAC;4BACnE,cAAc,EAAE,oCAAoC;yBACvD;qBACJ;oBACD;wBACI,YAAY,EAAE;4BACV,EAAE,EAAE,iBAAiB;4BACrB,cAAc,EAAE,UAAU;yBAC7B;wBACD,KAAK,EAAE;4BACH;gCACI,IAAI,EAAE,UAAU;gCAChB,IAAI,EAAE,UAAU;gCAChB,SAAS,EAAE;oCACP,EAAE,EAAE,IAAA,eAAO,EAAC,kDAAkD,CAAC;oCAC/D,cAAc,EAAE,gBAAgB;iCACnC;gCACD,WAAW,EAAE;oCACT,EAAE,EAAE,IAAA,eAAO,EAAC,8DAA8D,CAAC;oCAC3E,cAAc,EAAE,6DAA6D;iCAChF;6BACJ;yBACJ;qBACJ;iBACJ;gBACD,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;aACxB;SACJ,CAAC,CAAC;QACH,GAAG,CAAC,WAAW,CAAC,kBAAQ,CAAC,CAAC;IAC9B,CAAC;IACD,KAAK,CAAC,aAAa,CAAC,EAAE,OAAO,EAAsC;QAC/D,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACnC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAc,EAAE,EAAE;;YAC3B,OAAO,MAAO,kBAAkB,MAAM,OAAO,2DACxC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;gBACxB,OAAO;oBACH,IAAI,EAAE,IAAA,wCAAwB,EAAC,IAAI,EAAE,gBAAQ,CAAC;oBAC9C,MAAM;iBACT,CAAC;YACN,CAAC,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE;gBACR,OAAO;oBACH,IAAI,EAAE,EAAE;oBACR,MAAM;iBACT,CAAC;YACN,CAAC,CAAC,CAAC;QACX,CAAC,CAAC,CACL,CAAC;QAEF,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1C,CAAC;CACJ,CAAC"}
--------------------------------------------------------------------------------
/build/admin/reducers/config.d.ts:
--------------------------------------------------------------------------------
1 | declare const configReducer: (base: any, action: any) => any;
2 | export default configReducer;
3 |
--------------------------------------------------------------------------------
/build/admin/reducers/config.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __importDefault = (this && this.__importDefault) || function (mod) {
3 | return (mod && mod.__esModule) ? mod : { "default": mod };
4 | };
5 | Object.defineProperty(exports, "__esModule", { value: true });
6 | const immer_1 = __importDefault(require("immer"));
7 | const constants_1 = require("../constants");
8 | const initialState = {
9 | isLoading: true,
10 | config: {
11 | apiKey: null,
12 | defaultCenter: null,
13 | favoritesPlaces: null,
14 | },
15 | };
16 | const configReducer = (0, immer_1.default)((state = initialState, action) => {
17 | switch (action.type) {
18 | case constants_1.RESOLVE_CONFIG: {
19 | state.isLoading = false;
20 | state.config = action.data;
21 | break;
22 | }
23 | default:
24 | return state;
25 | }
26 | return state;
27 | });
28 | exports.default = configReducer;
29 | //# sourceMappingURL=config.js.map
--------------------------------------------------------------------------------
/build/admin/reducers/config.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/admin/reducers/config.ts"],"names":[],"mappings":";;;;;AAAA,kDAA4B;AAE5B,4CAA8C;AAE9C,MAAM,YAAY,GAAG;IACjB,SAAS,EAAE,IAAI;IACf,MAAM,EAAE;QACJ,MAAM,EAAE,IAAI;QACZ,aAAa,EAAE,IAAI;QACnB,eAAe,EAAE,IAAI;KACxB;CACJ,CAAC;AAEF,MAAM,aAAa,GAAG,IAAA,eAAO,EAAC,CAAC,KAAK,GAAG,YAAY,EAAE,MAAM,EAAE,EAAE;IAC3D,QAAQ,MAAM,CAAC,IAAI,EAAE;QACjB,KAAK,0BAAc,CAAC,CAAC;YACjB,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;YACxB,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;YAC3B,MAAM;SACT;QAED;YACI,OAAO,KAAK,CAAC;KACpB;IAED,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC,CAAC;AAEH,kBAAe,aAAa,CAAC"}
--------------------------------------------------------------------------------
/build/admin/reducers/index.d.ts:
--------------------------------------------------------------------------------
1 | declare const reducers: {
2 | [x: string]: (base: any, action: any) => any;
3 | };
4 | export default reducers;
5 |
--------------------------------------------------------------------------------
/build/admin/reducers/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __importDefault = (this && this.__importDefault) || function (mod) {
3 | return (mod && mod.__esModule) ? mod : { "default": mod };
4 | };
5 | Object.defineProperty(exports, "__esModule", { value: true });
6 | const utils_1 = require("../utils");
7 | const config_1 = __importDefault(require("./config"));
8 | const reducers = {
9 | [`${utils_1.pluginId}_config`]: config_1.default,
10 | };
11 | exports.default = reducers;
12 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/build/admin/reducers/index.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/admin/reducers/index.ts"],"names":[],"mappings":";;;;;AAAA,oCAAoC;AACpC,sDAA8B;AAE9B,MAAM,QAAQ,GAAG;IACb,CAAC,GAAG,gBAAQ,SAAS,CAAC,EAAE,gBAAM;CACjC,CAAC;AAEF,kBAAe,QAAQ,CAAC"}
--------------------------------------------------------------------------------
/build/admin/translations/index.d.ts:
--------------------------------------------------------------------------------
1 | export type TranslationKey = "ru" | "en";
2 |
--------------------------------------------------------------------------------
/build/admin/translations/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | Object.defineProperty(exports, "__esModule", { value: true });
3 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/build/admin/translations/index.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/admin/translations/index.ts"],"names":[],"mappings":""}
--------------------------------------------------------------------------------
/build/admin/utils/get-trad.d.ts:
--------------------------------------------------------------------------------
1 | declare const getTrad: (id: string) => string;
2 | export default getTrad;
3 |
--------------------------------------------------------------------------------
/build/admin/utils/get-trad.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | Object.defineProperty(exports, "__esModule", { value: true });
3 | const _1 = require("./");
4 | const getTrad = (id) => `${_1.pluginId}.${id}`;
5 | exports.default = getTrad;
6 | //# sourceMappingURL=get-trad.js.map
--------------------------------------------------------------------------------
/build/admin/utils/get-trad.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"get-trad.js","sourceRoot":"","sources":["../../../src/admin/utils/get-trad.ts"],"names":[],"mappings":";;AAAA,yBAA8B;AAE9B,MAAM,OAAO,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,GAAG,WAAQ,IAAI,EAAE,EAAE,CAAC;AAEpD,kBAAe,OAAO,CAAC"}
--------------------------------------------------------------------------------
/build/admin/utils/getMessage.d.ts:
--------------------------------------------------------------------------------
1 | export type ToBeFixed = any;
2 | declare const getMessage: (input: ToBeFixed, defaultMessage?: string, inPluginScope?: boolean) => string;
3 | export default getMessage;
4 |
--------------------------------------------------------------------------------
/build/admin/utils/getMessage.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __importDefault = (this && this.__importDefault) || function (mod) {
3 | return (mod && mod.__esModule) ? mod : { "default": mod };
4 | };
5 | Object.defineProperty(exports, "__esModule", { value: true });
6 | const react_intl_1 = require("react-intl");
7 | const lodash_1 = require("lodash");
8 | const plugin_id_1 = __importDefault(require("./plugin-id"));
9 | const getMessage = (input, defaultMessage = "", inPluginScope = true) => {
10 | const { formatMessage } = (0, react_intl_1.useIntl)();
11 | let formattedId = "";
12 | if ((0, lodash_1.isString)(input)) {
13 | formattedId = input;
14 | }
15 | else {
16 | formattedId = input?.id;
17 | }
18 | return formatMessage({
19 | id: `${inPluginScope ? plugin_id_1.default : "app.components"}.${formattedId}`,
20 | defaultMessage,
21 | }, input?.props);
22 | };
23 | exports.default = getMessage;
24 | //# sourceMappingURL=getMessage.js.map
--------------------------------------------------------------------------------
/build/admin/utils/getMessage.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"getMessage.js","sourceRoot":"","sources":["../../../src/admin/utils/getMessage.ts"],"names":[],"mappings":";;;;;AAAA,2CAAqC;AACrC,mCAAkC;AAIlC,4DAAmC;AAEnC,MAAM,UAAU,GAAG,CAAC,KAAgB,EAAE,cAAc,GAAG,EAAE,EAAE,aAAa,GAAG,IAAI,EAAE,EAAE;IAC/E,MAAM,EAAE,aAAa,EAAE,GAAG,IAAA,oBAAO,GAAE,CAAC;IACpC,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,IAAI,IAAA,iBAAQ,EAAC,KAAK,CAAC,EAAE;QACjB,WAAW,GAAG,KAAK,CAAC;KACvB;SAAM;QACH,WAAW,GAAG,KAAK,EAAE,EAAE,CAAC;KAC3B;IAED,OAAO,aAAa,CAChB;QACI,EAAE,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,mBAAQ,CAAC,CAAC,CAAC,gBAAgB,IAAI,WAAW,EAAE;QACnE,cAAc;KACjB,EACD,KAAK,EAAE,KAAK,CACf,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe,UAAU,CAAC"}
--------------------------------------------------------------------------------
/build/admin/utils/index.d.ts:
--------------------------------------------------------------------------------
1 | export { default as getTrad } from "./get-trad";
2 | export { default as pluginId } from "./plugin-id";
3 | export { default as pluginName } from "./plugin-name";
4 |
--------------------------------------------------------------------------------
/build/admin/utils/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __importDefault = (this && this.__importDefault) || function (mod) {
3 | return (mod && mod.__esModule) ? mod : { "default": mod };
4 | };
5 | Object.defineProperty(exports, "__esModule", { value: true });
6 | exports.pluginName = exports.pluginId = exports.getTrad = void 0;
7 | var get_trad_1 = require("./get-trad");
8 | Object.defineProperty(exports, "getTrad", { enumerable: true, get: function () { return __importDefault(get_trad_1).default; } });
9 | var plugin_id_1 = require("./plugin-id");
10 | Object.defineProperty(exports, "pluginId", { enumerable: true, get: function () { return __importDefault(plugin_id_1).default; } });
11 | var plugin_name_1 = require("./plugin-name");
12 | Object.defineProperty(exports, "pluginName", { enumerable: true, get: function () { return __importDefault(plugin_name_1).default; } });
13 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/build/admin/utils/index.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/admin/utils/index.ts"],"names":[],"mappings":";;;;;;AAAA,uCAAgD;AAAvC,oHAAA,OAAO,OAAW;AAC3B,yCAAkD;AAAzC,sHAAA,OAAO,OAAY;AAC5B,6CAAsD;AAA7C,0HAAA,OAAO,OAAc"}
--------------------------------------------------------------------------------
/build/admin/utils/plugin-id.d.ts:
--------------------------------------------------------------------------------
1 | declare const _default: string;
2 | export default _default;
3 |
--------------------------------------------------------------------------------
/build/admin/utils/plugin-id.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __importDefault = (this && this.__importDefault) || function (mod) {
3 | return (mod && mod.__esModule) ? mod : { "default": mod };
4 | };
5 | Object.defineProperty(exports, "__esModule", { value: true });
6 | const package_json_1 = __importDefault(require("../../../package.json"));
7 | exports.default = package_json_1.default.strapi.name;
8 | //# sourceMappingURL=plugin-id.js.map
--------------------------------------------------------------------------------
/build/admin/utils/plugin-id.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"plugin-id.js","sourceRoot":"","sources":["../../../src/admin/utils/plugin-id.ts"],"names":[],"mappings":";;;;;AAAA,yEAA8C;AAE9C,kBAAe,sBAAS,CAAC,MAAM,CAAC,IAAI,CAAC"}
--------------------------------------------------------------------------------
/build/admin/utils/plugin-name.d.ts:
--------------------------------------------------------------------------------
1 | declare const _default: string;
2 | export default _default;
3 |
--------------------------------------------------------------------------------
/build/admin/utils/plugin-name.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __importDefault = (this && this.__importDefault) || function (mod) {
3 | return (mod && mod.__esModule) ? mod : { "default": mod };
4 | };
5 | Object.defineProperty(exports, "__esModule", { value: true });
6 | const package_json_1 = __importDefault(require("../../../package.json"));
7 | exports.default = package_json_1.default.strapi.displayName;
8 | //# sourceMappingURL=plugin-name.js.map
--------------------------------------------------------------------------------
/build/admin/utils/plugin-name.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"plugin-name.js","sourceRoot":"","sources":["../../../src/admin/utils/plugin-name.ts"],"names":[],"mappings":";;;;;AAAA,yEAA8C;AAE9C,kBAAe,sBAAS,CAAC,MAAM,CAAC,WAAW,CAAC"}
--------------------------------------------------------------------------------
/build/server/config.d.ts:
--------------------------------------------------------------------------------
1 | declare const _default: {
2 | default: {
3 | apiKey: null;
4 | defaultCenter: null;
5 | favoritesPlaces: null;
6 | };
7 | };
8 | export default _default;
9 |
--------------------------------------------------------------------------------
/build/server/config.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | Object.defineProperty(exports, "__esModule", { value: true });
3 | exports.default = {
4 | default: {
5 | apiKey: null,
6 | defaultCenter: null,
7 | favoritesPlaces: null,
8 | },
9 | };
10 | //# sourceMappingURL=config.js.map
--------------------------------------------------------------------------------
/build/server/config.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/server/config.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,kBAAe;IACX,OAAO,EAAE;QACL,MAAM,EAAE,IAAI;QACZ,aAAa,EAAE,IAAI;QACnB,eAAe,EAAE,IAAI;KACxB;CACJ,CAAC"}
--------------------------------------------------------------------------------
/build/server/controllers/google-map-picker.d.ts:
--------------------------------------------------------------------------------
1 | declare const _default: {
2 | config(ctx: any): Promise;
3 | };
4 | export default _default;
5 |
--------------------------------------------------------------------------------
/build/server/controllers/google-map-picker.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __importDefault = (this && this.__importDefault) || function (mod) {
3 | return (mod && mod.__esModule) ? mod : { "default": mod };
4 | };
5 | Object.defineProperty(exports, "__esModule", { value: true });
6 | const get_service_1 = __importDefault(require("../utils/get-service"));
7 | exports.default = {
8 | async config(ctx) {
9 | const config = await (0, get_service_1.default)("plugin").getConfig();
10 | ctx.send(config);
11 | },
12 | };
13 | //# sourceMappingURL=google-map-picker.js.map
--------------------------------------------------------------------------------
/build/server/controllers/google-map-picker.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"google-map-picker.js","sourceRoot":"","sources":["../../../src/server/controllers/google-map-picker.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;AAEb,uEAA8C;AAE9C,kBAAe;IACX,KAAK,CAAC,MAAM,CAAC,GAAQ;QACjB,MAAM,MAAM,GAAG,MAAM,IAAA,qBAAU,EAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,CAAC;QAEtD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC;CACJ,CAAC"}
--------------------------------------------------------------------------------
/build/server/controllers/index.d.ts:
--------------------------------------------------------------------------------
1 | declare const _default: {
2 | "google-map-picker": {
3 | config(ctx: any): Promise;
4 | };
5 | };
6 | export default _default;
7 |
--------------------------------------------------------------------------------
/build/server/controllers/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __importDefault = (this && this.__importDefault) || function (mod) {
3 | return (mod && mod.__esModule) ? mod : { "default": mod };
4 | };
5 | Object.defineProperty(exports, "__esModule", { value: true });
6 | const google_map_picker_1 = __importDefault(require("./google-map-picker"));
7 | exports.default = {
8 | "google-map-picker": google_map_picker_1.default,
9 | };
10 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/build/server/controllers/index.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/controllers/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;AAEb,4EAAkD;AAElD,kBAAe;IACX,mBAAmB,EAAE,2BAAe;CACvC,CAAC"}
--------------------------------------------------------------------------------
/build/server/helpers/pluginConfig.d.ts:
--------------------------------------------------------------------------------
1 | declare const getPluginConfig: (strapi: any) => any;
2 | export default getPluginConfig;
3 |
--------------------------------------------------------------------------------
/build/server/helpers/pluginConfig.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __importDefault = (this && this.__importDefault) || function (mod) {
3 | return (mod && mod.__esModule) ? mod : { "default": mod };
4 | };
5 | Object.defineProperty(exports, "__esModule", { value: true });
6 | const plugin_id_1 = __importDefault(require("../utils/plugin-id"));
7 | const getPluginConfig = (strapi) => {
8 | return strapi.plugin(plugin_id_1.default).config;
9 | };
10 | exports.default = getPluginConfig;
11 | //# sourceMappingURL=pluginConfig.js.map
--------------------------------------------------------------------------------
/build/server/helpers/pluginConfig.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"pluginConfig.js","sourceRoot":"","sources":["../../../src/server/helpers/pluginConfig.ts"],"names":[],"mappings":";;;;;AAAA,mEAA0C;AAE1C,MAAM,eAAe,GAAG,CAAC,MAAW,EAAE,EAAE;IACpC,OAAO,MAAM,CAAC,MAAM,CAAC,mBAAQ,CAAC,CAAC,MAAM,CAAC;AAC1C,CAAC,CAAC;AAEF,kBAAe,eAAe,CAAC"}
--------------------------------------------------------------------------------
/build/server/index.d.ts:
--------------------------------------------------------------------------------
1 | declare const _default: {
2 | register: ({ strapi }: {
3 | strapi: import("@strapi/strapi").Strapi;
4 | }) => void;
5 | config: {
6 | default: {
7 | apiKey: null;
8 | defaultCenter: null;
9 | favoritesPlaces: null;
10 | };
11 | };
12 | routes: {
13 | "admin-api": {
14 | type: string;
15 | routes: {
16 | method: string;
17 | path: string;
18 | handler: string;
19 | config: {
20 | policies: string[];
21 | };
22 | }[];
23 | };
24 | };
25 | controllers: {
26 | "google-map-picker": {
27 | config(ctx: any): Promise;
28 | };
29 | };
30 | services: {
31 | plugin: ({ strapi }: {
32 | strapi: import("@strapi/strapi").Strapi;
33 | }) => {
34 | getConfig(): Promise;
35 | };
36 | };
37 | };
38 | export default _default;
39 |
--------------------------------------------------------------------------------
/build/server/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __importDefault = (this && this.__importDefault) || function (mod) {
3 | return (mod && mod.__esModule) ? mod : { "default": mod };
4 | };
5 | Object.defineProperty(exports, "__esModule", { value: true });
6 | const register_1 = __importDefault(require("./register"));
7 | const config_1 = __importDefault(require("./config"));
8 | const routes_1 = __importDefault(require("./routes"));
9 | const controllers_1 = __importDefault(require("./controllers"));
10 | const services_1 = __importDefault(require("./services"));
11 | exports.default = {
12 | register: register_1.default,
13 | config: config_1.default,
14 | routes: routes_1.default,
15 | controllers: controllers_1.default,
16 | services: services_1.default,
17 | };
18 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/build/server/index.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;AAEb,0DAAkC;AAClC,sDAA8B;AAC9B,sDAA8B;AAC9B,gEAAwC;AACxC,0DAAkC;AAElC,kBAAe;IACX,QAAQ,EAAR,kBAAQ;IACR,MAAM,EAAN,gBAAM;IACN,MAAM,EAAN,gBAAM;IACN,WAAW,EAAX,qBAAW;IACX,QAAQ,EAAR,kBAAQ;CACX,CAAC"}
--------------------------------------------------------------------------------
/build/server/register.d.ts:
--------------------------------------------------------------------------------
1 | import { Strapi } from "@strapi/strapi";
2 | declare const _default: ({ strapi }: {
3 | strapi: Strapi;
4 | }) => void;
5 | export default _default;
6 |
--------------------------------------------------------------------------------
/build/server/register.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __importDefault = (this && this.__importDefault) || function (mod) {
3 | return (mod && mod.__esModule) ? mod : { "default": mod };
4 | };
5 | Object.defineProperty(exports, "__esModule", { value: true });
6 | const plugin_id_1 = __importDefault(require("./utils/plugin-id"));
7 | exports.default = ({ strapi }) => {
8 | strapi.customFields.register({
9 | name: "place",
10 | plugin: plugin_id_1.default,
11 | type: "string",
12 | });
13 | };
14 | //# sourceMappingURL=register.js.map
--------------------------------------------------------------------------------
/build/server/register.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/server/register.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;AAIb,kEAAyC;AAEzC,kBAAe,CAAC,EAAE,MAAM,EAAsB,EAAE,EAAE;IAC9C,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC;QACzB,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,mBAAQ;QAChB,IAAI,EAAE,QAAQ;KAIjB,CAAC,CAAC;AACP,CAAC,CAAC"}
--------------------------------------------------------------------------------
/build/server/routes/admin-api.d.ts:
--------------------------------------------------------------------------------
1 | declare const _default: {
2 | type: string;
3 | routes: {
4 | method: string;
5 | path: string;
6 | handler: string;
7 | config: {
8 | policies: string[];
9 | };
10 | }[];
11 | };
12 | export default _default;
13 |
--------------------------------------------------------------------------------
/build/server/routes/admin-api.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | Object.defineProperty(exports, "__esModule", { value: true });
3 | exports.default = {
4 | type: "admin",
5 | routes: [
6 | {
7 | method: "GET",
8 | path: "/config",
9 | handler: "google-map-picker.config",
10 | config: {
11 | policies: ["admin::isAuthenticatedAdmin"],
12 | },
13 | },
14 | ],
15 | };
16 | //# sourceMappingURL=admin-api.js.map
--------------------------------------------------------------------------------
/build/server/routes/admin-api.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"admin-api.js","sourceRoot":"","sources":["../../../src/server/routes/admin-api.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,kBAAe;IACX,IAAI,EAAE,OAAO;IACb,MAAM,EAAE;QACJ;YACI,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,0BAA0B;YACnC,MAAM,EAAE;gBACJ,QAAQ,EAAE,CAAC,6BAA6B,CAAC;aAC5C;SACJ;KACJ;CACJ,CAAC"}
--------------------------------------------------------------------------------
/build/server/routes/index.d.ts:
--------------------------------------------------------------------------------
1 | declare const _default: {
2 | "admin-api": {
3 | type: string;
4 | routes: {
5 | method: string;
6 | path: string;
7 | handler: string;
8 | config: {
9 | policies: string[];
10 | };
11 | }[];
12 | };
13 | };
14 | export default _default;
15 |
--------------------------------------------------------------------------------
/build/server/routes/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __importDefault = (this && this.__importDefault) || function (mod) {
3 | return (mod && mod.__esModule) ? mod : { "default": mod };
4 | };
5 | Object.defineProperty(exports, "__esModule", { value: true });
6 | const admin_api_1 = __importDefault(require("./admin-api"));
7 | exports.default = {
8 | "admin-api": admin_api_1.default,
9 | };
10 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/build/server/routes/index.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/routes/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;AAEb,4DAAgC;AAEhC,kBAAe;IACX,WAAW,EAAE,mBAAK;CACrB,CAAC"}
--------------------------------------------------------------------------------
/build/server/services/index.d.ts:
--------------------------------------------------------------------------------
1 | declare const _default: {
2 | plugin: ({ strapi }: {
3 | strapi: import("@strapi/strapi").Strapi;
4 | }) => {
5 | getConfig(): Promise;
6 | };
7 | };
8 | export default _default;
9 |
--------------------------------------------------------------------------------
/build/server/services/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __importDefault = (this && this.__importDefault) || function (mod) {
3 | return (mod && mod.__esModule) ? mod : { "default": mod };
4 | };
5 | Object.defineProperty(exports, "__esModule", { value: true });
6 | const plugin_1 = __importDefault(require("./plugin"));
7 | exports.default = {
8 | plugin: plugin_1.default,
9 | };
10 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/build/server/services/index.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/services/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;AAEb,sDAA8B;AAE9B,kBAAe;IACX,MAAM,EAAN,gBAAM;CACT,CAAC"}
--------------------------------------------------------------------------------
/build/server/services/plugin.d.ts:
--------------------------------------------------------------------------------
1 | import { Strapi } from "@strapi/strapi";
2 | declare const _default: ({ strapi }: {
3 | strapi: Strapi;
4 | }) => {
5 | getConfig(): Promise;
6 | };
7 | export default _default;
8 |
--------------------------------------------------------------------------------
/build/server/services/plugin.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __importDefault = (this && this.__importDefault) || function (mod) {
3 | return (mod && mod.__esModule) ? mod : { "default": mod };
4 | };
5 | Object.defineProperty(exports, "__esModule", { value: true });
6 | const config_1 = __importDefault(require("../config"));
7 | const plugin_id_1 = __importDefault(require("../utils/plugin-id"));
8 | exports.default = ({ strapi }) => ({
9 | async getConfig() {
10 | const data = await strapi.config.get(`plugin.${plugin_id_1.default}`, config_1.default.default);
11 | return data;
12 | },
13 | });
14 | //# sourceMappingURL=plugin.js.map
--------------------------------------------------------------------------------
/build/server/services/plugin.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/server/services/plugin.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;AAIb,uDAA+B;AAC/B,mEAA0C;AAE1C,kBAAe,CAAC,EAAE,MAAM,EAAsB,EAAE,EAAE,CAAC,CAAC;IAChD,KAAK,CAAC,SAAS;QACX,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,mBAAQ,EAAE,EAAE,gBAAM,CAAC,OAAO,CAAC,CAAC;QAE3E,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ,CAAC,CAAC"}
--------------------------------------------------------------------------------
/build/server/utils/get-service.d.ts:
--------------------------------------------------------------------------------
1 | declare const getService: (name: string) => any;
2 | export default getService;
3 |
--------------------------------------------------------------------------------
/build/server/utils/get-service.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __importDefault = (this && this.__importDefault) || function (mod) {
3 | return (mod && mod.__esModule) ? mod : { "default": mod };
4 | };
5 | Object.defineProperty(exports, "__esModule", { value: true });
6 | const plugin_id_1 = __importDefault(require("./plugin-id"));
7 | const getService = (name) => strapi.plugin(plugin_id_1.default).service(name);
8 | exports.default = getService;
9 | //# sourceMappingURL=get-service.js.map
--------------------------------------------------------------------------------
/build/server/utils/get-service.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"get-service.js","sourceRoot":"","sources":["../../../src/server/utils/get-service.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;AAEb,4DAAmC;AAEnC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE3E,kBAAe,UAAU,CAAC"}
--------------------------------------------------------------------------------
/build/server/utils/index.d.ts:
--------------------------------------------------------------------------------
1 | declare const _default: {
2 | getService: (name: string) => any;
3 | pluginId: string;
4 | };
5 | export default _default;
6 |
--------------------------------------------------------------------------------
/build/server/utils/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __importDefault = (this && this.__importDefault) || function (mod) {
3 | return (mod && mod.__esModule) ? mod : { "default": mod };
4 | };
5 | Object.defineProperty(exports, "__esModule", { value: true });
6 | const get_service_1 = __importDefault(require("./get-service"));
7 | const plugin_id_1 = __importDefault(require("./plugin-id"));
8 | exports.default = {
9 | getService: get_service_1.default,
10 | pluginId: plugin_id_1.default,
11 | };
12 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/build/server/utils/index.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/utils/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;AAEb,gEAAuC;AACvC,4DAAmC;AAEnC,kBAAe;IACX,UAAU,EAAV,qBAAU;IACV,QAAQ,EAAR,mBAAQ;CACX,CAAC"}
--------------------------------------------------------------------------------
/build/server/utils/plugin-id.d.ts:
--------------------------------------------------------------------------------
1 | declare const _default: string;
2 | export default _default;
3 |
--------------------------------------------------------------------------------
/build/server/utils/plugin-id.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __importDefault = (this && this.__importDefault) || function (mod) {
3 | return (mod && mod.__esModule) ? mod : { "default": mod };
4 | };
5 | Object.defineProperty(exports, "__esModule", { value: true });
6 | const package_json_1 = __importDefault(require("../../../package.json"));
7 | exports.default = package_json_1.default.strapi.name;
8 | //# sourceMappingURL=plugin-id.js.map
--------------------------------------------------------------------------------
/build/server/utils/plugin-id.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"plugin-id.js","sourceRoot":"","sources":["../../../src/server/utils/plugin-id.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;AAEb,yEAA8C;AAE9C,kBAAe,sBAAS,CAAC,MAAM,CAAC,IAAI,CAAC"}
--------------------------------------------------------------------------------
/build/types/index.d.ts:
--------------------------------------------------------------------------------
1 | import { CustomFieldInputProps } from "strapi-typed";
2 | export interface MapPickerInputProps extends CustomFieldInputProps {
3 | value: string | undefined;
4 | description?: any;
5 | config: {
6 | apiKey: string;
7 | defaultCenter: {
8 | lat: number;
9 | lng: number;
10 | };
11 | favoritesPlaces?: Array<{
12 | title: string;
13 | coordinates: {
14 | lat: number;
15 | lng: number;
16 | };
17 | }>;
18 | };
19 | }
20 |
--------------------------------------------------------------------------------
/build/types/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | Object.defineProperty(exports, "__esModule", { value: true });
3 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/build/types/index.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":""}
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "strapi-plugin-google-map-picker",
3 | "version": "1.0.8",
4 | "description": "Strapi maintained Custom Fields",
5 | "strapi": {
6 | "name": "google-map-picker",
7 | "description": "Google map picker custom field",
8 | "kind": "plugin",
9 | "displayName": "MapPicker"
10 | },
11 | "peerDependencies": {
12 | "@strapi/strapi": "^4.4.0"
13 | },
14 | "scripts": {
15 | "develop": "tsc --build -w src",
16 | "build": "tsc --build src",
17 | "prepublishOnly": "npm run build"
18 | },
19 | "repository": {
20 | "type": "git",
21 | "url": "https://github.com/spalz/strapi-plugin-google-map-picker.git"
22 | },
23 | "license": "MIT",
24 | "author": {
25 | "name": "Yuriy Repin",
26 | "email": "spals@protonmail.com",
27 | "url": "https://dangercactus.io"
28 | },
29 | "maintainers": [
30 | {
31 | "name": "Yuriy Repin",
32 | "email": "spals@protonmail.com",
33 | "url": "https://dangercactus.io"
34 | }
35 | ],
36 | "engines": {
37 | "node": ">=14.19.1 <=18.x.x",
38 | "npm": ">=6.0.0"
39 | },
40 | "keywords": [
41 | "strapi",
42 | "plugin",
43 | "map",
44 | "picker",
45 | "place",
46 | "field",
47 | "google",
48 | "coordinates"
49 | ],
50 | "dependencies": {
51 | "@react-google-maps/api": "^2.13.1",
52 | "@strapi/design-system": "^1.5.0",
53 | "@strapi/helper-plugin": "^4.5.6",
54 | "@strapi/icons": "^1.5.0",
55 | "@strapi/strapi": "^4.5.6",
56 | "immer": "^9.0.18",
57 | "react-intl": "^6.2.5",
58 | "react-redux": "^8.0.5",
59 | "strapi-typed": "^1.0.15",
60 | "styled-components": "^5.3.6",
61 | "ts-node": "^10.9.1"
62 | },
63 | "devDependencies": {
64 | "@types/node": "^18.11.18",
65 | "@types/react": "^18.0.27",
66 | "@types/react-router-dom": "^5.3.3",
67 | "@types/styled-components": "^5.1.26",
68 | "@typescript-eslint/eslint-plugin": "^5.49.0",
69 | "@typescript-eslint/parser": "^5.49.0",
70 | "eslint": "^8.32.0",
71 | "eslint-config-prettier": "^8.6.0",
72 | "eslint-import-resolver-typescript": "^3.5.3",
73 | "eslint-plugin-import": "^2.27.5",
74 | "eslint-plugin-prettier": "^4.2.1",
75 | "eslint-plugin-react": "^7.32.1",
76 | "prettier": "^2.8.3",
77 | "typescript": "^4.9.4"
78 | }
79 | }
80 |
--------------------------------------------------------------------------------
/src/admin/components/MapPicker/MapPickerComponent/index.tsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 |
3 | import { Box } from "@strapi/design-system/Box";
4 | import { Link } from "@strapi/design-system/Link";
5 | import { Status } from "@strapi/design-system";
6 | import { Typography } from "@strapi/design-system/Typography";
7 | import { FieldLabel } from "@strapi/design-system/Field";
8 |
9 | import MapPickerInput from "../MapPickerInput";
10 | import usePluginConfig from "../../../hooks/use-plugin-config";
11 | import { MapPickerInputProps } from "../../../../types";
12 |
13 | const MapPickerComponent = (props: MapPickerInputProps) => {
14 | const { config, isLoading } = usePluginConfig();
15 |
16 | return config && config.apiKey && config.defaultCenter ? (
17 |
18 | ) : (!isLoading && !config.apiKey) || (!isLoading && !config.defaultCenter) ? (
19 | <>
20 | {props.name}
21 |
22 |
23 |
24 |
25 | Missing: {!config.apiKey && apiKey}
26 | {!config.apiKey && !config.defaultCenter ? " and " : null}
27 | {!config.defaultCenter && defaultCenter}
28 |
29 |
30 |
31 |
32 | Installation Instructions (GitHub)
33 |
34 |
35 |
36 | >
37 | ) : null;
38 | };
39 |
40 | export default MapPickerComponent;
41 |
--------------------------------------------------------------------------------
/src/admin/components/MapPicker/MapPickerIcon/index.tsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import styled from "styled-components";
3 | import { Icon } from "@strapi/design-system/Icon";
4 | import { Flex } from "@strapi/design-system/Flex";
5 | import { PinMap } from "@strapi/icons";
6 |
7 | const IconBox = styled(Flex)`
8 | background-color: #f0f0ff;
9 | border: 1px solid #d9d8ff;
10 | svg > path {
11 | fill: #4285f4;
12 | }
13 | `;
14 |
15 | const MapPickerIcon = () => {
16 | return (
17 |
18 |
19 |
20 | );
21 | };
22 |
23 | export default MapPickerIcon;
24 |
--------------------------------------------------------------------------------
/src/admin/components/MapPicker/MapPickerInput/index.tsx:
--------------------------------------------------------------------------------
1 | import React, { useState } from "react";
2 | import { useIntl } from "react-intl";
3 | import styled from "styled-components";
4 | import { Stack } from "@strapi/design-system/Stack";
5 | import { Button } from "@strapi/design-system/Button";
6 | import { Box } from "@strapi/design-system/Box";
7 | import { Status } from "@strapi/design-system/Status";
8 | import { Link } from "@strapi/design-system/Link";
9 | import { Typography } from "@strapi/design-system/Typography";
10 | import { Field, FieldError, FieldHint, FieldLabel } from "@strapi/design-system/Field";
11 | import { GoogleMap, Autocomplete, MarkerF, useLoadScript } from "@react-google-maps/api";
12 |
13 | import { getTrad } from "../../../utils";
14 | import { MapPickerInputProps } from "../../../../types";
15 |
16 | const LIBRARIES: Array<"places" | "geometry"> = ["places", "geometry"];
17 | const AUTOCOMPLETE_FIELDS = ["geometry"];
18 |
19 | const mapContainerStyle = {
20 | height: "400px",
21 | width: "100%",
22 | };
23 |
24 | const MapPickerInput: React.FC = ({
25 | attribute,
26 | description,
27 | error = null,
28 | intlLabel,
29 | labelAction = null,
30 | name,
31 | onChange,
32 | required = false,
33 | value,
34 | config: { apiKey, defaultCenter, favoritesPlaces },
35 | }) => {
36 | const { isLoaded, loadError } = useLoadScript({
37 | googleMapsApiKey: apiKey,
38 | libraries: LIBRARIES,
39 | });
40 |
41 | const { formatMessage } = useIntl();
42 |
43 | const [searchResult, setSearchResult] = useState();
44 | const [marker, setMarker] = useState(false);
45 | const [location, setLocation] = useState(defaultCenter);
46 | const [center, setCenter] = useState<{ lat: number; lng: number }>(defaultCenter);
47 | const [field, setField] = useState(false);
48 | const [fieldError, setFieldError] = useState(false);
49 |
50 | const onLoadAutocomplete = (autocomplete: google.maps.places.Autocomplete) => {
51 | setSearchResult(autocomplete);
52 | };
53 |
54 | const onPlaceChanged = () => {
55 | if (searchResult != null) {
56 | setMarker(true);
57 | const place = searchResult.getPlace();
58 | const geometry = place?.geometry?.location;
59 | if (geometry) {
60 | setCenter({
61 | lat: geometry.lat(),
62 | lng: geometry.lng(),
63 | });
64 | }
65 | }
66 | };
67 |
68 | const onMarkerDraggable = (drag: google.maps.MapMouseEvent) => {
69 | setMarker(true);
70 | if (drag && drag.latLng) {
71 | setLocation({
72 | lat: drag.latLng.lat(),
73 | lng: drag.latLng.lng(),
74 | });
75 | onChange?.({
76 | target: {
77 | name,
78 | value: JSON.stringify({
79 | lat: drag.latLng.lat(),
80 | lng: drag.latLng.lng(),
81 | }),
82 | type: attribute.type,
83 | },
84 | });
85 | }
86 | };
87 |
88 | const onChangeLocation = (coordinates: { lat: number; lng: number }) => {
89 | setCenter({
90 | lat: coordinates.lat,
91 | lng: coordinates.lng,
92 | });
93 | };
94 |
95 | const onChangeField = (value: { target: { value: string } }) => {
96 | if (!marker) {
97 | setMarker(true);
98 | }
99 | // eslint-disable-next-line no-useless-escape
100 | const regexCoordinates = /^((\-?|\+?)?\d+(\.\d+)?),\s((\-?|\+?)?\d+(\.\d+)?)$/gi;
101 | const val = value.target.value;
102 | const checkVal = regexCoordinates.test(val);
103 |
104 | if (checkVal) {
105 | setFieldError(false);
106 | const [lat, lng] = val.split(",");
107 | setLocation({ lat: Number(lat), lng: Number(lng) });
108 | setCenter({ lat: Number(lat), lng: Number(lng) });
109 | onChange?.({
110 | target: {
111 | name,
112 | value: JSON.stringify({ lat: Number(lat), lng: Number(lng) }),
113 | type: attribute.type,
114 | },
115 | });
116 | } else {
117 | setFieldError(true);
118 | }
119 | };
120 |
121 | const onLoad = React.useCallback(function onLoad() {
122 | if (value) {
123 | setMarker(true);
124 | setLocation(JSON.parse(value));
125 | setCenter(JSON.parse(value));
126 | }
127 | }, []);
128 |
129 | const valDisplay = (value?: string | null) => {
130 | if (value) {
131 | const val = JSON.parse(value);
132 | return `${val.lat.toFixed(6)}, ${val.lng.toFixed(6)}`;
133 | } else {
134 | return formatMessage({
135 | id: getTrad("google-map-picker.not-selected"),
136 | defaultMessage: "Not selected",
137 | });
138 | }
139 | };
140 |
141 | // eslint-disable-next-line @typescript-eslint/ban-ts-comment
142 | // @ts-ignore
143 | if (loadError?.target?.id === "script-loader") {
144 | return (
145 | <>
146 | {name}
147 |
148 |
149 |
150 |
151 | Possibly missing: middlewares
152 |
153 |
154 |
155 |
156 | Installation Instructions (GitHub)
157 |
158 |
159 |
160 | >
161 | );
162 | }
163 |
164 | if (!isLoaded) {
165 | return Loading...;
166 | }
167 |
168 | return (
169 |
170 |
171 |
172 |
173 | {formatMessage(intlLabel)}
174 | setField(true)} className={`${field ? "active" : ""}`}>
175 | {valDisplay(value)}
176 |
177 |
178 | {field && (
179 | onChangeField(val)}
183 | className={`${fieldError ? "error" : ""}`}
184 | />
185 | )}
186 |
187 |
188 | {isLoaded ? (
189 |
190 | {favoritesPlaces && (
191 |
192 | {favoritesPlaces.map((item, idx) => {
193 | return (
194 | onChangeLocation(item.coordinates)}
197 | >
198 |
201 |
202 | );
203 | })}
204 |
205 | )}
206 |
207 |
208 | onMarkerDraggable(MapMouseEvent)}
214 | onLoad={() => onLoad()}
215 | options={{
216 | zoomControl: true,
217 | maxZoom: 18,
218 | }}
219 | >
220 |
222 | onLoadAutocomplete(autocomplete)
223 | }
224 | onPlaceChanged={() => onPlaceChanged()}
225 | fields={AUTOCOMPLETE_FIELDS}
226 | >
227 |
234 |
235 | {marker ? (
236 | onMarkerDraggable(onDragEnd)}
240 | />
241 | ) : null}
242 |
243 |
244 |
245 | ) : (
246 | Loading...
247 | )}
248 |
249 |
250 |
251 |
252 |
253 | );
254 | };
255 |
256 | const SLoading = styled.div`
257 | display: flex;
258 | background-color: ${({ theme }) => theme.colors.neutral300};
259 | align-items: center;
260 | justify-content: center;
261 | `;
262 |
263 | const SGoogleMap = styled.div`
264 | border-radius: ${({ theme }) => theme.borderRadius};
265 | overflow: hidden;
266 | `;
267 |
268 | const SFieldLabel = styled.div`
269 | display: flex;
270 | align-items: center;
271 | justify-content: space-between;
272 | gap: 20px;
273 | `;
274 |
275 | const SCoordinates = styled.span`
276 | display: inline-flex;
277 | align-items: center;
278 | font-weight: 600;
279 | font-size: 0.75rem;
280 | margin-left: 0.2em;
281 | cursor: pointer;
282 | color: ${({ theme }) => theme.colors.neutral800};
283 | height: 26px;
284 | &.active {
285 | cursor: default;
286 | }
287 | `;
288 |
289 | const SFieldInput = styled.input`
290 | border: 1px solid ${({ theme }) => theme.colors.neutral200};
291 | border-radius: ${({ theme }) => theme.borderRadius};
292 | background: ${({ theme }) => theme.colors.neutral0};
293 |
294 | padding: 0.2em 0.4em 0.3em;
295 | color: ${({ theme }) => theme.colors.neutral800};
296 | font-weight: 400;
297 | flex: 1;
298 | font-size: ${12 / 14}rem;
299 | display: block;
300 | width: 100%;
301 | ::placeholder {
302 | color: ${({ theme }) => theme.colors.neutral500};
303 | opacity: 1;
304 | }
305 | &:focus {
306 | outline: none;
307 | box-shadow: none;
308 | }
309 | &.error {
310 | border-color: ${({ theme }) => theme.colors.danger600};
311 | }
312 | `;
313 |
314 | const SFavoritesPlaces = styled.div`
315 | display: flex;
316 | gap: 10px;
317 | margin-bottom: 10px;
318 | color: ${({ theme }) => theme.colors.primary600};
319 | &:hover {
320 | color: ${({ theme }) => theme.colors.primary500};
321 | }
322 | &.active {
323 | color: ${({ theme }) => theme.colors.primary700};
324 | }
325 | `;
326 |
327 | const SFavoritesPlacesItem = styled.div``;
328 |
329 | const SSearchField = styled.input`
330 | box-sizing: border-box;
331 | border: 1px solid transparent;
332 | width: 240px;
333 | height: 40px;
334 | padding: 0 12px;
335 | border-radius: 3px;
336 | box-shadow: rgb(0 0 0 / 30%) 0px 1px 4px -1px;
337 | font-size: 14px;
338 | outline: none;
339 | text-overflow: ellipses;
340 | position: absolute;
341 | left: 200px;
342 | margin-top: 10px;
343 | `;
344 |
345 | export default MapPickerInput;
346 |
--------------------------------------------------------------------------------
/src/admin/constants.ts:
--------------------------------------------------------------------------------
1 | import { pluginId } from "./utils";
2 |
3 | export const RESOLVE_CONFIG = `${pluginId}/resolve-config`;
4 |
--------------------------------------------------------------------------------
/src/admin/hooks/use-plugin-config.ts:
--------------------------------------------------------------------------------
1 | import { useEffect } from "react";
2 | import { useSelector, useDispatch } from "react-redux";
3 | import { request, useNotification } from "@strapi/helper-plugin";
4 |
5 | import { RESOLVE_CONFIG } from "../constants";
6 | import { pluginId } from "../utils";
7 |
8 | const usePluginConfig = () => {
9 | const dispatch = useDispatch();
10 | const toggleNotification = useNotification();
11 | const { config, isLoading } = useSelector((state: any) => state[`${pluginId}_config`]);
12 |
13 | useEffect(() => {
14 | if (!isLoading && !!config) {
15 | return;
16 | }
17 |
18 | const abortController = new AbortController();
19 |
20 | const fetchData = async () => {
21 | try {
22 | const endpoint = `/${pluginId}/config`;
23 | const data = await request(endpoint, {
24 | method: "GET",
25 | signal: abortController.signal,
26 | });
27 |
28 | return data ?? {};
29 | } catch (err) {
30 | if (!abortController.signal.aborted) {
31 | toggleNotification({
32 | type: "warning",
33 | message: { id: "notification.error" },
34 | });
35 |
36 | return err;
37 | }
38 | }
39 | };
40 |
41 | fetchData().then((data) => dispatch({ type: RESOLVE_CONFIG, data }));
42 |
43 | return () => abortController.abort();
44 | }, [dispatch, toggleNotification]);
45 |
46 | return { config, isLoading };
47 | };
48 |
49 | export default usePluginConfig;
50 |
--------------------------------------------------------------------------------
/src/admin/index.tsx:
--------------------------------------------------------------------------------
1 | import { prefixPluginTranslations } from "@strapi/helper-plugin";
2 | // import { get } from "lodash";
3 | import { StrapiAdminInstance } from "strapi-typed";
4 |
5 | import MapPickerIcon from "./components/MapPicker/MapPickerIcon";
6 | import { getTrad, pluginId } from "./utils";
7 | import reducers from "./reducers";
8 | import { TranslationKey } from "./translations";
9 |
10 | export default {
11 | register(app: StrapiAdminInstance) {
12 | app.customFields.register({
13 | name: "place",
14 | pluginId: pluginId,
15 | type: "string",
16 | icon: MapPickerIcon,
17 | intlLabel: {
18 | id: getTrad("google-map-picker.label"),
19 | defaultMessage: "Place",
20 | },
21 | intlDescription: {
22 | id: getTrad("google-map-picker.description"),
23 | defaultMessage: "Select place",
24 | },
25 | components: {
26 | Input: async () => import("./components/MapPicker/MapPickerComponent"),
27 | },
28 | options: {
29 | base: [],
30 | advanced: [
31 | {
32 | intlLabel: {
33 | id: getTrad("google-map-picker.options.advanced.regex"),
34 | defaultMessage: "RegExp pattern",
35 | },
36 | name: "regex",
37 | type: "text",
38 | description: {
39 | id: getTrad("google-map-picker.options.advanced.regex.description"),
40 | defaultMessage: "The text of the regular expression",
41 | },
42 | },
43 | {
44 | sectionTitle: {
45 | id: "global.settings",
46 | defaultMessage: "Settings",
47 | },
48 | items: [
49 | {
50 | name: "required",
51 | type: "checkbox",
52 | intlLabel: {
53 | id: getTrad("google-map-picker.options.advanced.requiredField"),
54 | defaultMessage: "Required field",
55 | },
56 | description: {
57 | id: getTrad("google-map-picker.options.advanced.requiredField.description"),
58 | defaultMessage: "You won't be able to create an entry if this field is empty",
59 | },
60 | },
61 | ],
62 | },
63 | ],
64 | validator: () => ({}),
65 | },
66 | });
67 | app.addReducers(reducers);
68 | },
69 | async registerTrads({ locales }: { locales: Array }) {
70 | const importedTrads = await Promise.all(
71 | locales.map((locale: string) => {
72 | return import(`./translations/${locale}.json`)
73 | .then(({ default: data }) => {
74 | return {
75 | data: prefixPluginTranslations(data, pluginId),
76 | locale,
77 | };
78 | })
79 | .catch(() => {
80 | return {
81 | data: {},
82 | locale,
83 | };
84 | });
85 | })
86 | );
87 |
88 | return Promise.resolve(importedTrads);
89 | },
90 | };
91 |
--------------------------------------------------------------------------------
/src/admin/reducers/config.ts:
--------------------------------------------------------------------------------
1 | import produce from "immer";
2 |
3 | import { RESOLVE_CONFIG } from "../constants";
4 |
5 | const initialState = {
6 | isLoading: true,
7 | config: {
8 | apiKey: null,
9 | defaultCenter: null,
10 | favoritesPlaces: null,
11 | },
12 | };
13 |
14 | const configReducer = produce((state = initialState, action) => {
15 | switch (action.type) {
16 | case RESOLVE_CONFIG: {
17 | state.isLoading = false;
18 | state.config = action.data;
19 | break;
20 | }
21 |
22 | default:
23 | return state;
24 | }
25 |
26 | return state;
27 | });
28 |
29 | export default configReducer;
30 |
--------------------------------------------------------------------------------
/src/admin/reducers/index.ts:
--------------------------------------------------------------------------------
1 | import { pluginId } from "../utils";
2 | import config from "./config";
3 |
4 | const reducers = {
5 | [`${pluginId}_config`]: config,
6 | };
7 |
8 | export default reducers;
9 |
--------------------------------------------------------------------------------
/src/admin/translations/en.json:
--------------------------------------------------------------------------------
1 | {
2 | "google-map-picker.label": "Place",
3 | "google-map-picker.description": "Select any place on google map",
4 | "google-map-picker.search": "Search",
5 | "google-map-picker.not-selected": "Not selected",
6 | "google-map-picker.settings": "Settings",
7 | "google-map-picker.options.advanced.regex": "RegExp pattern",
8 | "google-map-picker.options.advanced.regex.description": "Provide a regular expression to validate the coordinates",
9 | "google-map-picker.options.advanced.requiredField": "Required field",
10 | "google-map-picker.options.advanced.requiredField.description": "You won't be able to create an entry if this field is empty",
11 | "google-map-picker.toggle.aria-label": "Place picker toggle",
12 | "google-map-picker.input.aria-label": "Place picker input"
13 | }
14 |
--------------------------------------------------------------------------------
/src/admin/translations/index.ts:
--------------------------------------------------------------------------------
1 | export type TranslationKey = "ru" | "en";
2 |
--------------------------------------------------------------------------------
/src/admin/translations/ru.json:
--------------------------------------------------------------------------------
1 | {
2 | "google-map-picker.label": "Точка на карте",
3 | "google-map-picker.description": "Выбор точки на карте",
4 | "google-map-picker.search": "Поиск",
5 | "google-map-picker.not-selected": "Не выбрано",
6 | "google-map-picker.settings": "Настройки",
7 | "google-map-picker.options.advanced.regex": "Шаблон регулярного выражения",
8 | "google-map-picker.options.advanced.regex.description": "Добавьте регулярное выражение для проверки координат",
9 | "google-map-picker.options.advanced.requiredField": "Обязательное поле",
10 | "google-map-picker.options.advanced.requiredField.description": "Вы не сможете создать запись, если это поле пусто",
11 | "google-map-picker.toggle.aria-label": "Переключатель выбора места",
12 | "google-map-picker.input.aria-label": "Поле выбора места"
13 | }
14 |
--------------------------------------------------------------------------------
/src/admin/utils/get-trad.ts:
--------------------------------------------------------------------------------
1 | import { pluginId } from "./";
2 |
3 | const getTrad = (id: string) => `${pluginId}.${id}`;
4 |
5 | export default getTrad;
6 |
--------------------------------------------------------------------------------
/src/admin/utils/index.ts:
--------------------------------------------------------------------------------
1 | export { default as getTrad } from "./get-trad";
2 | export { default as pluginId } from "./plugin-id";
3 | export { default as pluginName } from "./plugin-name";
4 |
--------------------------------------------------------------------------------
/src/admin/utils/plugin-id.ts:
--------------------------------------------------------------------------------
1 | import pluginPkg from "../../../package.json";
2 |
3 | export default pluginPkg.strapi.name;
4 |
--------------------------------------------------------------------------------
/src/admin/utils/plugin-name.ts:
--------------------------------------------------------------------------------
1 | import pluginPkg from "../../../package.json";
2 |
3 | export default pluginPkg.strapi.displayName;
4 |
--------------------------------------------------------------------------------
/src/server/config.ts:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | export default {
4 | default: {
5 | apiKey: null,
6 | defaultCenter: null,
7 | favoritesPlaces: null,
8 | },
9 | };
10 |
--------------------------------------------------------------------------------
/src/server/controllers/google-map-picker.ts:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | import getService from "../utils/get-service";
4 |
5 | export default {
6 | async config(ctx: any) {
7 | const config = await getService("plugin").getConfig();
8 |
9 | ctx.send(config);
10 | },
11 | };
12 |
--------------------------------------------------------------------------------
/src/server/controllers/index.ts:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | import googleMapPicker from "./google-map-picker";
4 |
5 | export default {
6 | "google-map-picker": googleMapPicker,
7 | };
8 |
--------------------------------------------------------------------------------
/src/server/helpers/pluginConfig.ts:
--------------------------------------------------------------------------------
1 | import pluginId from "../utils/plugin-id";
2 |
3 | const getPluginConfig = (strapi: any) => {
4 | return strapi.plugin(pluginId).config;
5 | };
6 |
7 | export default getPluginConfig;
8 |
--------------------------------------------------------------------------------
/src/server/index.ts:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | import register from "./register";
4 | import config from "./config";
5 | import routes from "./routes";
6 | import controllers from "./controllers";
7 | import services from "./services";
8 |
9 | export default {
10 | register,
11 | config,
12 | routes,
13 | controllers,
14 | services,
15 | };
16 |
--------------------------------------------------------------------------------
/src/server/register.ts:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | import { Strapi } from "@strapi/strapi";
4 |
5 | import pluginId from "./utils/plugin-id";
6 |
7 | export default ({ strapi }: { strapi: Strapi }) => {
8 | strapi.customFields.register({
9 | name: "place",
10 | plugin: pluginId,
11 | type: "string",
12 | // apiKey: strapi.plugin(pluginId).config("apiKey"),
13 | // defaultCenter: strapi.plugin(pluginId).config("defaultCenter"),
14 | // favoritesPlaces: strapi.plugin(pluginId).config("favoritesPlaces"),
15 | });
16 | };
17 |
--------------------------------------------------------------------------------
/src/server/routes/admin-api.ts:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | export default {
4 | type: "admin",
5 | routes: [
6 | {
7 | method: "GET",
8 | path: "/config",
9 | handler: "google-map-picker.config",
10 | config: {
11 | policies: ["admin::isAuthenticatedAdmin"],
12 | },
13 | },
14 | ],
15 | };
16 |
--------------------------------------------------------------------------------
/src/server/routes/index.ts:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | import admin from "./admin-api";
4 |
5 | export default {
6 | "admin-api": admin,
7 | };
8 |
--------------------------------------------------------------------------------
/src/server/services/index.ts:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | import plugin from "./plugin";
4 |
5 | export default {
6 | plugin,
7 | };
8 |
--------------------------------------------------------------------------------
/src/server/services/plugin.ts:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | import { Strapi } from "@strapi/strapi";
4 |
5 | import config from "../config";
6 | import pluginId from "../utils/plugin-id";
7 |
8 | export default ({ strapi }: { strapi: Strapi }) => ({
9 | async getConfig() {
10 | const data = await strapi.config.get(`plugin.${pluginId}`, config.default);
11 |
12 | return data;
13 | },
14 | });
15 |
--------------------------------------------------------------------------------
/src/server/utils/get-service.ts:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | import pluginId from "./plugin-id";
4 |
5 | const getService = (name: string) => strapi.plugin(pluginId).service(name);
6 |
7 | export default getService;
8 |
--------------------------------------------------------------------------------
/src/server/utils/index.ts:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | import getService from "./get-service";
4 | import pluginId from "./plugin-id";
5 |
6 | export default {
7 | getService,
8 | pluginId,
9 | };
10 |
--------------------------------------------------------------------------------
/src/server/utils/plugin-id.ts:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | import pluginPkg from "../../../package.json";
4 |
5 | export default pluginPkg.strapi.name;
6 |
--------------------------------------------------------------------------------
/src/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "esnext",
4 | "module": "commonjs",
5 | "lib": ["dom", "dom.iterable", "esnext"],
6 | "jsx": "react",
7 | "declaration": true,
8 | "declarationMap": false,
9 | "sourceMap": true,
10 | "isolatedModules": true,
11 | "strict": true,
12 | "moduleResolution": "node",
13 | "noUnusedLocals": true,
14 | "noUnusedParameters": true,
15 | "allowSyntheticDefaultImports": true,
16 | "esModuleInterop": true,
17 | "removeComments": true,
18 | "skipLibCheck": true,
19 | "forceConsistentCasingInFileNames": true,
20 | "rootDir": ".",
21 | "outDir": "../build/",
22 | "resolveJsonModule": true,
23 | "downlevelIteration": true,
24 | "incremental": true,
25 | "allowJs": true
26 | },
27 | "references": [
28 | {
29 | "path": "../"
30 | }
31 | ]
32 | }
33 |
--------------------------------------------------------------------------------
/src/types/globals.d.ts:
--------------------------------------------------------------------------------
1 | declare var strapi: any;
2 |
3 | declare module "*.svg" {
4 | const content: any;
5 | export default content;
6 | }
7 |
--------------------------------------------------------------------------------
/src/types/index.ts:
--------------------------------------------------------------------------------
1 | import { CustomFieldInputProps } from "strapi-typed";
2 |
3 | export interface MapPickerInputProps extends CustomFieldInputProps {
4 | value: string | undefined;
5 | description?: any;
6 | config: {
7 | apiKey: string;
8 | defaultCenter: {
9 | lat: number;
10 | lng: number;
11 | };
12 | favoritesPlaces?: Array<{ title: string; coordinates: { lat: number; lng: number } }>;
13 | };
14 | }
15 |
--------------------------------------------------------------------------------
/src/types/strapi-design-system.d.ts:
--------------------------------------------------------------------------------
1 | declare module "@strapi/design-system";
2 | //
3 | declare module "@strapi/design-system/Box";
4 | declare module "@strapi/design-system/Button";
5 | declare module "@strapi/design-system/FieldHint";
6 | declare module "@strapi/design-system/FieldError";
7 | declare module "@strapi/design-system/FieldLabel";
8 | declare module "@strapi/design-system/Card";
9 | declare module "@strapi/design-system/Dialog";
10 | declare module "@strapi/design-system/Divider";
11 | declare module "@strapi/design-system/Flex";
12 | declare module "@strapi/design-system/FocusTrap";
13 | declare module "@strapi/design-system/Grid";
14 | declare module "@strapi/design-system/Icon";
15 | declare module "@strapi/design-system/IconButton";
16 | declare module "@strapi/design-system/Layout";
17 | declare module "@strapi/design-system/Loader";
18 | declare module "@strapi/design-system/Link";
19 | declare module "@strapi/design-system/Main";
20 | declare module "@strapi/design-system/ModalLayout";
21 | declare module "@strapi/design-system/Pagination";
22 | declare module "@strapi/design-system/Portal";
23 | declare module "@strapi/design-system/ProgressBar";
24 | declare module "@strapi/design-system/Searchbar";
25 | declare module "@strapi/design-system/Select";
26 | declare module "@strapi/design-system/Stack";
27 | declare module "@strapi/design-system/Status";
28 | declare module "@strapi/design-system/Tabs";
29 | declare module "@strapi/design-system/Textarea";
30 | declare module "@strapi/design-system/TextInput";
31 | declare module "@strapi/design-system/ToggleInput";
32 | declare module "@strapi/design-system/Tooltip";
33 | declare module "@strapi/design-system/Typography";
34 | declare module "@strapi/design-system/EmptyStateLayout";
35 | declare module "@strapi/design-system/Tag";
36 | declare module "@strapi/design-system/Badge";
37 | declare module "@strapi/design-system/Table";
38 | declare module "@strapi/design-system/VisuallyHidden";
39 | declare module "@strapi/design-system/Field";
40 |
--------------------------------------------------------------------------------
/src/types/strapi-helper-plugin.d.ts:
--------------------------------------------------------------------------------
1 | declare module "@strapi/helper-plugin";
2 |
--------------------------------------------------------------------------------
/src/types/strapi-icons.d.ts:
--------------------------------------------------------------------------------
1 | declare module "@strapi/icons";
2 | //
3 | declare module "@strapi/icons/ArrowRight";
4 | declare module "@strapi/icons/Check";
5 | declare module "@strapi/icons/CheckCircle";
6 | declare module "@strapi/icons/Cross";
7 | declare module "@strapi/icons/Duplicate";
8 | declare module "@strapi/icons/ExclamationMarkCircle";
9 | declare module "@strapi/icons/Information";
10 | declare module "@strapi/icons/Plus";
11 | declare module "@strapi/icons/Trash";
12 | declare module "@strapi/icons/Pencil";
13 | declare module "@strapi/icons/CloudUpload";
14 | declare module "@strapi/icons/Link";
15 |
--------------------------------------------------------------------------------
/src/types/strapi-parts.d.ts:
--------------------------------------------------------------------------------
1 | declare module "@strapi/parts/Icon";
2 |
--------------------------------------------------------------------------------
/src/types/strapi-utils.d.ts:
--------------------------------------------------------------------------------
1 | declare module "@strapi/utils";
2 |
--------------------------------------------------------------------------------
/strapi-admin.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | module.exports = require('./build/admin').default;
4 |
--------------------------------------------------------------------------------
/strapi-server.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | module.exports = require('./build/server');
4 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "rootDir": ".",
4 | "outDir": ".", // if out path for a file is same as its src path, nothing will be emitted
5 | "resolveJsonModule": true,
6 | "composite": true // required on the dependency project for references to work
7 | },
8 | "files": [
9 | // by whitelisting the files to include, TS won't automatically
10 | "package.json"
11 | ]
12 | }
13 |
--------------------------------------------------------------------------------
/tsconfig.tsbuildinfo:
--------------------------------------------------------------------------------
1 | {"program":{"fileNames":["./node_modules/typescript/lib/lib.d.ts","./node_modules/typescript/lib/lib.es5.d.ts","./node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/typescript/lib/lib.dom.d.ts","./node_modules/typescript/lib/lib.webworker.importscripts.d.ts","./node_modules/typescript/lib/lib.scripthost.d.ts","./node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/typescript/lib/lib.es2019.intl.d.ts","./node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/typescript/lib/lib.es2020.date.d.ts","./node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/typescript/lib/lib.es2020.number.d.ts","./node_modules/typescript/lib/lib.esnext.intl.d.ts","./package.json","./node_modules/@types/node/assert.d.ts","./node_modules/@types/node/assert/strict.d.ts","./node_modules/@types/node/globals.d.ts","./node_modules/@types/node/async_hooks.d.ts","./node_modules/@types/node/buffer.d.ts","./node_modules/@types/node/child_process.d.ts","./node_modules/@types/node/cluster.d.ts","./node_modules/@types/node/console.d.ts","./node_modules/@types/node/constants.d.ts","./node_modules/@types/node/crypto.d.ts","./node_modules/@types/node/dgram.d.ts","./node_modules/@types/node/diagnostics_channel.d.ts","./node_modules/@types/node/dns.d.ts","./node_modules/@types/node/dns/promises.d.ts","./node_modules/@types/node/domain.d.ts","./node_modules/@types/node/dom-events.d.ts","./node_modules/@types/node/events.d.ts","./node_modules/@types/node/fs.d.ts","./node_modules/@types/node/fs/promises.d.ts","./node_modules/@types/node/http.d.ts","./node_modules/@types/node/http2.d.ts","./node_modules/@types/node/https.d.ts","./node_modules/@types/node/inspector.d.ts","./node_modules/@types/node/module.d.ts","./node_modules/@types/node/net.d.ts","./node_modules/@types/node/os.d.ts","./node_modules/@types/node/path.d.ts","./node_modules/@types/node/perf_hooks.d.ts","./node_modules/@types/node/process.d.ts","./node_modules/@types/node/punycode.d.ts","./node_modules/@types/node/querystring.d.ts","./node_modules/@types/node/readline.d.ts","./node_modules/@types/node/readline/promises.d.ts","./node_modules/@types/node/repl.d.ts","./node_modules/@types/node/stream.d.ts","./node_modules/@types/node/stream/promises.d.ts","./node_modules/@types/node/stream/consumers.d.ts","./node_modules/@types/node/stream/web.d.ts","./node_modules/@types/node/string_decoder.d.ts","./node_modules/@types/node/test.d.ts","./node_modules/@types/node/timers.d.ts","./node_modules/@types/node/timers/promises.d.ts","./node_modules/@types/node/tls.d.ts","./node_modules/@types/node/trace_events.d.ts","./node_modules/@types/node/tty.d.ts","./node_modules/@types/node/url.d.ts","./node_modules/@types/node/util.d.ts","./node_modules/@types/node/v8.d.ts","./node_modules/@types/node/vm.d.ts","./node_modules/@types/node/wasi.d.ts","./node_modules/@types/node/worker_threads.d.ts","./node_modules/@types/node/zlib.d.ts","./node_modules/@types/node/globals.global.d.ts","./node_modules/@types/node/index.d.ts","./node_modules/@types/accepts/index.d.ts","./node_modules/@types/argparse/index.d.ts","./node_modules/@types/connect/index.d.ts","./node_modules/@types/body-parser/index.d.ts","./node_modules/@types/bonjour/index.d.ts","./node_modules/keyv/src/index.d.ts","./node_modules/@types/http-cache-semantics/index.d.ts","./node_modules/@types/responselike/index.d.ts","./node_modules/@types/cacheable-request/index.d.ts","./node_modules/@types/range-parser/index.d.ts","./node_modules/@types/qs/index.d.ts","./node_modules/@types/express-serve-static-core/index.d.ts","./node_modules/@types/connect-history-api-fallback/index.d.ts","./node_modules/@types/content-disposition/index.d.ts","./node_modules/@types/cookie/index.d.ts","./node_modules/@types/keygrip/index.d.ts","./node_modules/@types/mime/mime.d.ts","./node_modules/@types/mime/index.d.ts","./node_modules/@types/serve-static/index.d.ts","./node_modules/@types/express/index.d.ts","./node_modules/@types/cookies/index.d.ts","./node_modules/@types/ms/index.d.ts","./node_modules/@types/debug/index.d.ts","./node_modules/@types/eslint/helpers.d.ts","./node_modules/@types/estree/index.d.ts","./node_modules/@types/json-schema/index.d.ts","./node_modules/@types/eslint/index.d.ts","./node_modules/@types/eslint-scope/index.d.ts","./node_modules/@types/fined/index.d.ts","./node_modules/@types/formidable/formidable.d.ts","./node_modules/@types/formidable/parsers/index.d.ts","./node_modules/@types/formidable/persistentfile.d.ts","./node_modules/@types/formidable/volatilefile.d.ts","./node_modules/@types/formidable/formidableerror.d.ts","./node_modules/@types/formidable/index.d.ts","./node_modules/@types/minimatch/index.d.ts","./node_modules/@types/glob/index.d.ts","./node_modules/@types/google.maps/index.d.ts","./node_modules/@types/history/domutils.d.ts","./node_modules/@types/history/createbrowserhistory.d.ts","./node_modules/@types/history/createhashhistory.d.ts","./node_modules/@types/history/creatememoryhistory.d.ts","./node_modules/@types/history/locationutils.d.ts","./node_modules/@types/history/pathutils.d.ts","./node_modules/@types/history/index.d.ts","./node_modules/@types/react/global.d.ts","./node_modules/csstype/index.d.ts","./node_modules/@types/prop-types/index.d.ts","./node_modules/@types/scheduler/tracing.d.ts","./node_modules/@types/react/index.d.ts","./node_modules/@types/hoist-non-react-statics/index.d.ts","./node_modules/@types/html-minifier-terser/index.d.ts","./node_modules/@types/http-assert/index.d.ts","./node_modules/@types/http-errors/index.d.ts","./node_modules/@types/http-proxy/index.d.ts","./node_modules/rxjs/internal/subscription.d.ts","./node_modules/rxjs/internal/types.d.ts","./node_modules/rxjs/internal/subscriber.d.ts","./node_modules/rxjs/internal/operator.d.ts","./node_modules/rxjs/internal/observable/iif.d.ts","./node_modules/rxjs/internal/observable/throwerror.d.ts","./node_modules/rxjs/internal/observable.d.ts","./node_modules/rxjs/internal/subject.d.ts","./node_modules/rxjs/internal/observable/connectableobservable.d.ts","./node_modules/rxjs/internal/operators/groupby.d.ts","./node_modules/rxjs/internal/symbol/observable.d.ts","./node_modules/rxjs/internal/behaviorsubject.d.ts","./node_modules/rxjs/internal/replaysubject.d.ts","./node_modules/rxjs/internal/asyncsubject.d.ts","./node_modules/rxjs/internal/scheduler.d.ts","./node_modules/rxjs/internal/scheduler/action.d.ts","./node_modules/rxjs/internal/scheduler/asyncscheduler.d.ts","./node_modules/rxjs/internal/scheduler/asyncaction.d.ts","./node_modules/rxjs/internal/scheduler/asapscheduler.d.ts","./node_modules/rxjs/internal/scheduler/asap.d.ts","./node_modules/rxjs/internal/scheduler/async.d.ts","./node_modules/rxjs/internal/scheduler/queuescheduler.d.ts","./node_modules/rxjs/internal/scheduler/queue.d.ts","./node_modules/rxjs/internal/scheduler/animationframescheduler.d.ts","./node_modules/rxjs/internal/scheduler/animationframe.d.ts","./node_modules/rxjs/internal/scheduler/virtualtimescheduler.d.ts","./node_modules/rxjs/internal/notification.d.ts","./node_modules/rxjs/internal/util/pipe.d.ts","./node_modules/rxjs/internal/util/noop.d.ts","./node_modules/rxjs/internal/util/identity.d.ts","./node_modules/rxjs/internal/util/isobservable.d.ts","./node_modules/rxjs/internal/util/argumentoutofrangeerror.d.ts","./node_modules/rxjs/internal/util/emptyerror.d.ts","./node_modules/rxjs/internal/util/objectunsubscribederror.d.ts","./node_modules/rxjs/internal/util/unsubscriptionerror.d.ts","./node_modules/rxjs/internal/util/timeouterror.d.ts","./node_modules/rxjs/internal/observable/bindcallback.d.ts","./node_modules/rxjs/internal/observable/bindnodecallback.d.ts","./node_modules/rxjs/internal/innersubscriber.d.ts","./node_modules/rxjs/internal/outersubscriber.d.ts","./node_modules/rxjs/internal/observable/combinelatest.d.ts","./node_modules/rxjs/internal/observable/concat.d.ts","./node_modules/rxjs/internal/observable/defer.d.ts","./node_modules/rxjs/internal/observable/empty.d.ts","./node_modules/rxjs/internal/observable/forkjoin.d.ts","./node_modules/rxjs/internal/observable/from.d.ts","./node_modules/rxjs/internal/observable/fromevent.d.ts","./node_modules/rxjs/internal/observable/fromeventpattern.d.ts","./node_modules/rxjs/internal/observable/generate.d.ts","./node_modules/rxjs/internal/observable/interval.d.ts","./node_modules/rxjs/internal/observable/merge.d.ts","./node_modules/rxjs/internal/observable/never.d.ts","./node_modules/rxjs/internal/observable/of.d.ts","./node_modules/rxjs/internal/observable/onerrorresumenext.d.ts","./node_modules/rxjs/internal/observable/pairs.d.ts","./node_modules/rxjs/internal/observable/partition.d.ts","./node_modules/rxjs/internal/observable/race.d.ts","./node_modules/rxjs/internal/observable/range.d.ts","./node_modules/rxjs/internal/observable/timer.d.ts","./node_modules/rxjs/internal/observable/using.d.ts","./node_modules/rxjs/internal/observable/zip.d.ts","./node_modules/rxjs/internal/scheduled/scheduled.d.ts","./node_modules/rxjs/internal/config.d.ts","./node_modules/rxjs/index.d.ts","./node_modules/@types/through/index.d.ts","./node_modules/@types/inquirer/lib/objects/choice.d.ts","./node_modules/@types/inquirer/lib/objects/separator.d.ts","./node_modules/@types/inquirer/lib/objects/choices.d.ts","./node_modules/@types/inquirer/lib/utils/screen-manager.d.ts","./node_modules/@types/inquirer/lib/prompts/base.d.ts","./node_modules/@types/inquirer/lib/utils/paginator.d.ts","./node_modules/@types/inquirer/lib/prompts/checkbox.d.ts","./node_modules/@types/inquirer/lib/prompts/confirm.d.ts","./node_modules/@types/inquirer/lib/prompts/editor.d.ts","./node_modules/@types/inquirer/lib/prompts/expand.d.ts","./node_modules/@types/inquirer/lib/prompts/input.d.ts","./node_modules/@types/inquirer/lib/prompts/list.d.ts","./node_modules/@types/inquirer/lib/prompts/number.d.ts","./node_modules/@types/inquirer/lib/prompts/password.d.ts","./node_modules/@types/inquirer/lib/prompts/rawlist.d.ts","./node_modules/@types/inquirer/lib/ui/baseui.d.ts","./node_modules/@types/inquirer/lib/ui/bottom-bar.d.ts","./node_modules/@types/inquirer/lib/ui/prompt.d.ts","./node_modules/@types/inquirer/lib/utils/events.d.ts","./node_modules/@types/inquirer/lib/utils/readline.d.ts","./node_modules/@types/inquirer/lib/utils/utils.d.ts","./node_modules/@types/inquirer/index.d.ts","./node_modules/@types/interpret/index.d.ts","./node_modules/@types/js-levenshtein/index.d.ts","./node_modules/@types/json5/index.d.ts","./node_modules/@types/keyv/index.d.ts","./node_modules/@types/koa-compose/index.d.ts","./node_modules/@types/koa/index.d.ts","./node_modules/@types/koa-bodyparser/index.d.ts","./node_modules/@types/koa__cors/index.d.ts","./node_modules/@types/liftoff/index.d.ts","./node_modules/@types/lodash/common/common.d.ts","./node_modules/@types/lodash/common/array.d.ts","./node_modules/@types/lodash/common/collection.d.ts","./node_modules/@types/lodash/common/date.d.ts","./node_modules/@types/lodash/common/function.d.ts","./node_modules/@types/lodash/common/lang.d.ts","./node_modules/@types/lodash/common/math.d.ts","./node_modules/@types/lodash/common/number.d.ts","./node_modules/@types/lodash/common/object.d.ts","./node_modules/@types/lodash/common/seq.d.ts","./node_modules/@types/lodash/common/string.d.ts","./node_modules/@types/lodash/common/util.d.ts","./node_modules/@types/lodash/index.d.ts","./node_modules/@types/long/index.d.ts","./node_modules/@types/parse-json/index.d.ts","./node_modules/redux/index.d.ts","./node_modules/@types/react-redux/index.d.ts","./node_modules/@types/react-router/index.d.ts","./node_modules/@types/react-router-dom/index.d.ts","./node_modules/@types/react-transition-group/transition.d.ts","./node_modules/@types/react-transition-group/csstransition.d.ts","./node_modules/@types/react-transition-group/transitiongroup.d.ts","./node_modules/@types/react-transition-group/switchtransition.d.ts","./node_modules/@types/react-transition-group/config.d.ts","./node_modules/@types/react-transition-group/index.d.ts","./node_modules/@types/retry/index.d.ts","./node_modules/@types/scheduler/index.d.ts","./node_modules/@types/semver/classes/semver.d.ts","./node_modules/@types/semver/functions/parse.d.ts","./node_modules/@types/semver/functions/valid.d.ts","./node_modules/@types/semver/functions/clean.d.ts","./node_modules/@types/semver/functions/inc.d.ts","./node_modules/@types/semver/functions/diff.d.ts","./node_modules/@types/semver/functions/major.d.ts","./node_modules/@types/semver/functions/minor.d.ts","./node_modules/@types/semver/functions/patch.d.ts","./node_modules/@types/semver/functions/prerelease.d.ts","./node_modules/@types/semver/functions/compare.d.ts","./node_modules/@types/semver/functions/rcompare.d.ts","./node_modules/@types/semver/functions/compare-loose.d.ts","./node_modules/@types/semver/functions/compare-build.d.ts","./node_modules/@types/semver/functions/sort.d.ts","./node_modules/@types/semver/functions/rsort.d.ts","./node_modules/@types/semver/functions/gt.d.ts","./node_modules/@types/semver/functions/lt.d.ts","./node_modules/@types/semver/functions/eq.d.ts","./node_modules/@types/semver/functions/neq.d.ts","./node_modules/@types/semver/functions/gte.d.ts","./node_modules/@types/semver/functions/lte.d.ts","./node_modules/@types/semver/functions/cmp.d.ts","./node_modules/@types/semver/functions/coerce.d.ts","./node_modules/@types/semver/classes/comparator.d.ts","./node_modules/@types/semver/classes/range.d.ts","./node_modules/@types/semver/functions/satisfies.d.ts","./node_modules/@types/semver/ranges/max-satisfying.d.ts","./node_modules/@types/semver/ranges/min-satisfying.d.ts","./node_modules/@types/semver/ranges/to-comparators.d.ts","./node_modules/@types/semver/ranges/min-version.d.ts","./node_modules/@types/semver/ranges/valid.d.ts","./node_modules/@types/semver/ranges/outside.d.ts","./node_modules/@types/semver/ranges/gtr.d.ts","./node_modules/@types/semver/ranges/ltr.d.ts","./node_modules/@types/semver/ranges/intersects.d.ts","./node_modules/@types/semver/ranges/simplify.d.ts","./node_modules/@types/semver/ranges/subset.d.ts","./node_modules/@types/semver/internals/identifiers.d.ts","./node_modules/@types/semver/index.d.ts","./node_modules/@types/serve-index/index.d.ts","./node_modules/@types/set-cookie-parser/index.d.ts","./node_modules/@types/sockjs/index.d.ts","./node_modules/@types/styled-components/index.d.ts","./node_modules/@types/use-sync-external-store/index.d.ts","./node_modules/@types/ws/index.d.ts"],"fileInfos":["2dc8c927c9c162a773c6bb3cdc4f3286c23f10eedc67414028f9cb5951610f60",{"version":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","4b421cbfb3a38a27c279dec1e9112c3d1da296f77a1a85ddadf7e7a425d45d18","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9",{"version":"3aafcb693fe5b5c3bd277bd4c3a617b53db474fe498fc5df067c5603b1eebde7","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"5e5e095c4470c8bab227dbbc61374878ecead104c74ab9960d3adcccfee23205","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"2768ef564cfc0689a1b76106c421a2909bdff0acbe87da010785adab80efdd5c","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},{"version":"d37dd63764ad93250b58e5941acd6587ecb6120e9f875a242fdd638ccea76719","signature":"d2fc4d1bfa792b7f2bfec90f7c92cfa1106ba5c8dcbbbc904eae089a4889e97c"},"7e771891adaa85b690266bc37bd6eb43bc57eecc4b54693ead36467e7369952a","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"ca72190df0eb9b09d4b600821c8c7b6c9747b75a1c700c4d57dc0bb72abc074c","affectsGlobalScope":true},"21a167fec8f933752fb8157f06d28fab6817af3ad9b0bdb1908a10762391eab9",{"version":"bb65c6267c5d6676be61acbf6604cf0a4555ac4b505df58ac15c831fcbff4e3e","affectsGlobalScope":true},"374ca798f244e464346f14301dc2a8b4b111af1a83b49fffef5906c338a1f922","5a94487653355b56018122d92392beb2e5f4a6c63ba5cef83bbe1c99775ef713",{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","dab86d9604fe40854ef3c0a6f9e8948873dc3509213418e5e457f410fd11200f","bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","489532ff54b714f0e0939947a1c560e516d3ae93d51d639ab02e907a0e950114","f30bb836526d930a74593f7b0f5c1c46d10856415a8f69e5e2fc3db80371e362","14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea",{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true},{"version":"816ad2e607a96de5bcac7d437f843f5afd8957f1fa5eefa6bba8e4ed7ca8fd84","affectsGlobalScope":true},"cec36af22f514322f870e81d30675c78df82ae8bf4863f5fd4e4424c040c678d","d903fafe96674bc0b2ac38a5be4a8fc07b14c2548d1cdb165a80ea24c44c0c54","5eec82ac21f84d83586c59a16b9b8502d34505d1393393556682fe7e7fde9ef2","04eb6578a588d6a46f50299b55f30e3a04ef27d0c5a46c57d8fcc211cd530faa","8d3c583a07e0c37e876908c2d5da575019f689df8d9fa4c081d99119d53dba22","2c828a5405191d006115ab34e191b8474bc6c86ffdc401d1a9864b1b6e088a58",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"d076fede3cb042e7b13fc29442aaa03a57806bc51e2b26a67a01fbc66a7c0c12","7c013aa892414a7fdcfd861ae524a668eaa3ede8c7c0acafaf611948122c8d93","b0973c3cbcdc59b37bf477731d468696ecaf442593ec51bab497a613a580fe30",{"version":"4989e92ba5b69b182d2caaea6295af52b7dc73a4f7a2e336a676722884e7139d","affectsGlobalScope":true},{"version":"b3624aed92dab6da8484280d3cb3e2f4130ec3f4ef3f8201c95144ae9e898bb6","affectsGlobalScope":true},"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","210d54cd652ec0fec8c8916e4af59bb341065576ecda039842f9ffb2e908507c","36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","fd93cee2621ff42dabe57b7be402783fd1aa69ece755bcba1e0290547ae60513","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","69ee23dd0d215b09907ad30d23f88b7790c93329d1faf31d7835552a10cf7cbf","44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda","223c37f62ce09a3d99e77498acdee7b2705a4ae14552fbdb4093600cd9164f3f",{"version":"970a90f76d4d219ad60819d61f5994514087ba94c985647a3474a5a3d12714ed","affectsGlobalScope":true},"e10177274a35a9d07c825615340b2fcde2f610f53f3fb40269fd196b4288dda6","4c8525f256873c7ba3135338c647eaf0ca7115a1a2805ae2d0056629461186ce","3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2",{"version":"f0900cd5d00fe1263ff41201fb8073dbeb984397e4af3b8002a5c207a30bdc33","affectsGlobalScope":true},{"version":"4c50342e1b65d3bee2ed4ab18f84842d5724ad11083bd666d8705dc7a6079d80","affectsGlobalScope":true},"06d7c42d256f0ce6afe1b2b6cfbc97ab391f29dadb00dd0ae8e8f23f5bc916c3","ec4bd1b200670fb567920db572d6701ed42a9641d09c4ff6869768c8f81b404c","e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa",{"version":"da26af7362f53d122283bc69fed862b9a9fe27e01bc6a69d1d682e0e5a4df3e6","affectsGlobalScope":true},"8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"8dbe725f8d237e70310977afcfa011629804d101ebaa0266cafda6b61ad72236","6738101ae8e56cd3879ab3f99630ada7d78097fc9fd334df7e766216778ca219","dc3b172ee27054dbcedcf5007b78c256021db936f6313a9ce9a3ecbb503fd646","6d829824ead8999f87b6df21200df3c6150391b894b4e80662caa462bd48d073","afc559c1b93df37c25aef6b3dfa2d64325b0e112e887ee18bf7e6f4ec383fc90","d78e5898c8de5e0f934eee83f680262de005caa268d137101b833fd932f95e07","92edb6e257fa64d3baae647490e041912684f5dc1f243d0aedd60b4b383ff50b","cab425b5559edac18327eb2c3c0f47e7e9f71b667290b7689faafd28aac69eae","3cfb0cb51cc2c2e1b313d7c4df04dbf7e5bda0a133c6b309bf6af77cf614b971","f992cd6cc0bcbaa4e6c810468c90f2d8595f8c6c3cf050c806397d3de8585562","16d51f964ec125ad2024cf03f0af444b3bc3ec3614d9345cc54d09bab45c9a4c","ba601641fac98c229ccd4a303f747de376d761babb33229bb7153bed9356c9cc",{"version":"c5dd1fef4cd4aaffc78786047bed5ae6fc1200d19a1946cbc4e2d3ed4d62c8fa","affectsGlobalScope":true},"56cbe80e6c42d7e6e66b6f048add8b01c663797b843a074d9f19c4a3d63a269a","204dbe6c72467fb14bbe8f06510b11fb541b6ce29580c6e10ebd3bdb2eb0c1f9","117ffeecf6c55e25b6446f449ad079029b5e7317399b0a693858faaaea5ca73e","ce013414484233b24f42c0fcfca48a60bb66ab4e13c82953662305e8f1ee4925","5b9ecf7da4d71cf3832dbb8336150fa924631811f488ad4690c2dfec2b4fb1d7","951c85f75aac041dddbedfedf565886a7b494e29ec1532e2a9b4a6180560b50e","f47887b61c6cf2f48746980390d6cb5b8013518951d912cfb37fe748071942be","43cdd474c5aa3340da4816bb8f1ae7f3b1bcf9e70d997afc36a0f2c432378c84","eb96a2321f717bccc3e49e104e299152984b927ea4546b559ae631c06565819c","6a9c5127096b35264eb7cd21b2417bfc1d42cceca9ba4ce2bb0c3410b7816042","78828b06c0d3b586954015e9ebde5480b009e166c71244763bda328ec0920f41",{"version":"64d4b35c5456adf258d2cf56c341e203a073253f229ef3208fc0d5020253b241","affectsGlobalScope":true},"946bd1737d9412395a8f24414c70f18660b84a75a12b0b448e6eb1a2161d06dd","f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","3adc8ac088388fd10b0e9cd3fa08abbebed9172577807394a241466ccb98f411","e050a0afcdbb269720a900c85076d18e0c1ab73e580202a2bf6964978181222a","a3ca095da123d2d556d663733932d71874e6c4b4874c76118463dedea4b0d2ad","ac9788076b6b9e4514ff1286de37bf90f8e2c1dd7a772c2e746232eaa4184233","49d41b881040e728bc28d463806cdff98b64c69e9da721adcf0ec34345f691b5","0623c302651761724ec920bb95a27d9d47ea71f7e6ef7e4d6f60bd05c86cf50c","b6e465de1852a328392b432b13ee8334b209f3493053e85aa8f0b5f78368d634","afc87a77703487af971af992374f59a6cc729411cd8498a492eb14cce49f092b","2c26ca5810ebbf0129a279811816d6fd703b79b087c1bd723e3dd9bfe75681da","963d59066dd6742da1918a6213a209bcc205b8ee53b1876ee2b4e6d80f97c85e","fd326577c62145816fe1acc306c734c2396487f76719d3785d4e825b34540b33",{"version":"f9f06da7b45c7b9f09ca6e76c73d6aa37af8cca9d4171573d3eb72476f012210","affectsGlobalScope":true},{"version":"271cde49dfd9b398ccc91bb3aaa43854cf76f4d14e10fed91cbac649aa6cbc63","affectsGlobalScope":true},"2bcecd31f1b4281710c666843fc55133a0ee25b143e59f35f49c62e168123f4b","a6273756fa05f794b64fe1aff45f4371d444f51ed0257f9364a8b25f3501915d","9c4e644fe9bf08d93c93bd892705842189fe345163f8896849d5964d21b56b78","25d91fb9ed77a828cc6c7a863236fb712dafcd52f816eec481bd0c1f589f4404","4cd14cea22eed1bfb0dc76183e56989f897ac5b14c0e2a819e5162eafdcfe243","8d32432f68ca4ce93ad717823976f2db2add94c70c19602bf87ee67fe51df48b",{"version":"bbdf156fea2fabed31a569445835aeedcc33643d404fcbaa54541f06c109df3f","affectsGlobalScope":true},"1c29793071152b207c01ea1954e343be9a44d85234447b2b236acae9e709a383","6a386ff939f180ae8ef064699d8b7b6e62bc2731a62d7fbf5e02589383838dea","f5a8b384f182b3851cec3596ccc96cb7464f8d3469f48c74bf2befb782a19de5",{"version":"d11a5d3967290ea6be7e6d7667c4673a7626cfaa32cfc68101000d2b218606ab","affectsGlobalScope":true},"bfe1b52cf71aea9bf8815810cc5d9490fa9617313e3d3c2ee3809a28b80d0bb4","ee65fe452abe1309389c5f50710f24114e08a302d40708101c4aa950a2a7d044","e98185f4249720ace1921d59c1ff4612fa5c633a183fc9bf28e2e7b8e3c7fd51","f463d61cf39c3a6a5f96cdf7adfdb72a0b1d663f7b5d5b6dd042adba835430c2","c1d5cc0286eef54f6246a972ec1720efbba6b7b0a53a303e1f2067ca229ecd16","6cb35d83d21a7e72bd00398c93302749bcd38349d0cc5e76ff3a90c6d1498a4d",{"version":"369dd7668d0e6c91550bce0c325f37ce6402e5dd40ecfca66fbb5283e23e559d","affectsGlobalScope":true},"2632057d8b983ee33295566088c080384d7d69a492bc60b008d6a6dfd3508d6b","4bf71cf2a94492fc71e97800bdf2bcb0a9a0fa5fce921c8fe42c67060780cbfa","0996ff06f64cb05b6dac158a6ada2e16f8c2ccd20f9ff6f3c3e871f1ba5fb6d9","5c492d01a19fea5ebfff9d27e786bc533e5078909521ca17ae41236f16f9686a","a6ee930b81c65ec79aca49025b797817dde6f2d2e9b0e0106f0844e18e2cc819","84fce15473e993e6b656db9dd3c9196b80f545647458e6621675e840fd700d29","7d5336ee766aa72dffb1cc2a515f61d18a4fb61b7a2757cbccfb7b286b783dfb","63e96248ab63f6e7a86e31aa3e654ed6de1c3f99e3b668e04800df05874e8b77","80da0f61195385d22b666408f6cccbc261c066d401611a286f07dfddf7764017","06a20cc7d937074863861ea1159ac783ff97b13952b4b5d1811c7d8ab5c94776","ab6de4af0e293eae73b67dad251af097d7bcc0b8b62de84e3674e831514cb056","18cbd79079af97af66c9c07c61b481fce14a4e7282eca078c474b40c970ba1d0","e7b45405689d87e745a217b648d3646fb47a6aaba9c8d775204de90c7ea9ff35","669b754ec246dd7471e19b655b73bda6c2ca5bb7ccb1a4dff44a9ae45b6a716a","bcfaca4a8ff50f57fd36df91fba5d34056883f213baff7192cbfc4d3805d2084","76a564b360b267502219a89514953058494713ee0923a63b2024e542c18b40e5","8f62cbd3afbd6a07bb8c934294b6bfbe437021b89e53a4da7de2648ecfc7af25","a20629551ed7923f35f7556c4c15d0c8b2ebe7afaa68ceaab079a1707ba64be2","d6de66600c97cd499526ddecea6e12166ab1c0e8d9bf36fb2339fd39c8b3372a","8e7a5b8f867b99cc8763c0b024068fb58e09f7da2c4810c12833e1ca6eb11c4f","a8932876de2e3138a5a27f9426b225a4d27f0ba0a1e2764ba20930b4c3faf4b9","df877050b04c29b9f8409aa10278d586825f511f0841d1ec41b6554f8362092b","027d600e00c5f5e1816c207854285d736f2f5fa28276e2829db746d5d6811ba1","5443113a16ef378446e08d6500bb48b35de582426459abdb5c9704f5c7d327d9","0fb581ecb53304a3c95bb930160b4fa610537470cce850371cbaad5a458ca0d9","7da4e290c009d7967343a7f8c3f145a3d2c157c62483362183ba9f637a536489","eb21ddc3a8136a12e69176531197def71dc28ffaf357b74d4bf83407bd845991","914560d0c4c6aa947cfe7489fe970c94ba25383c414bbe0168b44fd20dbf0df4","4fb3405055b54566dea2135845c3a776339e7e170d692401d97fd41ad9a20e5d","8d607832a6ef0eac30657173441367dd76c96bf7800d77193428b922e060c3af","20ff7207f0bb5cdde5fee8e83315ade7e5b8100cfa2087d20d39069a3d7d06f4","7ca4c534eab7cff43d81327e369a23464bc37ef38ce5337ceff24a42c6c84eb2","5252dec18a34078398be4e321dee884dc7f47930e5225262543a799b591b36d2","23caed4dff98bd28157d2b798b43f1dfefe727f18641648c01ce4e0e929a1630","f67e013d5374826596d7c23dbae1cdb14375a27cd72e16c5fb46a4b445059329","ea3401b70e2302683bbf4c18b69ef2292b60f4d8f8e6d920413b81fb7bde0f65","71afe26642c0fb86b9f8b1af4af5deb5181b43b6542a3ff2314871b53d04c749","0d7f01634e6234d84cf0106508efdb8ae00e5ed126eff9606d37b031ac1de654","f8d209086bad78af6bd7fef063c1ed449c815e6f8d36058115f222d9f788b848","3ad003278d569d1953779e2f838f7798f02e793f6a1eceac8e0065f1a202669b","fb2c5eceffcd918dbb86332afa0199f5e7b6cf6ee42809e930a827b28ef25afe","f664aaff6a981eeca68f1ff2d9fd21b6664f47bf45f3ae19874df5a6683a8d8a","ce066f85d73e09e9adbd0049bcf6471c7eefbfc2ec4b5692b5bcef1e36babd2a","09d302513cacfbcc54b67088739bd8ac1c3c57917f83f510b2d1adcb99fd7d2a","3faa54e978b92a6f726440c13fe3ab35993dc74d697c7709681dc1764a25219f","2bd0489e968925eb0c4c0fb12ef090be5165c86bd088e1e803102c38d4a717d8","88924207132b9ba339c1adb1ed3ea07e47b3149ff8a2e21a3ea1f91cee68589d","b8800b93d8ab532f8915be73f8195b9d4ef06376d8a82e8cdc17c400553172d6","d7d469703b78beba76d511957f8c8b534c3bbb02bea7ab4705c65ef573532fb8","74c8c3057669c03264263d911d0f82e876cef50b05be21c54fef23c900de0420","b303eda2ff2d582a9c3c5ecb708fb57355cdc25e8c8197a9f66d4d1bf09fda19","4e5dc89fa22ff43da3dee1db97d5add0591ebaff9e4adef6c8b6f0b41f0f60f0","ec4e82cb42a902fe83dc13153c7a260bee95684541f8d7ef26cb0629a2f4ca31","5f36e24cd92b0ff3e2a243685a8a780c9413941c36739f04b428cc4e15de629d","40a26494e6ab10a91851791169582ab77fed4fbd799518968177e7eefe08c7a9","208e125b45bc561765a74f6f1019d88e44e94678769824cf93726e1bac457961","b3985971de086ef3aa698ef19009a53527b72e65851b782dc188ac341a1e1390","c81d421aabb6113cd98b9d4f11e9a03273b363b841f294b457f37c15d513151d","30063e3a184ff31254bbafa782c78a2d6636943dfe59e1a34f451827fd7a68dc","c05d4cae0bceed02c9d013360d3e65658297acb1b7a90252fe366f2bf4f9ccc9","6f14b92848889abba03a474e0750f7350cc91fc190c107408ca48679a03975ae","a588d0765b1d18bf00a498b75a83e095aef75a9300b6c1e91cbf39e408f2fe2f","656424ca784760c679bf2677d8aaf55d1cb8452cd0ac04bbe1c0f659f45f8c11","5d2651c679f59706bf484e7d423f0ec2d9c79897e2e68c91a3f582f21328d193","30d49e69cb62f350ff0bc5dda1c557429c425014955c19c557f101c0de9272e7","d3747dbed45540212e9a906c2fb8b5beb691f2cd0861af58a66dc01871004f38","05a21cbb7cbe1ec502e7baca1f4846a4e860d96bad112f3e316b995ba99715b7","1eaee2b52f1c0e1848845a79050c1d06ae554d8050c35e3bf479f13d6ee19dd5","fd219904eea67c470dfebbaf44129b0db858207c3c3b55514bdc84de547b1687","4de232968f584b960b4101b4cdae593456aff149c5d0c70c2389248e9eb9fbac","933c42f6ed2768265dfb42faa817ce8d902710c57a21a1859a9c3fe5e985080e","c5430542eeebb207d651e8b00a08e4bb680c47ecb73dd388d8fa597a1fc5de5b","a6c5c9906262cf10549989c0061e5a44afdc1f61da77d5e09418a9ecea0018fe","bc6e433cb982bf63eaa523dbbbd30fe12960a09861b352d77baf77ad6dd8886d","9af64ab00918f552388252977c1569fe31890686ca1fdb8e20f58d3401c9a50c","3d3cc03b5c6e056c24aac76789f4bc67caee98a4f0774ab82bc8ba34d16be916","747ce36fa27a750a05096f3610e59c9b5a55e13defec545c01a75fd13d67b620","1a8f503c64bdb36308f245960d9e4acac4cf65d8b6bd0534f88230ebf0be7883","a2c1f4012459547d62116d724e7ec820bb2e6848da40ea0747bf160ffd99b283","0dc197e52512a7cbea4823cc33c23b0337af97bd59b38bf83be047f37cd8c9a8","492c93ade227fe4545fabb3035b9dd5d57d8b4fde322e5217fdaef20aa1b80a8","83c54a3b3e836d1773b8c23ff76ce6e0aae1a2209fc772b75e9de173fec9eac0","475e411f48f74c14b1f6e50cc244387a5cc8ce52340dddfae897c96e03f86527","5573ce7aa683a81c9a727294ffdb47d82d7715a148bfe9f4ddcf2f6cdfef1f0a","2cd9edbb4a6411a9f5258237dd73323db978d7aa9ebf1d1b0ac79771ac233e24","65719ccb75af7676665ee5a6f4d21d6a5f494ba5da26a4fcdad3b0788121e5c8","21bb8dda75eb025927e9d62d8fa619e349ebc5ba0b8b9dddd8fdfc9ff058e2b8","96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","fec943fdb3275eb6e006b35e04a8e2e99e9adf3f4b969ddf15315ac7575a93e4","5006668996956580886022c05108e32c742823e1b5652aff7914917233731518","3a9b877f47119ac64aab98c61cae91a304ddeb6e8285ccd824a6aa665ffaeb95","488b0a139b5f35ded772136cf4b541f3babf22e4ce9056daf65736234e88355d","dcb9aa62f2662b999047096125adfa905cca0c988d7f5130e38ab41afeb96a3f","81af781a1d9eb264b8955538935874d6e60944e6285127d43ac07c6320d1d98f","675e702f2032766a91eeadee64f51014c64688525da99dccd8178f0c599f13a8","458111fc89d11d2151277c822dfdc1a28fa5b6b2493cf942e37d4cd0a6ee5f22","d70c026dd2eeaa974f430ea229230a1897fdb897dc74659deebe2afd4feeb08f","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","febf0b2de54781102b00f61653b21377390a048fbf5262718c91860d11ff34a6","98f9d826db9cd99d27a01a59ee5f22863df00ccf1aaf43e1d7db80ebf716f7c3","0aaef8cded245bf5036a7a40b65622dd6c4da71f7a35343112edbe112b348a1e","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","dcd91d3b697cb650b95db5471189b99815af5db2a1cd28760f91e0b12ede8ed5","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","3cf0d343c2276842a5b617f22ba82af6322c7cfe8bb52238ffc0c491a3c21019","df996e25faa505f85aeb294d15ebe61b399cf1d1e49959cdfaf2cc0815c203f9",{"version":"f2eff8704452659641164876c1ef0df4174659ce7311b0665798ea3f556fa9ad","affectsGlobalScope":true},"0e60e0cbf2283adfd5a15430ae548cd2f662d581b5da6ecd98220203e7067c70","2b8264b2fefd7367e0f20e2c04eed5d3038831fe00f5efbc110ff0131aab899b",{"version":"fd624f7d7b264922476685870f08c5e1c6d6a0f05dee2429a9747b41f6b699d4","affectsGlobalScope":true},"bc0fcbd1d24fc838fbbadaef30b05ff0c49d3a1f4037e9534d0b93907a071bc5","1d4bc73751d6ec6285331d1ca378904f55d9e5e8aeaa69bc45b675c3df83e778","8017277c3843df85296d8730f9edf097d68d7d5f9bc9d8124fcacf17ecfd487e","30688eab034d1aa3bbe4d8f2c7f462ddaec9f30f1a38a306a4728a9a06a58b11","e03334588c63840b7054accd0b90f29c5890db6a6555ac0869a78a23297f1396","c3052485f32a96bfde75a2976c1238995522584ba464f04ff16a8a40af5e50d1","c220410b8e956fa157ce4e5e6ac871f0f433aa120c334d906ff1f5e2c7369e95","960a68ced7820108787135bdae5265d2cc4b511b7dcfd5b8f213432a8483daf1","5e8db4872785292074b394d821ae2fc10e4f8edc597776368aebbe8aefb24422","199f9ead0daf25ae4c5632e3d1f42570af59685294a38123eef457407e13f365","74b0245c42990ed8a849df955db3f4362c81b13f799ebc981b7bec2d5b414a57","2b93035328f7778d200252681c1d86285d501ed424825a18f81e4c3028aa51d9","2ac9c8332c5f8510b8bdd571f8271e0f39b0577714d5e95c1e79a12b2616f069","42c21aa963e7b86fa00801d96e88b36803188018d5ad91db2a9101bccd40b3ff","d31eb848cdebb4c55b4893b335a7c0cca95ad66dee13cbb7d0893810c0a9c301","77c1d91a129ba60b8c405f9f539e42df834afb174fe0785f89d92a2c7c16b77a","7a9e0a564fee396cacf706523b5aeed96e04c6b871a8bebefad78499fbffc5bc","906c751ef5822ec0dadcea2f0e9db64a33fb4ee926cc9f7efa38afe5d5371b2a","5387c049e9702f2d2d7ece1a74836a14b47fbebe9bbeb19f94c580a37c855351","c68391fb9efad5d99ff332c65b1606248c4e4a9f1dd9a087204242b56c7126d6","e9cf02252d3a0ced987d24845dcb1f11c1be5541f17e5daa44c6de2d18138d0c","e8b02b879754d85f48489294f99147aeccc352c760d95a6fe2b6e49cd400b2fe","9f6908ab3d8a86c68b86e38578afc7095114e66b2fc36a2a96e9252aac3998e0","0eedb2344442b143ddcd788f87096961cd8572b64f10b4afc3356aa0460171c6","71405cc70f183d029cc5018375f6c35117ffdaf11846c35ebf85ee3956b1b2a6","c68baff4d8ba346130e9753cefe2e487a16731bf17e05fdacc81e8c9a26aae9d","2cd15528d8bb5d0453aa339b4b52e0696e8b07e790c153831c642c3dea5ac8af","479d622e66283ffa9883fbc33e441f7fc928b2277ff30aacbec7b7761b4e9579","ade307876dc5ca267ca308d09e737b611505e015c535863f22420a11fffc1c54","f8cdefa3e0dee639eccbe9794b46f90291e5fd3989fcba60d2f08fde56179fb9","86c5a62f99aac7053976e317dbe9acb2eaf903aaf3d2e5bb1cafe5c2df7b37a8","2b300954ce01a8343866f737656e13243e86e5baef51bd0631b21dcef1f6e954","a2d409a9ffd872d6b9d78ead00baa116bbc73cfa959fce9a2f29d3227876b2a1","b288936f560cd71f4a6002953290de9ff8dfbfbf37f5a9391be5c83322324898","61178a781ef82e0ff54f9430397e71e8f365fc1e3725e0e5346f2de7b0d50dfa","6a6ccb37feb3aad32d9be026a3337db195979cd5727a616fc0f557e974101a54","c649ea79205c029a02272ef55b7ab14ada0903db26144d2205021f24727ac7a3","38e2b02897c6357bbcff729ef84c736727b45cc152abe95a7567caccdfad2a1d","d6610ea7e0b1a7686dba062a1e5544dd7d34140f4545305b7c6afaebfb348341","3dee35db743bdba2c8d19aece7ac049bde6fa587e195d86547c882784e6ba34c","b15e55c5fa977c2f25ca0b1db52cfa2d1fd4bf0baf90a8b90d4a7678ca462ff1","f41d30972724714763a2698ae949fbc463afb203b5fa7c4ad7e4de0871129a17","843dd7b6a7c6269fd43827303f5cbe65c1fecabc30b4670a50d5a15d57daeeb9","f06d8b8567ee9fd799bf7f806efe93b67683ef24f4dea5b23ef12edff4434d9d","6017384f697ff38bc3ef6a546df5b230c3c31329db84cbfe686c83bec011e2b2","e1a5b30d9248549ca0c0bb1d653bafae20c64c4aa5928cc4cd3017b55c2177b0","a593632d5878f17295bd53e1c77f27bf4c15212822f764a2bfc1702f4b413fa0","a868a534ba1c2ca9060b8a13b0ffbbbf78b4be7b0ff80d8c75b02773f7192c29","da7545aba8f54a50fde23e2ede00158dc8112560d934cee58098dfb03aae9b9d","34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","6aee496bf0ecfbf6731aa8cca32f4b6e92cdc0a444911a7d88410408a45ecc5d","acebfe99678cf7cddcddc3435222cf132052b1226e902daac9fbb495c321a9b5","e5d49212b03abccc8df5098d379dc8350755b9ba53b515da4b1980494486ba78","82b1f9a6eefef7386aebe22ac49f23b806421e82dbf35c6e5b7132d79e4165da",{"version":"356701ea5df9eea3bf62b0f29857cb950d95eec9b9063f85c17be705926cdd2a","affectsGlobalScope":true},"61f41da9aaa809e5142b1d849d4e70f3e09913a5cb32c629bf6e61ef27967ff7","77c5c7f8578d139c74102a29384f5f4f0792a12d819ddcdcaf8307185ff2d45d"],"options":{"composite":true,"outDir":"./","rootDir":"./"},"fileIdsList":[[66,93,100],[93],[66,93,100,103],[57,93,100],[63,66,92,93,100,106,107,108],[92,93,100,112],[66,93,100,103,116,120],[93,122],[93,125,127],[93,124,125,126],[63,66,93,100,110,111],[93,104,111,112,119],[66,93,135],[81,93,100,130,131,132,133,134],[81,93,135],[63,93,135],[93,132],[63,64,93,100,136],[93,139,145],[93,140,141,142,143,144],[93,145],[93,150],[63,66,68,71,81,92,93,100],[78,93,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,237,238,239,240,241],[93,242],[93,221,222,242],[78,93,219,224,242],[78,93,225,226,242],[78,93,225,242],[78,93,219,225,242],[78,93,231,242],[78,93,242],[93,220,236,242],[93,219,236,242],[78,93,219],[93,224],[78,93],[93,219,242],[93,100],[63,93,100],[93,248],[63,66,67,71,77,92,93,100,101,114,116,121,153,154,247],[63,93,100,129,243],[93,252,254,255,256,257,258,259,260,261,262,263,264],[93,252,253,255,256,257,258,259,260,261,262,263,264],[93,253,254,255,256,257,258,259,260,261,262,263,264],[93,252,253,254,256,257,258,259,260,261,262,263,264],[93,252,253,254,255,257,258,259,260,261,262,263,264],[93,252,253,254,255,256,258,259,260,261,262,263,264],[93,252,253,254,255,256,257,259,260,261,262,263,264],[93,252,253,254,255,256,257,258,260,261,262,263,264],[93,252,253,254,255,256,257,258,259,261,262,263,264],[93,252,253,254,255,256,257,258,259,260,262,263,264],[93,252,253,254,255,256,257,258,259,260,261,263,264],[93,252,253,254,255,256,257,258,259,260,261,262,264],[93,252,253,254,255,256,257,258,259,260,261,262,263],[93,117],[93,118],[47,93],[50,93],[51,56,84,93],[52,63,64,71,81,92,93],[52,53,63,71,93],[54,93],[55,56,64,72,93],[56,81,89,93],[57,59,63,71,93],[58,93],[59,60,93],[63,93],[61,63,93],[63,64,65,81,92,93],[63,64,65,78,81,84,93],[93,97],[59,66,71,81,92,93],[63,64,66,67,71,81,89,92,93],[66,68,81,89,92,93],[47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99],[63,69,93],[70,92,93],[59,63,71,81,93],[72,93],[73,93],[50,74,93],[75,91,93,97],[76,93],[77,93],[63,78,79,93],[78,80,93,95],[51,63,81,82,83,84,93],[51,81,83,93],[81,82,93],[84,93],[85,93],[63,87,88,93],[87,88,93],[56,71,81,89,93],[90,93],[71,91,93],[51,66,77,92,93],[56,93],[81,93,94],[93,95],[93,96],[51,56,63,65,74,81,92,93,95,97],[81,93,98],[93,150,151,267],[93,145,150,269],[93,145,150],[93,150,271],[93,271,272,273,274,275],[93,146,147,148,149],[66,81,93,100],[93,279,318],[93,279,303,318],[93,318],[93,279],[93,279,304,318],[93,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317],[93,304,318],[64,93,120],[66,93,100,118],[93,147,150,151],[81,93,100],[63,66,68,81,89,92,93,98,100],[93,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,175,176,178,180,181,182,183,184,185,186,187,188,189,190,191,192,193,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218],[93,156,158,163],[93,158,195],[93,157,162],[93,156,157,158,159,160,161],[93,157,158,159,162,195],[93,156,158,162,163],[93,162],[93,162,202],[93,156,157,158,162],[93,157,158,159,162],[93,157,158],[93,156,157,158,162,163],[93,158,194],[93,156,157,158,163],[93,219],[93,156,157,171],[93,156,157,170],[93,179],[93,172,173],[93,174],[93,172],[93,156,157,171,172],[93,156,157,170,171,173],[93,177],[93,156,157,172,173],[93,156,157,158,159,162],[93,156,157],[93,157],[93,156,162],[139,145],[140,141,142,143,144],[145],[150],[145,150,269],[145,150],[150,271],[271,272,273,274,275],[146,147,148,149],[147,150,151]],"referencedMap":[[101,1],[102,2],[104,3],[105,4],[109,5],[113,6],[103,1],[114,2],[115,2],[121,7],[123,8],[128,9],[124,2],[127,10],[125,2],[112,11],[120,12],[129,2],[130,13],[134,2],[135,14],[131,15],[132,16],[133,17],[137,18],[138,2],[140,19],[141,19],[142,19],[139,2],[145,20],[143,21],[144,21],[151,22],[152,2],[153,2],[107,2],[154,2],[155,23],[242,24],[221,25],[223,26],[222,25],[225,27],[227,28],[228,29],[229,30],[230,28],[231,29],[232,28],[233,31],[234,29],[235,28],[236,32],[237,33],[238,34],[239,35],[226,36],[240,37],[224,37],[241,38],[243,39],[244,2],[126,2],[245,2],[116,2],[246,40],[249,41],[247,41],[248,42],[250,41],[251,43],[253,44],[254,45],[252,46],[255,47],[256,48],[257,49],[258,50],[259,51],[260,52],[261,53],[262,54],[263,55],[264,56],[265,2],[118,57],[117,58],[136,2],[122,2],[47,59],[48,59],[50,60],[51,61],[52,62],[53,63],[54,64],[55,65],[56,66],[57,67],[58,68],[59,69],[60,69],[62,70],[61,71],[63,70],[64,72],[65,73],[49,74],[99,2],[66,75],[67,76],[68,77],[100,78],[69,79],[70,80],[71,81],[72,82],[73,83],[74,84],[75,85],[76,86],[77,87],[78,88],[79,88],[80,89],[81,90],[83,91],[82,92],[84,93],[85,94],[86,2],[87,95],[88,96],[89,97],[90,98],[91,99],[92,100],[93,101],[94,102],[95,103],[96,104],[97,105],[98,106],[266,2],[148,2],[111,2],[110,2],[268,107],[270,108],[269,109],[275,2],[272,110],[276,111],[274,22],[271,22],[273,110],[146,2],[150,112],[108,113],[277,2],[278,2],[149,2],[303,114],[304,115],[279,116],[282,116],[301,114],[302,114],[292,114],[291,117],[289,114],[284,114],[297,114],[295,114],[299,114],[283,114],[296,114],[300,114],[285,114],[286,114],[298,114],[280,114],[287,114],[288,114],[290,114],[294,114],[305,118],[293,114],[281,114],[318,119],[317,2],[312,118],[314,120],[313,118],[306,118],[307,118],[309,118],[311,118],[315,120],[316,120],[308,120],[310,120],[319,121],[119,122],[320,1],[321,1],[322,123],[220,124],[323,2],[324,125],[147,2],[106,70],[267,2],[219,126],[169,127],[167,127],[218,2],[194,128],[182,129],[162,130],[192,129],[193,129],[196,131],[197,129],[164,132],[198,129],[199,129],[200,129],[201,129],[202,133],[203,134],[204,129],[160,129],[205,129],[206,129],[207,133],[208,129],[209,129],[210,135],[211,129],[212,131],[213,129],[161,129],[214,129],[215,129],[216,136],[159,137],[165,138],[195,139],[168,140],[217,141],[170,142],[171,143],[180,144],[179,145],[175,146],[174,145],[176,147],[173,148],[172,149],[178,150],[177,147],[181,151],[163,152],[158,153],[156,154],[166,2],[157,155],[187,2],[188,2],[185,2],[186,133],[184,2],[189,2],[183,154],[191,2],[190,2],[1,2],[9,2],[13,2],[12,2],[3,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[4,2],[5,2],[25,2],[22,2],[23,2],[24,2],[26,2],[27,2],[28,2],[6,2],[29,2],[30,2],[31,2],[32,2],[7,2],[36,2],[33,2],[34,2],[35,2],[37,2],[8,2],[38,2],[43,2],[44,2],[39,2],[40,2],[41,2],[42,2],[2,2],[45,2],[11,2],[10,2],[46,2]],"exportedModulesMap":[[101,1],[102,2],[104,3],[105,4],[109,5],[113,6],[103,1],[114,2],[115,2],[121,7],[123,8],[128,9],[124,2],[127,10],[125,2],[112,11],[120,12],[129,2],[130,13],[134,2],[135,14],[131,15],[132,16],[133,17],[137,18],[138,2],[140,156],[141,156],[142,156],[145,157],[143,158],[144,158],[151,159],[152,2],[153,2],[107,2],[154,2],[155,23],[242,24],[221,25],[223,26],[222,25],[225,27],[227,28],[228,29],[229,30],[230,28],[231,29],[232,28],[233,31],[234,29],[235,28],[236,32],[237,33],[238,34],[239,35],[226,36],[240,37],[224,37],[241,38],[243,39],[244,2],[126,2],[245,2],[116,2],[246,40],[249,41],[247,41],[248,42],[250,41],[251,43],[253,44],[254,45],[252,46],[255,47],[256,48],[257,49],[258,50],[259,51],[260,52],[261,53],[262,54],[263,55],[264,56],[265,2],[118,57],[117,58],[136,2],[122,2],[47,59],[48,59],[50,60],[51,61],[52,62],[53,63],[54,64],[55,65],[56,66],[57,67],[58,68],[59,69],[60,69],[62,70],[61,71],[63,70],[64,72],[65,73],[49,74],[99,2],[66,75],[67,76],[68,77],[100,78],[69,79],[70,80],[71,81],[72,82],[73,83],[74,84],[75,85],[76,86],[77,87],[78,88],[79,88],[80,89],[81,90],[83,91],[82,92],[84,93],[85,94],[86,2],[87,95],[88,96],[89,97],[90,98],[91,99],[92,100],[93,101],[94,102],[95,103],[96,104],[97,105],[98,106],[111,2],[110,2],[268,107],[270,160],[269,161],[272,162],[276,163],[274,159],[271,159],[273,162],[150,164],[108,113],[277,2],[303,114],[304,115],[279,116],[282,116],[301,114],[302,114],[292,114],[291,117],[289,114],[284,114],[297,114],[295,114],[299,114],[283,114],[296,114],[300,114],[285,114],[286,114],[298,114],[280,114],[287,114],[288,114],[290,114],[294,114],[305,118],[293,114],[281,114],[318,119],[317,2],[312,118],[314,120],[313,118],[306,118],[307,118],[309,118],[311,118],[315,120],[316,120],[308,120],[310,120],[319,121],[119,122],[320,1],[321,1],[322,165],[220,124],[323,2],[324,125],[106,70],[267,2],[219,126],[169,127],[167,127],[218,2],[194,128],[182,129],[162,130],[192,129],[193,129],[196,131],[197,129],[164,132],[198,129],[199,129],[200,129],[201,129],[202,133],[203,134],[204,129],[160,129],[205,129],[206,129],[207,133],[208,129],[209,129],[210,135],[211,129],[212,131],[213,129],[161,129],[214,129],[215,129],[216,136],[159,137],[165,138],[195,139],[168,140],[217,141],[170,142],[171,143],[180,144],[179,145],[175,146],[174,145],[176,147],[173,148],[172,149],[178,150],[177,147],[181,151],[163,152],[158,153],[156,154],[166,2],[157,155],[187,2],[188,2],[185,2],[186,133],[184,2],[189,2],[183,154],[191,2],[190,2],[13,2],[12,2],[3,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[4,2],[5,2],[25,2],[22,2],[23,2],[24,2],[26,2],[27,2],[28,2],[6,2],[29,2],[30,2],[31,2],[32,2],[7,2],[36,2],[33,2],[34,2],[35,2],[37,2],[8,2],[38,2],[43,2],[44,2],[39,2],[40,2],[41,2],[42,2],[45,2]],"semanticDiagnosticsPerFile":[101,102,104,105,109,113,103,114,115,121,123,128,124,127,125,112,120,129,130,134,135,131,132,133,137,138,140,141,142,139,145,143,144,151,152,153,107,154,155,242,221,223,222,225,227,228,229,230,231,232,233,234,235,236,237,238,239,226,240,224,241,243,244,126,245,116,246,249,247,248,250,251,253,254,252,255,256,257,258,259,260,261,262,263,264,265,118,117,136,122,47,48,50,51,52,53,54,55,56,57,58,59,60,62,61,63,64,65,49,99,66,67,68,100,69,70,71,72,73,74,75,76,77,78,79,80,81,83,82,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,266,148,111,110,268,270,269,275,272,276,274,271,273,146,150,108,277,278,149,303,304,279,282,301,302,292,291,289,284,297,295,299,283,296,300,285,286,298,280,287,288,290,294,305,293,281,318,317,312,314,313,306,307,309,311,315,316,308,310,319,119,320,321,322,220,323,324,147,106,267,219,169,167,218,194,182,162,192,193,196,197,164,198,199,200,201,202,203,204,160,205,206,207,208,209,210,211,212,213,161,214,215,216,159,165,195,168,217,170,171,180,179,175,174,176,173,172,178,177,181,163,158,156,166,157,187,188,185,186,184,189,183,191,190,1,9,13,12,3,14,15,16,17,18,19,20,21,4,5,25,22,23,24,26,27,28,6,29,30,31,32,7,36,33,34,35,37,8,38,43,44,39,40,41,42,2,45,11,10,46]},"version":"4.9.4"}
--------------------------------------------------------------------------------