@ablogcms/lib 3.2.28-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -0
- package/dist/a-table/index.d.ts +10 -0
- package/dist/a-table/index.mjs +48 -0
- package/dist/a-table/index.mjs.map +1 -0
- package/dist/acms.d.ts +8 -0
- package/dist/acms.mjs +1 -0
- package/dist/acms.mjs.map +1 -0
- package/dist/chunk-AMZYQ4DG.mjs +344 -0
- package/dist/chunk-AMZYQ4DG.mjs.map +1 -0
- package/dist/chunk-W7TT2YZB.mjs +271 -0
- package/dist/chunk-W7TT2YZB.mjs.map +1 -0
- package/dist/chunk-ZPZHEKTI.mjs +20 -0
- package/dist/chunk-ZPZHEKTI.mjs.map +1 -0
- package/dist/command.d.ts +5 -0
- package/dist/command.mjs +63 -0
- package/dist/command.mjs.map +1 -0
- package/dist/create-pdf.d.ts +1 -0
- package/dist/create-pdf.mjs +27 -0
- package/dist/create-pdf.mjs.map +1 -0
- package/dist/events.d.ts +210 -0
- package/dist/flatpicker/date-picker.d.ts +6 -0
- package/dist/flatpicker/date-picker.mjs +28 -0
- package/dist/flatpicker/date-picker.mjs.map +1 -0
- package/dist/flatpicker/time-picker.d.ts +6 -0
- package/dist/flatpicker/time-picker.mjs +28 -0
- package/dist/flatpicker/time-picker.mjs.map +1 -0
- package/dist/geolocation.d.ts +1 -0
- package/dist/geolocation.mjs +30 -0
- package/dist/geolocation.mjs.map +1 -0
- package/dist/google-maps/google-maps.d.ts +6 -0
- package/dist/google-maps/google-maps.mjs +105 -0
- package/dist/google-maps/google-maps.mjs.map +1 -0
- package/dist/google-maps/loader.d.ts +9 -0
- package/dist/google-maps/loader.mjs +7 -0
- package/dist/google-maps/loader.mjs.map +1 -0
- package/dist/google-maps/picker/google-maps-picker.d.ts +72 -0
- package/dist/google-maps/picker/index.d.ts +5 -0
- package/dist/google-maps/picker/index.mjs +483 -0
- package/dist/google-maps/picker/index.mjs.map +1 -0
- package/dist/google-maps/street-view.d.ts +2 -0
- package/dist/google-maps/street-view.mjs +25 -0
- package/dist/google-maps/street-view.mjs.map +1 -0
- package/dist/htmx/geolocation.d.ts +1 -0
- package/dist/htmx/geolocation.mjs +40 -0
- package/dist/htmx/geolocation.mjs.map +1 -0
- package/dist/icons.d.ts +2 -0
- package/dist/icons.mjs +181 -0
- package/dist/icons.mjs.map +1 -0
- package/dist/lazy-load/index.d.ts +2 -0
- package/dist/lazy-load/index.mjs +21 -0
- package/dist/lazy-load/index.mjs.map +1 -0
- package/dist/lite-editor/index.d.ts +87 -0
- package/dist/lite-editor/index.mjs +274 -0
- package/dist/lite-editor/index.mjs.map +1 -0
- package/dist/lite-editor-field/index.d.ts +8 -0
- package/dist/lite-editor-field/index.mjs +18 -0
- package/dist/lite-editor-field/index.mjs.map +1 -0
- package/dist/loader/index.d.ts +2 -0
- package/dist/loader/index.mjs +262 -0
- package/dist/loader/index.mjs.map +1 -0
- package/dist/loader/loader.d.ts +29 -0
- package/dist/loader/sync-loader.d.ts +104 -0
- package/dist/open-street-map/open-street-map.d.ts +2 -0
- package/dist/open-street-map/open-street-map.mjs +60 -0
- package/dist/open-street-map/open-street-map.mjs.map +1 -0
- package/dist/open-street-map/picker/index.d.ts +6 -0
- package/dist/open-street-map/picker/index.mjs +50 -0
- package/dist/open-street-map/picker/index.mjs.map +1 -0
- package/dist/open-street-map/picker/open-street-map-picker.d.ts +55 -0
- package/dist/open-street-map/picker/open-street-map-picker.mjs +7 -0
- package/dist/open-street-map/picker/open-street-map-picker.mjs.map +1 -0
- package/dist/pdf2image.d.ts +21 -0
- package/dist/pdf2image.mjs +115 -0
- package/dist/pdf2image.mjs.map +1 -0
- package/dist/polyfill/index.d.ts +1 -0
- package/dist/polyfill/index.mjs +40 -0
- package/dist/polyfill/index.mjs.map +1 -0
- package/dist/read-files.d.ts +14 -0
- package/dist/read-files.mjs +62 -0
- package/dist/read-files.mjs.map +1 -0
- package/dist/resize-image/resize-image.d.ts +71 -0
- package/dist/resize-image/resize-image.mjs +308 -0
- package/dist/resize-image/resize-image.mjs.map +1 -0
- package/dist/resize-image/util.d.ts +134 -0
- package/dist/resize-image/util.mjs +7 -0
- package/dist/resize-image/util.mjs.map +1 -0
- package/dist/select2/index.d.ts +1 -0
- package/dist/select2/index.mjs +33 -0
- package/dist/select2/index.mjs.map +1 -0
- package/dist/trumbowyg.d.ts +12 -0
- package/dist/wysiwyg.d.ts +2 -0
- package/dist/wysiwyg.mjs +21 -0
- package/dist/wysiwyg.mjs.map +1 -0
- package/dist/zxcvbn/index.d.ts +2 -0
- package/dist/zxcvbn/index.mjs +35 -0
- package/dist/zxcvbn/index.mjs.map +1 -0
- package/package.json +203 -0
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
// src/loader/sync-loader.js
|
|
2
|
+
var SyncLoader = class {
|
|
3
|
+
/**
|
|
4
|
+
* constructor
|
|
5
|
+
*
|
|
6
|
+
* @param {SyncLoaderOptions} [options={}] - Options for configuring the SyncLoader instance.
|
|
7
|
+
*/
|
|
8
|
+
constructor(options = {}) {
|
|
9
|
+
this.charset = options.charset;
|
|
10
|
+
this.type = options.type || "text/javascript";
|
|
11
|
+
this.error = options.error || function() {
|
|
12
|
+
};
|
|
13
|
+
this.queue = {
|
|
14
|
+
srcAry: [],
|
|
15
|
+
asyncAry: [],
|
|
16
|
+
loaded: [],
|
|
17
|
+
add(src) {
|
|
18
|
+
this.srcAry.push(src);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Promiseのthenのようなもの
|
|
24
|
+
*
|
|
25
|
+
* @param {string|Function} arg - The source URL or a function to execute.
|
|
26
|
+
* @param {boolean} async - Whether to load the resource asynchronously.
|
|
27
|
+
* @param {Function} [callback] - Callback function to execute after loading.
|
|
28
|
+
* @returns {this} - Returns the instance for method chaining.
|
|
29
|
+
*/
|
|
30
|
+
next(arg, async, callback) {
|
|
31
|
+
if (async) {
|
|
32
|
+
this._load(arg, true, callback);
|
|
33
|
+
} else {
|
|
34
|
+
this.queue.add(arg);
|
|
35
|
+
}
|
|
36
|
+
return this;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* ロード開始
|
|
40
|
+
*
|
|
41
|
+
* @param {Function} [callback] - Callback function to execute after all resources are loaded.
|
|
42
|
+
*/
|
|
43
|
+
load(callback) {
|
|
44
|
+
this.complete = callback || function() {
|
|
45
|
+
};
|
|
46
|
+
this.assign();
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* 次の要素取得
|
|
50
|
+
*
|
|
51
|
+
* @returns {boolean} - Returns false if no more elements to process.
|
|
52
|
+
*/
|
|
53
|
+
assign() {
|
|
54
|
+
const src = this.queue.srcAry.shift();
|
|
55
|
+
if (src === void 0) {
|
|
56
|
+
this.complete();
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
if (typeof src === "function") {
|
|
60
|
+
this._exe(src);
|
|
61
|
+
} else {
|
|
62
|
+
this._load(src);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* 登録された処理を実行(Promise対応)
|
|
67
|
+
*
|
|
68
|
+
* @param {Function} callback - The function to execute.
|
|
69
|
+
* @private
|
|
70
|
+
*/
|
|
71
|
+
_exe(callback) {
|
|
72
|
+
const handler = callback || function() {
|
|
73
|
+
};
|
|
74
|
+
const result = handler(this);
|
|
75
|
+
const self = this;
|
|
76
|
+
if (result instanceof Promise || result && typeof result.then === "function") {
|
|
77
|
+
result.then(() => {
|
|
78
|
+
self.assign();
|
|
79
|
+
});
|
|
80
|
+
} else {
|
|
81
|
+
self.assign();
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* リソースの読み込み
|
|
86
|
+
*
|
|
87
|
+
* @param {string} src - The source URL to load.
|
|
88
|
+
* @param {boolean} [async=false] - Whether to load the resource asynchronously.
|
|
89
|
+
* @param {Function} [callback] - Callback function to execute after loading.
|
|
90
|
+
* @private
|
|
91
|
+
*/
|
|
92
|
+
_load(src, async = false, callback = () => {
|
|
93
|
+
}) {
|
|
94
|
+
const tag = document.createElement("script");
|
|
95
|
+
const head = document.getElementsByTagName("script")[0];
|
|
96
|
+
tag.src = src;
|
|
97
|
+
tag.type = this.type;
|
|
98
|
+
tag.onerror = () => {
|
|
99
|
+
this.error();
|
|
100
|
+
};
|
|
101
|
+
if (this.charset) {
|
|
102
|
+
tag.charset = this.charset;
|
|
103
|
+
}
|
|
104
|
+
if (async) {
|
|
105
|
+
head.parentNode.insertBefore(tag, head.nextSibling);
|
|
106
|
+
tag.onload = () => {
|
|
107
|
+
if (!this._exists(src)) {
|
|
108
|
+
this.queue.loaded.push(src);
|
|
109
|
+
callback = callback || function() {
|
|
110
|
+
};
|
|
111
|
+
callback();
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
} else {
|
|
115
|
+
tag.onload = () => {
|
|
116
|
+
if (!this._exists(src)) {
|
|
117
|
+
this.queue.loaded.push(src);
|
|
118
|
+
this.assign();
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
head.parentNode.insertBefore(tag, head.nextSibling);
|
|
122
|
+
}
|
|
123
|
+
tag.onreadystatechange = () => {
|
|
124
|
+
if (!tag.readyState || tag.readyState === "loaded" || tag.readyState === "complete") {
|
|
125
|
+
tag.onreadystatechange = null;
|
|
126
|
+
tag.onload();
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* キューのチェック
|
|
132
|
+
*
|
|
133
|
+
* @param {string} src - The source URL to check.
|
|
134
|
+
* @returns {boolean} - Returns true if the source URL is already loaded.
|
|
135
|
+
* @private
|
|
136
|
+
*/
|
|
137
|
+
_exists(src) {
|
|
138
|
+
return this.queue.loaded.includes(src);
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
// src/loader/loader.js
|
|
143
|
+
var getObjectPointerFromName = (name) => {
|
|
144
|
+
const nameTokens = name.split(".");
|
|
145
|
+
const iz = nameTokens.length;
|
|
146
|
+
let objPointer = global;
|
|
147
|
+
let i = 0;
|
|
148
|
+
let token;
|
|
149
|
+
let parentPointer;
|
|
150
|
+
for (; i < iz; i++) {
|
|
151
|
+
token = nameTokens[i];
|
|
152
|
+
if (objPointer[token] === void 0) {
|
|
153
|
+
objPointer[token] = {};
|
|
154
|
+
}
|
|
155
|
+
parentPointer = objPointer;
|
|
156
|
+
objPointer = objPointer[token];
|
|
157
|
+
}
|
|
158
|
+
return {
|
|
159
|
+
current: objPointer,
|
|
160
|
+
token,
|
|
161
|
+
parent: parentPointer
|
|
162
|
+
};
|
|
163
|
+
};
|
|
164
|
+
var loadClosureFactory = (url, cacheBusting, charset, pre, post, loaded) => {
|
|
165
|
+
url = typeof url === "string" ? url : "";
|
|
166
|
+
url += cacheBusting;
|
|
167
|
+
pre = $.isFunction(pre) ? pre : function() {
|
|
168
|
+
};
|
|
169
|
+
post = $.isFunction(post) ? post : function() {
|
|
170
|
+
};
|
|
171
|
+
loaded = $.isFunction(loaded) ? loaded : function() {
|
|
172
|
+
};
|
|
173
|
+
const loadClosureFunction = function(callSpecifiedFunction) {
|
|
174
|
+
if (!$.isFunction(callSpecifiedFunction)) {
|
|
175
|
+
callSpecifiedFunction = function() {
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
if (!loadClosureFunction.executed) {
|
|
179
|
+
loadClosureFunction.executed = true;
|
|
180
|
+
loadClosureFunction.stack = [callSpecifiedFunction];
|
|
181
|
+
new SyncLoader().next(pre).next(url).next(loaded).next(() => {
|
|
182
|
+
while (loadClosureFunction.stack.length) {
|
|
183
|
+
loadClosureFunction.stack.shift()();
|
|
184
|
+
}
|
|
185
|
+
}).load(() => {
|
|
186
|
+
post();
|
|
187
|
+
const name = url.match(".+/(.+?).[a-z]+([?#;].*)?$")[1];
|
|
188
|
+
void ACMS.events?.emit("loader.script.ready", { name });
|
|
189
|
+
ACMS.dispatchEvent(`${name}Ready`);
|
|
190
|
+
});
|
|
191
|
+
} else {
|
|
192
|
+
loadClosureFunction.stack.push(callSpecifiedFunction);
|
|
193
|
+
return true;
|
|
194
|
+
}
|
|
195
|
+
};
|
|
196
|
+
return loadClosureFunction;
|
|
197
|
+
};
|
|
198
|
+
var assignLoadClosure = (name, loadClosure, del) => {
|
|
199
|
+
const pointerInfo = getObjectPointerFromName(name);
|
|
200
|
+
const parentPointer = pointerInfo.parent;
|
|
201
|
+
const { token } = pointerInfo;
|
|
202
|
+
const placeholderFunction = function(...args) {
|
|
203
|
+
const scope = this;
|
|
204
|
+
if (del) {
|
|
205
|
+
global[name.replace(/\..*$/, "")] = void 0;
|
|
206
|
+
}
|
|
207
|
+
return loadClosure(() => {
|
|
208
|
+
let func;
|
|
209
|
+
try {
|
|
210
|
+
func = getObjectPointerFromName(name).current;
|
|
211
|
+
} catch (e) {
|
|
212
|
+
return false;
|
|
213
|
+
}
|
|
214
|
+
if (typeof func !== "function") {
|
|
215
|
+
return false;
|
|
216
|
+
}
|
|
217
|
+
if (func === placeholderFunction) {
|
|
218
|
+
return false;
|
|
219
|
+
}
|
|
220
|
+
let key;
|
|
221
|
+
let _key;
|
|
222
|
+
for (key in placeholderFunction) {
|
|
223
|
+
if (func[key]) {
|
|
224
|
+
for (_key in placeholderFunction[key]) {
|
|
225
|
+
func[key][_key] = placeholderFunction[key][_key];
|
|
226
|
+
}
|
|
227
|
+
} else {
|
|
228
|
+
func[key] = placeholderFunction[key];
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
return func.apply(scope, args);
|
|
232
|
+
});
|
|
233
|
+
};
|
|
234
|
+
parentPointer[token] = placeholderFunction;
|
|
235
|
+
};
|
|
236
|
+
var loadClosureFactoryCss = (url, cacheBusting, charset = "", prepend = false) => {
|
|
237
|
+
if (!url) {
|
|
238
|
+
return false;
|
|
239
|
+
}
|
|
240
|
+
url += cacheBusting;
|
|
241
|
+
const link = window.document.createElement("link");
|
|
242
|
+
link.type = "text/css";
|
|
243
|
+
link.rel = "stylesheet";
|
|
244
|
+
if (charset) {
|
|
245
|
+
link.charset = charset;
|
|
246
|
+
}
|
|
247
|
+
link.href = url;
|
|
248
|
+
const head = window.document.getElementsByTagName("head")[0];
|
|
249
|
+
if (prepend && head.firstChild) {
|
|
250
|
+
head.insertBefore(link, head.firstChild);
|
|
251
|
+
} else {
|
|
252
|
+
head.appendChild(link);
|
|
253
|
+
}
|
|
254
|
+
return true;
|
|
255
|
+
};
|
|
256
|
+
export {
|
|
257
|
+
SyncLoader as AcmsSyncLoader,
|
|
258
|
+
assignLoadClosure,
|
|
259
|
+
loadClosureFactory,
|
|
260
|
+
loadClosureFactoryCss
|
|
261
|
+
};
|
|
262
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/loader/sync-loader.js","../../src/loader/loader.js"],"sourcesContent":["/**\n * @typedef {Object} SyncLoaderOptions\n * @property {string} [charset] - Character set to use for loading scripts.\n * @property {string} [type] - The type attribute for script tags, default is 'text/javascript'.\n * @property {Function} [error] - Callback function to handle errors.\n */\n\n/**\n * @typedef {Object} SyncLoaderQueue\n * @property {string[]} srcAry - Array of source URLs to be loaded.\n * @property {Array<Promise<any>>} asyncAry - Array of promises representing async tasks.\n * @property {string[]} loaded - Array of loaded source URLs.\n * @property {Function} add - Method to add a source URL to the queue.\n */\n\nexport default class SyncLoader {\n /**\n * constructor\n *\n * @param {SyncLoaderOptions} [options={}] - Options for configuring the SyncLoader instance.\n */\n constructor(options = {}) {\n this.charset = options.charset;\n this.type = options.type || 'text/javascript';\n this.error = options.error || function () {};\n\n /** @type {SyncLoaderQueue} */\n this.queue = {\n srcAry: [],\n asyncAry: [],\n loaded: [],\n add(src) {\n this.srcAry.push(src);\n },\n };\n }\n\n /**\n * Promiseのthenのようなもの\n *\n * @param {string|Function} arg - The source URL or a function to execute.\n * @param {boolean} async - Whether to load the resource asynchronously.\n * @param {Function} [callback] - Callback function to execute after loading.\n * @returns {this} - Returns the instance for method chaining.\n */\n next(arg, async, callback) {\n if (async) {\n this._load(arg, true, callback);\n } else {\n this.queue.add(arg);\n }\n return this;\n }\n\n /**\n * ロード開始\n *\n * @param {Function} [callback] - Callback function to execute after all resources are loaded.\n */\n load(callback) {\n this.complete = callback || function () {};\n this.assign();\n }\n\n /**\n * 次の要素取得\n *\n * @returns {boolean} - Returns false if no more elements to process.\n */\n assign() {\n const src = this.queue.srcAry.shift();\n\n if (src === undefined) {\n this.complete();\n return false;\n }\n if (typeof src === 'function') {\n this._exe(src);\n } else {\n this._load(src);\n }\n }\n\n /**\n * 登録された処理を実行(Promise対応)\n *\n * @param {Function} callback - The function to execute.\n * @private\n */\n _exe(callback) {\n const handler = callback || function () {};\n const result = handler(this);\n const self = this;\n\n if (result instanceof Promise || (result && typeof result.then === 'function')) {\n result.then(() => {\n self.assign();\n });\n } else {\n self.assign();\n }\n }\n\n /**\n * リソースの読み込み\n *\n * @param {string} src - The source URL to load.\n * @param {boolean} [async=false] - Whether to load the resource asynchronously.\n * @param {Function} [callback] - Callback function to execute after loading.\n * @private\n */\n _load(src, async = false, callback = () => {}) {\n const tag = document.createElement('script');\n const head = document.getElementsByTagName('script')[0];\n\n tag.src = src;\n tag.type = this.type;\n tag.onerror = () => {\n this.error();\n };\n if (this.charset) {\n tag.charset = this.charset;\n }\n\n if (async) {\n head.parentNode.insertBefore(tag, head.nextSibling);\n tag.onload = () => {\n if (!this._exists(src)) {\n this.queue.loaded.push(src);\n callback = callback || function () {};\n callback();\n }\n };\n } else {\n tag.onload = () => {\n if (!this._exists(src)) {\n this.queue.loaded.push(src);\n this.assign();\n }\n };\n head.parentNode.insertBefore(tag, head.nextSibling);\n }\n\n // for IE\n tag.onreadystatechange = () => {\n if (!tag.readyState || tag.readyState === 'loaded' || tag.readyState === 'complete') {\n tag.onreadystatechange = null;\n tag.onload();\n }\n };\n }\n\n /**\n * キューのチェック\n *\n * @param {string} src - The source URL to check.\n * @returns {boolean} - Returns true if the source URL is already loaded.\n * @private\n */\n _exists(src) {\n return this.queue.loaded.includes(src);\n }\n}\n","import AcmsSyncLoader from './sync-loader';\n\n/**\n * 名前からオブジェクトへの参照を取得する\n *\n * @param {String} name\n */\nconst getObjectPointerFromName = (name) => {\n const nameTokens = name.split('.');\n const iz = nameTokens.length;\n let objPointer = global;\n let i = 0;\n let token;\n let parentPointer;\n\n for (; i < iz; i++) {\n token = nameTokens[i];\n if (objPointer[token] === undefined) {\n objPointer[token] = {};\n }\n\n // 直前のポインタ(親オブジェクト)を残す\n parentPointer = objPointer;\n\n // ポインタを更新する\n objPointer = objPointer[token];\n }\n\n return {\n current: objPointer,\n token,\n parent: parentPointer,\n };\n};\n\n/**\n * loadClosureFactory\n *\n * @param {String} url ロードするリソースのURL\n * @param {String} cacheBusting URL に付与するキャッシュバスティング用クエリ文字列\n * @param {String} [charset] 文字コード指定\n * @param {Function} [pre] ロード前実行\n * @param {Function} [post] ロード後実行\n * @param {Function} [loaded]\n */\nconst loadClosureFactory = (url, cacheBusting, charset, pre, post, loaded) => {\n url = typeof url === 'string' ? url : '';\n url += cacheBusting;\n pre = $.isFunction(pre) ? pre : function () {};\n post = $.isFunction(post) ? post : function () {};\n loaded = $.isFunction(loaded) ? loaded : function () {};\n\n /**\n * loadClosure\n */\n const loadClosureFunction = function (callSpecifiedFunction) {\n if (!$.isFunction(callSpecifiedFunction)) {\n callSpecifiedFunction = function () {};\n }\n\n if (!loadClosureFunction.executed) {\n loadClosureFunction.executed = true;\n loadClosureFunction.stack = [callSpecifiedFunction];\n\n new AcmsSyncLoader()\n .next(pre)\n .next(url)\n .next(loaded)\n .next(() => {\n while (loadClosureFunction.stack.length) {\n loadClosureFunction.stack.shift()();\n }\n })\n .load(() => {\n post();\n // レガシー名(`${name}Ready`)は動的名のため AcmsEventMap には型登録できない\n // (HOOKS.md「起動系イベント」参照)。新バスは命名規則({domain}.{action}.{phase})に\n // 合わせた固定名 `loader.script.ready` を使い、動的な部分は payload の `name` に渡す。\n const name = url.match('.+/(.+?).[a-z]+([?#;].*)?$')[1];\n void ACMS.events?.emit('loader.script.ready', { name });\n ACMS.dispatchEvent(`${name}Ready`);\n });\n } else {\n loadClosureFunction.stack.push(callSpecifiedFunction);\n return true;\n }\n };\n return loadClosureFunction;\n};\n\n/**\n * assignLoadClosure\n *\n * @param {String} name オブジェクト名\n * @param {Function} loadClosure スクリプトロードのクロージャ\n * @param {Boolean} [del] 削除フラグ\n */\nconst assignLoadClosure = (name, loadClosure, del) => {\n const pointerInfo = getObjectPointerFromName(name);\n const parentPointer = pointerInfo.parent;\n const { token } = pointerInfo;\n\n //-------\n // proxy\n //\n // 変数にするとただの参照代入になるのでプロパティとしてアクセス\n // @example\n // ACMS.Dispatch['Edit'] = function() {...};\n const placeholderFunction = function (...args) {\n const scope = this;\n\n if (del) {\n global[name.replace(/\\..*$/, '')] = undefined;\n }\n\n /**\n * loadClosure <- callSpecifiedFunction\n */\n return loadClosure(() => {\n let func;\n\n try {\n func = getObjectPointerFromName(name).current;\n } catch (e) {\n return false;\n }\n\n if (typeof func !== 'function') {\n return false;\n }\n if (func === placeholderFunction) {\n return false;\n }\n\n //--------------------\n // take over property\n let key;\n let _key;\n\n for (key in placeholderFunction) {\n if (func[key]) {\n for (_key in placeholderFunction[key]) {\n func[key][_key] = placeholderFunction[key][_key];\n }\n } else {\n func[key] = placeholderFunction[key];\n }\n }\n return func.apply(scope, args);\n });\n };\n parentPointer[token] = placeholderFunction;\n};\n\n/**\n * cssのロード\n *\n * @param {string} url\n * @param {string} cacheBusting URL に付与するキャッシュバスティング用クエリ文字列\n * @param {?string} charset\n * @param {?boolean} prepend\n * @return {boolean}\n */\nconst loadClosureFactoryCss = (url, cacheBusting, charset = '', prepend = false) => {\n if (!url) {\n return false;\n }\n url += cacheBusting;\n\n const link = window.document.createElement('link');\n link.type = 'text/css';\n link.rel = 'stylesheet';\n if (charset) {\n link.charset = charset;\n }\n link.href = url;\n\n const head = window.document.getElementsByTagName('head')[0];\n\n if (prepend && head.firstChild) {\n head.insertBefore(link, head.firstChild);\n } else {\n head.appendChild(link);\n }\n return true;\n};\n\nexport { loadClosureFactory, loadClosureFactoryCss, assignLoadClosure };\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* loadClosureFactory
|
|
3
|
+
*
|
|
4
|
+
* @param {String} url ロードするリソースのURL
|
|
5
|
+
* @param {String} cacheBusting URL に付与するキャッシュバスティング用クエリ文字列
|
|
6
|
+
* @param {String} [charset] 文字コード指定
|
|
7
|
+
* @param {Function} [pre] ロード前実行
|
|
8
|
+
* @param {Function} [post] ロード後実行
|
|
9
|
+
* @param {Function} [loaded]
|
|
10
|
+
*/
|
|
11
|
+
export function loadClosureFactory(url: string, cacheBusting: string, charset?: string, pre?: Function, post?: Function, loaded?: Function): (callSpecifiedFunction: any) => true | undefined;
|
|
12
|
+
/**
|
|
13
|
+
* cssのロード
|
|
14
|
+
*
|
|
15
|
+
* @param {string} url
|
|
16
|
+
* @param {string} cacheBusting URL に付与するキャッシュバスティング用クエリ文字列
|
|
17
|
+
* @param {?string} charset
|
|
18
|
+
* @param {?boolean} prepend
|
|
19
|
+
* @return {boolean}
|
|
20
|
+
*/
|
|
21
|
+
export function loadClosureFactoryCss(url: string, cacheBusting: string, charset?: string | null, prepend?: boolean | null): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* assignLoadClosure
|
|
24
|
+
*
|
|
25
|
+
* @param {String} name オブジェクト名
|
|
26
|
+
* @param {Function} loadClosure スクリプトロードのクロージャ
|
|
27
|
+
* @param {Boolean} [del] 削除フラグ
|
|
28
|
+
*/
|
|
29
|
+
export function assignLoadClosure(name: string, loadClosure: Function, del?: boolean): void;
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @typedef {Object} SyncLoaderOptions
|
|
3
|
+
* @property {string} [charset] - Character set to use for loading scripts.
|
|
4
|
+
* @property {string} [type] - The type attribute for script tags, default is 'text/javascript'.
|
|
5
|
+
* @property {Function} [error] - Callback function to handle errors.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* @typedef {Object} SyncLoaderQueue
|
|
9
|
+
* @property {string[]} srcAry - Array of source URLs to be loaded.
|
|
10
|
+
* @property {Array<Promise<any>>} asyncAry - Array of promises representing async tasks.
|
|
11
|
+
* @property {string[]} loaded - Array of loaded source URLs.
|
|
12
|
+
* @property {Function} add - Method to add a source URL to the queue.
|
|
13
|
+
*/
|
|
14
|
+
export default class SyncLoader {
|
|
15
|
+
/**
|
|
16
|
+
* constructor
|
|
17
|
+
*
|
|
18
|
+
* @param {SyncLoaderOptions} [options={}] - Options for configuring the SyncLoader instance.
|
|
19
|
+
*/
|
|
20
|
+
constructor(options?: SyncLoaderOptions);
|
|
21
|
+
charset: string | undefined;
|
|
22
|
+
type: string;
|
|
23
|
+
error: Function;
|
|
24
|
+
/** @type {SyncLoaderQueue} */
|
|
25
|
+
queue: SyncLoaderQueue;
|
|
26
|
+
/**
|
|
27
|
+
* Promiseのthenのようなもの
|
|
28
|
+
*
|
|
29
|
+
* @param {string|Function} arg - The source URL or a function to execute.
|
|
30
|
+
* @param {boolean} async - Whether to load the resource asynchronously.
|
|
31
|
+
* @param {Function} [callback] - Callback function to execute after loading.
|
|
32
|
+
* @returns {this} - Returns the instance for method chaining.
|
|
33
|
+
*/
|
|
34
|
+
next(arg: string | Function, async: boolean, callback?: Function): this;
|
|
35
|
+
/**
|
|
36
|
+
* ロード開始
|
|
37
|
+
*
|
|
38
|
+
* @param {Function} [callback] - Callback function to execute after all resources are loaded.
|
|
39
|
+
*/
|
|
40
|
+
load(callback?: Function): void;
|
|
41
|
+
complete: Function | undefined;
|
|
42
|
+
/**
|
|
43
|
+
* 次の要素取得
|
|
44
|
+
*
|
|
45
|
+
* @returns {boolean} - Returns false if no more elements to process.
|
|
46
|
+
*/
|
|
47
|
+
assign(): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* 登録された処理を実行(Promise対応)
|
|
50
|
+
*
|
|
51
|
+
* @param {Function} callback - The function to execute.
|
|
52
|
+
* @private
|
|
53
|
+
*/
|
|
54
|
+
private _exe;
|
|
55
|
+
/**
|
|
56
|
+
* リソースの読み込み
|
|
57
|
+
*
|
|
58
|
+
* @param {string} src - The source URL to load.
|
|
59
|
+
* @param {boolean} [async=false] - Whether to load the resource asynchronously.
|
|
60
|
+
* @param {Function} [callback] - Callback function to execute after loading.
|
|
61
|
+
* @private
|
|
62
|
+
*/
|
|
63
|
+
private _load;
|
|
64
|
+
/**
|
|
65
|
+
* キューのチェック
|
|
66
|
+
*
|
|
67
|
+
* @param {string} src - The source URL to check.
|
|
68
|
+
* @returns {boolean} - Returns true if the source URL is already loaded.
|
|
69
|
+
* @private
|
|
70
|
+
*/
|
|
71
|
+
private _exists;
|
|
72
|
+
}
|
|
73
|
+
export type SyncLoaderOptions = {
|
|
74
|
+
/**
|
|
75
|
+
* - Character set to use for loading scripts.
|
|
76
|
+
*/
|
|
77
|
+
charset?: string | undefined;
|
|
78
|
+
/**
|
|
79
|
+
* - The type attribute for script tags, default is 'text/javascript'.
|
|
80
|
+
*/
|
|
81
|
+
type?: string | undefined;
|
|
82
|
+
/**
|
|
83
|
+
* - Callback function to handle errors.
|
|
84
|
+
*/
|
|
85
|
+
error?: Function | undefined;
|
|
86
|
+
};
|
|
87
|
+
export type SyncLoaderQueue = {
|
|
88
|
+
/**
|
|
89
|
+
* - Array of source URLs to be loaded.
|
|
90
|
+
*/
|
|
91
|
+
srcAry: string[];
|
|
92
|
+
/**
|
|
93
|
+
* - Array of promises representing async tasks.
|
|
94
|
+
*/
|
|
95
|
+
asyncAry: Array<Promise<any>>;
|
|
96
|
+
/**
|
|
97
|
+
* - Array of loaded source URLs.
|
|
98
|
+
*/
|
|
99
|
+
loaded: string[];
|
|
100
|
+
/**
|
|
101
|
+
* - Method to add a source URL to the queue.
|
|
102
|
+
*/
|
|
103
|
+
add: Function;
|
|
104
|
+
};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
// src/open-street-map/open-street-map.js
|
|
2
|
+
import Leaflet from "leaflet";
|
|
3
|
+
import icon from "leaflet/dist/images/marker-icon.png";
|
|
4
|
+
import icon2x from "leaflet/dist/images/marker-icon-2x.png";
|
|
5
|
+
import iconShadow from "leaflet/dist/images/marker-shadow.png";
|
|
6
|
+
import "leaflet/dist/leaflet.css";
|
|
7
|
+
import "leaflet-gesture-handling/dist/leaflet-gesture-handling.css";
|
|
8
|
+
import { GestureHandling } from "leaflet-gesture-handling";
|
|
9
|
+
var open_street_map_default = (item) => {
|
|
10
|
+
if (item.already === true) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
item.already = true;
|
|
14
|
+
Leaflet.Map.addInitHook("addHandler", "gestureHandling", GestureHandling);
|
|
15
|
+
const multiple = !!item.getAttribute("data-multiple");
|
|
16
|
+
const lat = item.getAttribute("data-lat");
|
|
17
|
+
const lng = item.getAttribute("data-lng");
|
|
18
|
+
const zoom = item.getAttribute("data-zoom");
|
|
19
|
+
const msg = item.getAttribute("data-msg");
|
|
20
|
+
const markers = item.getAttribute("data-markers");
|
|
21
|
+
const messages = item.getAttribute("data-messages");
|
|
22
|
+
const map = Leaflet.map(item, {
|
|
23
|
+
gestureHandling: true
|
|
24
|
+
}).setView([lat, lng], zoom);
|
|
25
|
+
delete Leaflet.Icon.Default.prototype._getIconUrl;
|
|
26
|
+
Leaflet.Icon.Default.mergeOptions({
|
|
27
|
+
iconUrl: icon,
|
|
28
|
+
iconRetinaUrl: icon2x,
|
|
29
|
+
shadowUrl: iconShadow
|
|
30
|
+
});
|
|
31
|
+
Leaflet.tileLayer(ACMS.Config.openStreetMapTileLayer, {
|
|
32
|
+
attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
|
|
33
|
+
}).addTo(map);
|
|
34
|
+
if (multiple && markers) {
|
|
35
|
+
const points = markers.split("|");
|
|
36
|
+
const panels = messages.split("[[:split:]]");
|
|
37
|
+
points.forEach((point, i) => {
|
|
38
|
+
const latlng = point.split(",");
|
|
39
|
+
if (latlng.length === 2) {
|
|
40
|
+
const view = Leaflet.marker([latlng[0].trim(), latlng[1].trim()], {
|
|
41
|
+
draggable: false
|
|
42
|
+
}).addTo(map);
|
|
43
|
+
if (panels[i]) {
|
|
44
|
+
view.bindPopup(panels[i]);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
} else {
|
|
49
|
+
const view = Leaflet.marker(map.getCenter(), {
|
|
50
|
+
draggable: false
|
|
51
|
+
}).addTo(map);
|
|
52
|
+
if (msg) {
|
|
53
|
+
view.bindPopup(msg);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
export {
|
|
58
|
+
open_street_map_default as default
|
|
59
|
+
};
|
|
60
|
+
//# sourceMappingURL=open-street-map.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/open-street-map/open-street-map.js"],"sourcesContent":["import Leaflet from 'leaflet';\nimport icon from 'leaflet/dist/images/marker-icon.png';\nimport icon2x from 'leaflet/dist/images/marker-icon-2x.png';\nimport iconShadow from 'leaflet/dist/images/marker-shadow.png';\nimport 'leaflet/dist/leaflet.css';\nimport 'leaflet-gesture-handling/dist/leaflet-gesture-handling.css';\nimport { GestureHandling } from 'leaflet-gesture-handling';\n\nexport default (item) => {\n if (item.already === true) {\n return;\n }\n item.already = true;\n\n Leaflet.Map.addInitHook('addHandler', 'gestureHandling', GestureHandling);\n\n const multiple = !!item.getAttribute('data-multiple');\n const lat = item.getAttribute('data-lat');\n const lng = item.getAttribute('data-lng');\n const zoom = item.getAttribute('data-zoom');\n const msg = item.getAttribute('data-msg');\n const markers = item.getAttribute('data-markers');\n const messages = item.getAttribute('data-messages');\n const map = Leaflet.map(item, {\n gestureHandling: true,\n }).setView([lat, lng], zoom);\n\n delete Leaflet.Icon.Default.prototype._getIconUrl;\n Leaflet.Icon.Default.mergeOptions({\n iconUrl: icon,\n iconRetinaUrl: icon2x,\n shadowUrl: iconShadow,\n });\n\n Leaflet.tileLayer(ACMS.Config.openStreetMapTileLayer, {\n attribution: '© <a href=\"https://www.openstreetmap.org/copyright\">OpenStreetMap</a> contributors',\n }).addTo(map);\n\n if (multiple && markers) {\n /**\n * Multiple marker\n */\n const points = markers.split('|');\n const panels = messages.split('[[:split:]]');\n points.forEach((point, i) => {\n const latlng = point.split(',');\n if (latlng.length === 2) {\n const view = Leaflet.marker([latlng[0].trim(), latlng[1].trim()], {\n draggable: false,\n }).addTo(map);\n if (panels[i]) {\n view.bindPopup(panels[i]);\n }\n }\n });\n } else {\n /**\n * Single marker\n */\n const view = Leaflet.marker(map.getCenter(), {\n draggable: false,\n }).addTo(map);\n if (msg) {\n view.bindPopup(msg);\n }\n }\n};\n"],"mappings":";AAAA,OAAO,aAAa;AACpB,OAAO,UAAU;AACjB,OAAO,YAAY;AACnB,OAAO,gBAAgB;AACvB,OAAO;AACP,OAAO;AACP,SAAS,uBAAuB;AAEhC,IAAO,0BAAQ,CAAC,SAAS;AACvB,MAAI,KAAK,YAAY,MAAM;AACzB;AAAA,EACF;AACA,OAAK,UAAU;AAEf,UAAQ,IAAI,YAAY,cAAc,mBAAmB,eAAe;AAExE,QAAM,WAAW,CAAC,CAAC,KAAK,aAAa,eAAe;AACpD,QAAM,MAAM,KAAK,aAAa,UAAU;AACxC,QAAM,MAAM,KAAK,aAAa,UAAU;AACxC,QAAM,OAAO,KAAK,aAAa,WAAW;AAC1C,QAAM,MAAM,KAAK,aAAa,UAAU;AACxC,QAAM,UAAU,KAAK,aAAa,cAAc;AAChD,QAAM,WAAW,KAAK,aAAa,eAAe;AAClD,QAAM,MAAM,QAAQ,IAAI,MAAM;AAAA,IAC5B,iBAAiB;AAAA,EACnB,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,GAAG,IAAI;AAE3B,SAAO,QAAQ,KAAK,QAAQ,UAAU;AACtC,UAAQ,KAAK,QAAQ,aAAa;AAAA,IAChC,SAAS;AAAA,IACT,eAAe;AAAA,IACf,WAAW;AAAA,EACb,CAAC;AAED,UAAQ,UAAU,KAAK,OAAO,wBAAwB;AAAA,IACpD,aAAa;AAAA,EACf,CAAC,EAAE,MAAM,GAAG;AAEZ,MAAI,YAAY,SAAS;AAIvB,UAAM,SAAS,QAAQ,MAAM,GAAG;AAChC,UAAM,SAAS,SAAS,MAAM,aAAa;AAC3C,WAAO,QAAQ,CAAC,OAAO,MAAM;AAC3B,YAAM,SAAS,MAAM,MAAM,GAAG;AAC9B,UAAI,OAAO,WAAW,GAAG;AACvB,cAAM,OAAO,QAAQ,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,EAAE,KAAK,CAAC,GAAG;AAAA,UAChE,WAAW;AAAA,QACb,CAAC,EAAE,MAAM,GAAG;AACZ,YAAI,OAAO,CAAC,GAAG;AACb,eAAK,UAAU,OAAO,CAAC,CAAC;AAAA,QAC1B;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH,OAAO;AAIL,UAAM,OAAO,QAAQ,OAAO,IAAI,UAAU,GAAG;AAAA,MAC3C,WAAW;AAAA,IACb,CAAC,EAAE,MAAM,GAAG;AACZ,QAAI,KAAK;AACP,WAAK,UAAU,GAAG;AAAA,IACpB;AAAA,EACF;AACF;","names":[]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { OpenStreetMapPickerOptions } from './open-street-map-picker.js';
|
|
2
|
+
import OpenStreetMapPicker from './open-street-map-picker.js';
|
|
3
|
+
|
|
4
|
+
export default function setupOpenStreetMapPicker(element: HTMLElement & {
|
|
5
|
+
openStreetMapPicker?: OpenStreetMapPicker;
|
|
6
|
+
}, options?: Partial<OpenStreetMapPickerOptions>): OpenStreetMapPicker;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import {
|
|
2
|
+
OpenStreetMapPicker
|
|
3
|
+
} from "../../chunk-W7TT2YZB.mjs";
|
|
4
|
+
|
|
5
|
+
// src/open-street-map/picker/index.ts
|
|
6
|
+
import Leaflet from "leaflet";
|
|
7
|
+
import { on } from "@ablogcms/events";
|
|
8
|
+
import icon from "leaflet/dist/images/marker-icon.png";
|
|
9
|
+
import icon2x from "leaflet/dist/images/marker-icon-2x.png";
|
|
10
|
+
import iconShadow from "leaflet/dist/images/marker-shadow.png";
|
|
11
|
+
import "leaflet/dist/leaflet.css";
|
|
12
|
+
var defaultOptions = {
|
|
13
|
+
searchInput: ".js-osm-search",
|
|
14
|
+
searchBtn: ".js-osm-search-btn",
|
|
15
|
+
lngInput: ".js-osm-lng",
|
|
16
|
+
latInput: ".js-osm-lat",
|
|
17
|
+
zoomInput: ".js-osm-zoom",
|
|
18
|
+
msgInput: ".js-osm-msg",
|
|
19
|
+
map: ".js-open-street-map-picker"
|
|
20
|
+
};
|
|
21
|
+
function setupOpenStreetMapPicker(element, options) {
|
|
22
|
+
if (element.openStreetMapPicker) {
|
|
23
|
+
return element.openStreetMapPicker;
|
|
24
|
+
}
|
|
25
|
+
delete Leaflet.Icon.Default.prototype._getIconUrl;
|
|
26
|
+
Leaflet.Icon.Default.mergeOptions({
|
|
27
|
+
iconUrl: icon,
|
|
28
|
+
iconRetinaUrl: icon2x,
|
|
29
|
+
shadowUrl: iconShadow
|
|
30
|
+
});
|
|
31
|
+
const picker = new OpenStreetMapPicker(element, {
|
|
32
|
+
...defaultOptions,
|
|
33
|
+
...options
|
|
34
|
+
});
|
|
35
|
+
picker.run();
|
|
36
|
+
on("admin.delayed-contents.change", () => {
|
|
37
|
+
picker.invalidateSize();
|
|
38
|
+
return void 0;
|
|
39
|
+
});
|
|
40
|
+
on("geo.info-add.after", () => {
|
|
41
|
+
picker.invalidateSize();
|
|
42
|
+
return void 0;
|
|
43
|
+
});
|
|
44
|
+
element.openStreetMapPicker = picker;
|
|
45
|
+
return picker;
|
|
46
|
+
}
|
|
47
|
+
export {
|
|
48
|
+
setupOpenStreetMapPicker as default
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/open-street-map/picker/index.ts"],"sourcesContent":["import Leaflet from 'leaflet';\nimport { on } from '@ablogcms/events';\nimport icon from 'leaflet/dist/images/marker-icon.png';\nimport icon2x from 'leaflet/dist/images/marker-icon-2x.png';\nimport iconShadow from 'leaflet/dist/images/marker-shadow.png';\nimport type { OpenStreetMapPickerOptions } from './open-street-map-picker';\nimport OpenStreetMapPicker from './open-street-map-picker';\nimport 'leaflet/dist/leaflet.css';\n\nconst defaultOptions: Partial<OpenStreetMapPickerOptions> = {\n searchInput: '.js-osm-search',\n searchBtn: '.js-osm-search-btn',\n lngInput: '.js-osm-lng',\n latInput: '.js-osm-lat',\n zoomInput: '.js-osm-zoom',\n msgInput: '.js-osm-msg',\n map: '.js-open-street-map-picker',\n};\n\nexport default function setupOpenStreetMapPicker(\n element: HTMLElement & { openStreetMapPicker?: OpenStreetMapPicker },\n options?: Partial<OpenStreetMapPickerOptions>\n): OpenStreetMapPicker {\n if (element.openStreetMapPicker) {\n return element.openStreetMapPicker;\n }\n\n // @ts-expect-error: Leafletの型定義の問題を回避\n delete Leaflet.Icon.Default.prototype._getIconUrl;\n Leaflet.Icon.Default.mergeOptions({\n iconUrl: icon,\n iconRetinaUrl: icon2x,\n shadowUrl: iconShadow,\n });\n\n const picker = new OpenStreetMapPicker(element, {\n ...defaultOptions,\n ...options,\n });\n\n picker.run();\n on('admin.delayed-contents.change', () => {\n picker.invalidateSize();\n return undefined;\n });\n\n on('geo.info-add.after', () => {\n picker.invalidateSize();\n return undefined;\n });\n\n element.openStreetMapPicker = picker;\n\n return picker;\n}\n"],"mappings":";;;;;AAAA,OAAO,aAAa;AACpB,SAAS,UAAU;AACnB,OAAO,UAAU;AACjB,OAAO,YAAY;AACnB,OAAO,gBAAgB;AAGvB,OAAO;AAEP,IAAM,iBAAsD;AAAA,EAC1D,aAAa;AAAA,EACb,WAAW;AAAA,EACX,UAAU;AAAA,EACV,UAAU;AAAA,EACV,WAAW;AAAA,EACX,UAAU;AAAA,EACV,KAAK;AACP;AAEe,SAAR,yBACL,SACA,SACqB;AACrB,MAAI,QAAQ,qBAAqB;AAC/B,WAAO,QAAQ;AAAA,EACjB;AAGA,SAAO,QAAQ,KAAK,QAAQ,UAAU;AACtC,UAAQ,KAAK,QAAQ,aAAa;AAAA,IAChC,SAAS;AAAA,IACT,eAAe;AAAA,IACf,WAAW;AAAA,EACb,CAAC;AAED,QAAM,SAAS,IAAI,oBAAoB,SAAS;AAAA,IAC9C,GAAG;AAAA,IACH,GAAG;AAAA,EACL,CAAC;AAED,SAAO,IAAI;AACX,KAAG,iCAAiC,MAAM;AACxC,WAAO,eAAe;AACtB,WAAO;AAAA,EACT,CAAC;AAED,KAAG,sBAAsB,MAAM;AAC7B,WAAO,eAAe;AACtB,WAAO;AAAA,EACT,CAAC;AAED,UAAQ,sBAAsB;AAE9B,SAAO;AACT;","names":[]}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import Leaflet from 'leaflet';
|
|
2
|
+
export interface OpenStreetMapPickerOptions {
|
|
3
|
+
searchInput: string;
|
|
4
|
+
searchBtn: string;
|
|
5
|
+
lngInput: string;
|
|
6
|
+
latInput: string;
|
|
7
|
+
zoomInput: string;
|
|
8
|
+
msgInput: string;
|
|
9
|
+
map: string;
|
|
10
|
+
tile: string;
|
|
11
|
+
onChange?: (values: UpdatePinValues) => void;
|
|
12
|
+
}
|
|
13
|
+
export interface UpdatePinOptions {
|
|
14
|
+
disableViewUpdate?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface UpdatePinValues {
|
|
17
|
+
lat: number;
|
|
18
|
+
lng: number;
|
|
19
|
+
zoom: number;
|
|
20
|
+
msg: string;
|
|
21
|
+
}
|
|
22
|
+
export default class OpenStreetMapPicker {
|
|
23
|
+
private options;
|
|
24
|
+
private map;
|
|
25
|
+
private marker;
|
|
26
|
+
private lat;
|
|
27
|
+
private lng;
|
|
28
|
+
private zoom;
|
|
29
|
+
private msg;
|
|
30
|
+
private msgEle;
|
|
31
|
+
private latEle;
|
|
32
|
+
private lngEle;
|
|
33
|
+
private zoomEle;
|
|
34
|
+
private searchInputEle;
|
|
35
|
+
private searchBtn;
|
|
36
|
+
private parentForm;
|
|
37
|
+
private bindPopupFlag;
|
|
38
|
+
private latinputListener;
|
|
39
|
+
private latchangeListener;
|
|
40
|
+
private lnginputListener;
|
|
41
|
+
private lngchangeListener;
|
|
42
|
+
private zoominputListener;
|
|
43
|
+
private zoomchangeListener;
|
|
44
|
+
private msginputListener;
|
|
45
|
+
private formListener;
|
|
46
|
+
private searchBtnListener;
|
|
47
|
+
constructor(elementOrSelector: string | HTMLElement, options?: Partial<OpenStreetMapPickerOptions>);
|
|
48
|
+
getMap(): Leaflet.Map;
|
|
49
|
+
setValues(): OpenStreetMapPicker;
|
|
50
|
+
invalidateSize(): OpenStreetMapPicker;
|
|
51
|
+
run(): OpenStreetMapPicker;
|
|
52
|
+
setEvent(): void;
|
|
53
|
+
updatePin(values: Partial<UpdatePinValues>, options?: UpdatePinOptions): OpenStreetMapPicker;
|
|
54
|
+
destroy(): void;
|
|
55
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export default class Pdf2Image {
|
|
2
|
+
/**
|
|
3
|
+
* Constructor
|
|
4
|
+
*
|
|
5
|
+
* @param url
|
|
6
|
+
*/
|
|
7
|
+
constructor(url: any);
|
|
8
|
+
url: any;
|
|
9
|
+
baseUrl: string;
|
|
10
|
+
currentPage: number;
|
|
11
|
+
numPages: number;
|
|
12
|
+
document: import("pdfjs-dist/types/src/display/api").PDFDocumentProxy | null;
|
|
13
|
+
hasPrevPage(): Promise<boolean>;
|
|
14
|
+
hasNextPage(): Promise<boolean>;
|
|
15
|
+
getPrevImage(width?: number): Promise<string | false>;
|
|
16
|
+
getNextImage(width?: number): Promise<string | false>;
|
|
17
|
+
getPages(): Promise<any>;
|
|
18
|
+
getPageImage(page: any, width?: number): Promise<string | false>;
|
|
19
|
+
toCanvas(canvas: any, page: any, width: any): Promise<any>;
|
|
20
|
+
getDocument(): Promise<any>;
|
|
21
|
+
}
|