@nokecy/designer-shared 0.0.0-stage → 2.0.0-beta.6
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/LICENSE +21 -0
- package/LICENSE.md +21 -0
- package/PROVENANCE.json +35 -0
- package/README.md +9 -2
- package/esm/animation.d.ts +2 -0
- package/esm/animation.js +34 -0
- package/esm/animation.js.map +1 -0
- package/esm/array.d.ts +37 -0
- package/esm/array.js +112 -0
- package/esm/array.js.map +1 -0
- package/esm/clone.d.ts +4 -0
- package/esm/clone.js +106 -0
- package/esm/clone.js.map +1 -0
- package/esm/compose.d.ts +1 -0
- package/esm/compose.js +8 -0
- package/esm/compose.js.map +1 -0
- package/esm/coordinate.d.ts +106 -0
- package/esm/coordinate.js +485 -0
- package/esm/coordinate.js.map +1 -0
- package/esm/element.d.ts +6 -0
- package/esm/element.js +138 -0
- package/esm/element.js.map +1 -0
- package/esm/event.d.ts +81 -0
- package/esm/event.js +214 -0
- package/esm/event.js.map +1 -0
- package/esm/globalThisPolyfill.d.ts +1 -0
- package/esm/globalThisPolyfill.js +23 -0
- package/esm/globalThisPolyfill.js.map +1 -0
- package/esm/index.d.ts +17 -0
- package/esm/index.js +18 -0
- package/esm/index.js.map +1 -0
- package/esm/instanceof.d.ts +1 -0
- package/esm/instanceof.js +12 -0
- package/esm/instanceof.js.map +1 -0
- package/esm/keycode.d.ts +147 -0
- package/esm/keycode.js +151 -0
- package/esm/keycode.js.map +1 -0
- package/esm/lru.d.ts +73 -0
- package/esm/lru.js +294 -0
- package/esm/lru.js.map +1 -0
- package/esm/observer.d.ts +9 -0
- package/esm/observer.js +30 -0
- package/esm/observer.js.map +1 -0
- package/esm/request-idle.d.ts +10 -0
- package/esm/request-idle.js +9 -0
- package/esm/request-idle.js.map +1 -0
- package/esm/scroller.d.ts +10 -0
- package/esm/scroller.js +83 -0
- package/esm/scroller.js.map +1 -0
- package/esm/subscribable.d.ts +14 -0
- package/esm/subscribable.js +49 -0
- package/esm/subscribable.js.map +1 -0
- package/esm/types.d.ts +13 -0
- package/esm/types.js +22 -0
- package/esm/types.js.map +1 -0
- package/esm/uid.d.ts +1 -0
- package/esm/uid.js +10 -0
- package/esm/uid.js.map +1 -0
- package/lib/animation.d.ts +2 -0
- package/lib/animation.js +39 -0
- package/lib/animation.js.map +1 -0
- package/lib/array.d.ts +37 -0
- package/lib/array.js +126 -0
- package/lib/array.js.map +1 -0
- package/lib/clone.d.ts +4 -0
- package/lib/clone.js +111 -0
- package/lib/clone.js.map +1 -0
- package/lib/compose.d.ts +1 -0
- package/lib/compose.js +12 -0
- package/lib/compose.js.map +1 -0
- package/lib/coordinate.d.ts +106 -0
- package/lib/coordinate.js +514 -0
- package/lib/coordinate.js.map +1 -0
- package/lib/element.d.ts +6 -0
- package/lib/element.js +146 -0
- package/lib/element.js.map +1 -0
- package/lib/event.d.ts +81 -0
- package/lib/event.js +219 -0
- package/lib/event.js.map +1 -0
- package/lib/globalThisPolyfill.d.ts +1 -0
- package/lib/globalThisPolyfill.js +26 -0
- package/lib/globalThisPolyfill.js.map +1 -0
- package/lib/index.d.ts +17 -0
- package/lib/index.js +34 -0
- package/lib/index.js.map +1 -0
- package/lib/instanceof.d.ts +1 -0
- package/lib/instanceof.js +16 -0
- package/lib/instanceof.js.map +1 -0
- package/lib/keycode.d.ts +147 -0
- package/lib/keycode.js +155 -0
- package/lib/keycode.js.map +1 -0
- package/lib/lru.d.ts +73 -0
- package/lib/lru.js +298 -0
- package/lib/lru.js.map +1 -0
- package/lib/observer.d.ts +9 -0
- package/lib/observer.js +34 -0
- package/lib/observer.js.map +1 -0
- package/lib/request-idle.d.ts +10 -0
- package/lib/request-idle.js +14 -0
- package/lib/request-idle.js.map +1 -0
- package/lib/scroller.d.ts +10 -0
- package/lib/scroller.js +89 -0
- package/lib/scroller.js.map +1 -0
- package/lib/subscribable.d.ts +14 -0
- package/lib/subscribable.js +53 -0
- package/lib/subscribable.js.map +1 -0
- package/lib/types.d.ts +13 -0
- package/lib/types.js +30 -0
- package/lib/types.js.map +1 -0
- package/lib/uid.d.ts +1 -0
- package/lib/uid.js +13 -0
- package/lib/uid.js.map +1 -0
- package/package.json +46 -4
- package/src/animation.ts +38 -0
- package/src/array.ts +301 -0
- package/src/clone.ts +105 -0
- package/src/compose.ts +7 -0
- package/src/coordinate.ts +640 -0
- package/src/element.ts +144 -0
- package/src/event.ts +395 -0
- package/src/globalThisPolyfill.ts +19 -0
- package/src/index.ts +17 -0
- package/src/instanceof.ts +10 -0
- package/src/keycode.ts +150 -0
- package/src/lru.ts +322 -0
- package/src/observer.ts +38 -0
- package/src/request-idle.ts +22 -0
- package/src/scroller.ts +113 -0
- package/src/subscribable.ts +60 -0
- package/src/types.ts +27 -0
- package/src/uid.ts +10 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2021 Alibaba
|
|
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.
|
package/LICENSE.md
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2021 Alibaba
|
|
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.
|
package/PROVENANCE.json
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"ownedName": "@nokecy/designer-shared",
|
|
3
|
+
"ownedPath": "packages/designer/shared",
|
|
4
|
+
"version": "2.0.0-beta.6",
|
|
5
|
+
"previousPath": "vendor/nokecy-designable/packages/shared",
|
|
6
|
+
"upstream": {
|
|
7
|
+
"repository": "https://github.com/pindjs/designable.git",
|
|
8
|
+
"commit": "5edb2236bdfd8309da7677414180923966246d85",
|
|
9
|
+
"package": "@nokecy/designable-shared",
|
|
10
|
+
"path": "packages/shared",
|
|
11
|
+
"record": "docs/maintenance/origins/designable-fork-import.json",
|
|
12
|
+
"sourceChecksumField": "packages[name=@nokecy/designable-shared].sourceSha256"
|
|
13
|
+
},
|
|
14
|
+
"license": "MIT",
|
|
15
|
+
"licenseFile": "LICENSE",
|
|
16
|
+
"migrationDate": "2026-10-17",
|
|
17
|
+
"moduleRenameSourceFiles": [],
|
|
18
|
+
"changes": [
|
|
19
|
+
"Moved preserved package source, tests and documentation into the maintained packages tree.",
|
|
20
|
+
"Renamed internal imports, exports, require paths and declarations to owned workspace package names.",
|
|
21
|
+
"Pinned dependencies on other owned workspaces to their exact unchanged local versions.",
|
|
22
|
+
"Preserved previous Ant Design 6 adaptations and historical upstream provenance.",
|
|
23
|
+
"React and ReactDOM peer ranges target major 19; React runtime compatibility is tracked separately from the namespace/layout migration.",
|
|
24
|
+
"Removed obsolete standalone Rollup/Dumi/npmignore configuration; historical bytes and exclusion reasons are recorded in source-closure.json. Root scripts are the only supported build contract."
|
|
25
|
+
],
|
|
26
|
+
"previousBuildScripts": {},
|
|
27
|
+
"react19AdaptedSourceFiles": [
|
|
28
|
+
"clone.ts",
|
|
29
|
+
"event.ts"
|
|
30
|
+
],
|
|
31
|
+
"sourceClosure": "docs/maintenance/source-closure.json",
|
|
32
|
+
"upgradeGuide": "docs/maintenance/upstream-upgrades.md",
|
|
33
|
+
"patchCategories": "docs/maintenance/patch-classification.json",
|
|
34
|
+
"maintenancePolicy": "Source may evolve with tests and an adaptation entry; baseline hashes are provenance evidence, not equality assertions on maintained implementations."
|
|
35
|
+
}
|
package/README.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @nokecy/designer-shared
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
## QC_UI owned workspace
|
|
4
|
+
|
|
5
|
+
- Active package: `@nokecy/designer-shared@2.0.0-beta.6` at `packages/designer/shared`.
|
|
6
|
+
- Historical package: `@nokecy/designable-shared`. The original repository, commit, license and source-checksum references are recorded in [PROVENANCE.json](./PROVENANCE.json).
|
|
7
|
+
- Use the QC_UI root workspace installation and build. `npm run build --workspace @nokecy/designer-shared` delegates to the root builder; `npm run typecheck --workspace @nokecy/designer-shared` checks this package and its local dependency closure.
|
|
8
|
+
- All source, tests and package documentation were retained. Generated `esm/`, `lib/`, `dist/` and `node_modules/` content is not maintained source.
|
|
9
|
+
- React-facing workspaces target React 19. Runtime dependencies on the owned Formily/designer family use exact local versions.
|
|
10
|
+
- Any retained upstream documentation-site or Rollup configuration is historical context and is not part of the root workspace build. Documentation examples for non-active Vue/Next adapters describe upstream packages, not QC_UI workspaces.
|
package/esm/animation.js
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export const createUniformSpeedAnimation = (speed = 10, callback) => {
|
|
2
|
+
let request = null;
|
|
3
|
+
let startTime = null;
|
|
4
|
+
const start = () => {
|
|
5
|
+
if (request)
|
|
6
|
+
return;
|
|
7
|
+
request = requestAnimationFrame((timestamp) => {
|
|
8
|
+
if (startTime === null) {
|
|
9
|
+
startTime = timestamp;
|
|
10
|
+
}
|
|
11
|
+
const deltaTime = timestamp - startTime;
|
|
12
|
+
const delta = (deltaTime / 1000) * speed;
|
|
13
|
+
callback(delta);
|
|
14
|
+
request = null;
|
|
15
|
+
start();
|
|
16
|
+
});
|
|
17
|
+
};
|
|
18
|
+
start();
|
|
19
|
+
return () => {
|
|
20
|
+
if (request) {
|
|
21
|
+
cancelAnimationFrame(request);
|
|
22
|
+
request = null;
|
|
23
|
+
}
|
|
24
|
+
startTime = null;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
//越接近阈值,速度越小,越远离阈值,速度越大
|
|
28
|
+
export const calcSpeedFactor = (delta = 0, threshold = Infinity) => {
|
|
29
|
+
if (threshold >= delta) {
|
|
30
|
+
return (threshold - delta) / threshold;
|
|
31
|
+
}
|
|
32
|
+
return 0;
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=animation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"animation.js","sourceRoot":"","sources":["../src/animation.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACzC,KAAK,GAAG,EAAE,EACV,QAAiC,EACjC,EAAE;IACF,IAAI,OAAO,GAAkB,IAAI,CAAA;IACjC,IAAI,SAAS,GAAkB,IAAI,CAAA;IACnC,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,IAAI,OAAO;YAAE,OAAM;QACnB,OAAO,GAAG,qBAAqB,CAAC,CAAC,SAAS,EAAE,EAAE;YAC5C,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,SAAS,GAAG,SAAS,CAAA;YACvB,CAAC;YACD,MAAM,SAAS,GAAG,SAAS,GAAG,SAAS,CAAA;YACvC,MAAM,KAAK,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,KAAK,CAAA;YACxC,QAAQ,CAAC,KAAK,CAAC,CAAA;YACf,OAAO,GAAG,IAAI,CAAA;YACd,KAAK,EAAE,CAAA;QACT,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,KAAK,EAAE,CAAA;IAEP,OAAO,GAAG,EAAE;QACV,IAAI,OAAO,EAAE,CAAC;YACZ,oBAAoB,CAAC,OAAO,CAAC,CAAA;YAC7B,OAAO,GAAG,IAAI,CAAA;QAChB,CAAC;QACD,SAAS,GAAG,IAAI,CAAA;IAClB,CAAC,CAAA;AACH,CAAC,CAAA;AAED,uBAAuB;AACvB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,SAAS,GAAG,QAAQ,EAAE,EAAE;IACjE,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;QACvB,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,GAAG,SAAS,CAAA;IACxC,CAAC;IACD,OAAO,CAAC,CAAA;AACV,CAAC,CAAA","sourcesContent":["export const createUniformSpeedAnimation = (\n speed = 10,\n callback: (delta: number) => void\n) => {\n let request: number | null = null\n let startTime: number | null = null\n const start = () => {\n if (request) return\n request = requestAnimationFrame((timestamp) => {\n if (startTime === null) {\n startTime = timestamp\n }\n const deltaTime = timestamp - startTime\n const delta = (deltaTime / 1000) * speed\n callback(delta)\n request = null\n start()\n })\n }\n\n start()\n\n return () => {\n if (request) {\n cancelAnimationFrame(request)\n request = null\n }\n startTime = null\n }\n}\n\n//越接近阈值,速度越小,越远离阈值,速度越大\nexport const calcSpeedFactor = (delta = 0, threshold = Infinity) => {\n if (threshold >= delta) {\n return (threshold - delta) / threshold\n }\n return 0\n}\n"]}
|
package/esm/array.d.ts
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
type EachArrayIterator<T> = (currentValue: T, key: number) => void | boolean;
|
|
2
|
+
type EachStringIterator = (currentValue: string, key: number) => void | boolean;
|
|
3
|
+
type EachObjectIterator<T = any> = (currentValue: T, key: string) => void | boolean;
|
|
4
|
+
type MapArrayIterator<TItem, TResult> = (currentValue: TItem, key: number) => TResult;
|
|
5
|
+
type MapStringIterator<TResult> = (currentValue: string, key: number) => TResult;
|
|
6
|
+
type MapObjectIterator<TItem, TResult> = (currentValue: TItem, key: string) => TResult;
|
|
7
|
+
type MemoArrayIterator<T, U> = (previousValue: U, currentValue: T, key: number) => U;
|
|
8
|
+
type MemoStringIterator<T> = (previousValue: T, currentValue: string, key: number) => T;
|
|
9
|
+
type MemoObjectIterator<TValue, TResult> = (previousValue: TResult, currentValue: TValue, key: string) => TResult;
|
|
10
|
+
export declare const toArr: (val: any) => any[];
|
|
11
|
+
export declare function each(val: string, iterator: EachStringIterator, revert?: boolean): void;
|
|
12
|
+
export declare function each<T>(val: T[], iterator: EachArrayIterator<T>, revert?: boolean): void;
|
|
13
|
+
export declare function each<T extends {}, TValue = T[keyof T]>(val: T, iterator: EachObjectIterator<TValue>, revert?: boolean): void;
|
|
14
|
+
export declare function map<T>(val: string, iterator: MapStringIterator<T>, revert?: boolean): any;
|
|
15
|
+
export declare function map<TItem, TResult>(val: TItem[], iterator: MapArrayIterator<TItem, TResult>, revert?: boolean): any;
|
|
16
|
+
export declare function map<T extends {}, TResult>(val: T, iterator: MapObjectIterator<T[keyof T], TResult>, revert?: boolean): any;
|
|
17
|
+
export declare function reduce<T, U>(val: T[], iterator: MemoArrayIterator<T, U>, accumulator?: U, revert?: boolean): U;
|
|
18
|
+
export declare function reduce<T>(val: string, iterator: MemoStringIterator<T>, accumulator?: T, revert?: boolean): T;
|
|
19
|
+
export declare function reduce<T extends {}, TValue = T[keyof T], TResult = any>(val: T, iterator: MemoObjectIterator<TValue, TResult>, accumulator?: TResult, revert?: boolean): TResult;
|
|
20
|
+
export declare function every<T extends string>(val: T, iterator: EachStringIterator, revert?: boolean): boolean;
|
|
21
|
+
export declare function every<T>(val: T[], iterator: EachArrayIterator<T>, revert?: boolean): boolean;
|
|
22
|
+
export declare function every<T extends {}, TValue = T[keyof T]>(val: T, iterator: EachObjectIterator, revert?: boolean): boolean;
|
|
23
|
+
export declare function some<T extends string>(val: T, iterator: EachStringIterator, revert?: boolean): boolean;
|
|
24
|
+
export declare function some<T>(val: T[], iterator: EachArrayIterator<T>, revert?: boolean): boolean;
|
|
25
|
+
export declare function some<T extends {}, TValue = T[keyof T]>(val: T, iterator: EachObjectIterator, revert?: boolean): boolean;
|
|
26
|
+
export declare function findIndex<T extends string>(val: T, iterator: EachStringIterator, revert?: boolean): number;
|
|
27
|
+
export declare function findIndex<T>(val: T[], iterator: EachArrayIterator<T>, revert?: boolean): number;
|
|
28
|
+
export declare function findIndex<T extends {}, TValue = T[keyof T]>(val: T, iterator: EachObjectIterator, revert?: boolean): keyof T;
|
|
29
|
+
export declare function find<T extends string>(val: T, iterator: EachStringIterator, revert?: boolean): any;
|
|
30
|
+
export declare function find<T>(val: T[], iterator: EachArrayIterator<T>, revert?: boolean): T;
|
|
31
|
+
export declare function find<T extends {}, TValue = T[keyof T]>(val: T, iterator: EachObjectIterator, revert?: boolean): T[keyof T];
|
|
32
|
+
export declare function includes<T extends string>(val: T, searchElement: string, revert?: boolean): boolean;
|
|
33
|
+
export declare function includes<T>(val: T[], searchElement: T, revert?: boolean): boolean;
|
|
34
|
+
export declare function includesWith<T extends string>(val: T, search: (item: string) => boolean): boolean;
|
|
35
|
+
export declare function includesWith<T>(val: T[], search: (item: T) => boolean): boolean;
|
|
36
|
+
export declare const flat: <T>(array: Array<T | T[]>) => T[];
|
|
37
|
+
export {};
|
package/esm/array.js
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { isArr, isObj, isStr } from './types';
|
|
2
|
+
export const toArr = (val) => (isArr(val) ? val : val ? [val] : []);
|
|
3
|
+
export function each(val, iterator, revert) {
|
|
4
|
+
if (isArr(val) || isStr(val)) {
|
|
5
|
+
if (revert) {
|
|
6
|
+
for (let i = val.length - 1; i >= 0; i--) {
|
|
7
|
+
if (iterator(val[i], i) === false) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
for (let i = 0; i < val.length; i++) {
|
|
14
|
+
if (iterator(val[i], i) === false) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
else if (isObj(val)) {
|
|
21
|
+
let key;
|
|
22
|
+
for (key in val) {
|
|
23
|
+
if (Object.hasOwnProperty.call(val, key)) {
|
|
24
|
+
if (iterator(val[key], key) === false) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export function map(val, iterator, revert) {
|
|
32
|
+
const res = isArr(val) || isStr(val) ? [] : {};
|
|
33
|
+
each(val, (item, key) => {
|
|
34
|
+
const value = iterator(item, key);
|
|
35
|
+
if (isArr(res)) {
|
|
36
|
+
;
|
|
37
|
+
res.push(value);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
res[key] = value;
|
|
41
|
+
}
|
|
42
|
+
}, revert);
|
|
43
|
+
return res;
|
|
44
|
+
}
|
|
45
|
+
export function reduce(val, iterator, accumulator, revert) {
|
|
46
|
+
let result = accumulator;
|
|
47
|
+
each(val, (item, key) => {
|
|
48
|
+
result = iterator(result, item, key);
|
|
49
|
+
}, revert);
|
|
50
|
+
return result;
|
|
51
|
+
}
|
|
52
|
+
export function every(val, iterator, revert) {
|
|
53
|
+
let res = true;
|
|
54
|
+
each(val, (item, key) => {
|
|
55
|
+
if (!iterator(item, key)) {
|
|
56
|
+
res = false;
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
}, revert);
|
|
60
|
+
return res;
|
|
61
|
+
}
|
|
62
|
+
export function some(val, iterator, revert) {
|
|
63
|
+
let res = false;
|
|
64
|
+
each(val, (item, key) => {
|
|
65
|
+
if (iterator(item, key)) {
|
|
66
|
+
res = true;
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
}, revert);
|
|
70
|
+
return res;
|
|
71
|
+
}
|
|
72
|
+
export function findIndex(val, iterator, revert) {
|
|
73
|
+
let res = -1;
|
|
74
|
+
each(val, (item, key) => {
|
|
75
|
+
if (iterator(item, key)) {
|
|
76
|
+
res = key;
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
}, revert);
|
|
80
|
+
return res;
|
|
81
|
+
}
|
|
82
|
+
export function find(val, iterator, revert) {
|
|
83
|
+
let res;
|
|
84
|
+
each(val, (item, key) => {
|
|
85
|
+
if (iterator(item, key)) {
|
|
86
|
+
res = item;
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
}, revert);
|
|
90
|
+
return res;
|
|
91
|
+
}
|
|
92
|
+
export function includes(val, searchElement, revert) {
|
|
93
|
+
if (isStr(val))
|
|
94
|
+
return val.includes(searchElement);
|
|
95
|
+
return some(val, (item) => item === searchElement, revert);
|
|
96
|
+
}
|
|
97
|
+
export function includesWith(val, search) {
|
|
98
|
+
if (isArr(val)) {
|
|
99
|
+
return val.some((item) => search(item));
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
export const flat = (array) => {
|
|
106
|
+
return toArr(array).reduce((buf, item) => {
|
|
107
|
+
if (isArr(item))
|
|
108
|
+
return buf.concat(flat(item));
|
|
109
|
+
return buf.concat(item);
|
|
110
|
+
}, []);
|
|
111
|
+
};
|
|
112
|
+
//# sourceMappingURL=array.js.map
|
package/esm/array.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array.js","sourceRoot":"","sources":["../src/array.ts"],"names":[],"mappings":"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","sourcesContent":["import { isArr, isObj, isStr } from './types'\n\ntype EachArrayIterator<T> = (currentValue: T, key: number) => void | boolean\ntype EachStringIterator = (currentValue: string, key: number) => void | boolean\ntype EachObjectIterator<T = any> = (\n currentValue: T,\n key: string\n) => void | boolean\ntype MapArrayIterator<TItem, TResult> = (\n currentValue: TItem,\n key: number\n) => TResult\ntype MapStringIterator<TResult> = (currentValue: string, key: number) => TResult\ntype MapObjectIterator<TItem, TResult> = (\n currentValue: TItem,\n key: string\n) => TResult\ntype MemoArrayIterator<T, U> = (\n previousValue: U,\n currentValue: T,\n key: number\n) => U\ntype MemoStringIterator<T> = (\n previousValue: T,\n currentValue: string,\n key: number\n) => T\ntype MemoObjectIterator<TValue, TResult> = (\n previousValue: TResult,\n currentValue: TValue,\n key: string\n) => TResult\n\nexport const toArr = (val: any): any[] => (isArr(val) ? val : val ? [val] : [])\nexport function each(\n val: string,\n iterator: EachStringIterator,\n revert?: boolean\n): void\nexport function each<T>(\n val: T[],\n iterator: EachArrayIterator<T>,\n revert?: boolean\n): void\nexport function each<T extends {}, TValue = T[keyof T]>(\n val: T,\n iterator: EachObjectIterator<TValue>,\n revert?: boolean\n): void\nexport function each(val: any, iterator: any, revert?: boolean): void {\n if (isArr(val) || isStr(val)) {\n if (revert) {\n for (let i: number = val.length - 1; i >= 0; i--) {\n if (iterator(val[i], i) === false) {\n return\n }\n }\n } else {\n for (let i = 0; i < val.length; i++) {\n if (iterator(val[i], i) === false) {\n return\n }\n }\n }\n } else if (isObj(val)) {\n let key: string\n for (key in val) {\n if (Object.hasOwnProperty.call(val, key)) {\n if (iterator(val[key], key) === false) {\n return\n }\n }\n }\n }\n}\n\nexport function map<T>(\n val: string,\n iterator: MapStringIterator<T>,\n revert?: boolean\n): any\nexport function map<TItem, TResult>(\n val: TItem[],\n iterator: MapArrayIterator<TItem, TResult>,\n revert?: boolean\n): any\nexport function map<T extends {}, TResult>(\n val: T,\n iterator: MapObjectIterator<T[keyof T], TResult>,\n revert?: boolean\n): any\nexport function map(val: any, iterator: any, revert?: boolean): any {\n const res = isArr(val) || isStr(val) ? [] : {}\n each(\n val,\n (item, key) => {\n const value = iterator(item, key)\n if (isArr(res)) {\n ;(res as any).push(value)\n } else {\n res[key] = value\n }\n },\n revert\n )\n return res\n}\n\nexport function reduce<T, U>(\n val: T[],\n iterator: MemoArrayIterator<T, U>,\n accumulator?: U,\n revert?: boolean\n): U\nexport function reduce<T>(\n val: string,\n iterator: MemoStringIterator<T>,\n accumulator?: T,\n revert?: boolean\n): T\nexport function reduce<T extends {}, TValue = T[keyof T], TResult = any>(\n val: T,\n iterator: MemoObjectIterator<TValue, TResult>,\n accumulator?: TResult,\n revert?: boolean\n): TResult\nexport function reduce(\n val: any,\n iterator: any,\n accumulator?: any,\n revert?: boolean\n): any {\n let result = accumulator\n each(\n val,\n (item, key) => {\n result = iterator(result, item, key)\n },\n revert\n )\n return result\n}\n\nexport function every<T extends string>(\n val: T,\n iterator: EachStringIterator,\n revert?: boolean\n): boolean\nexport function every<T>(\n val: T[],\n iterator: EachArrayIterator<T>,\n revert?: boolean\n): boolean\nexport function every<T extends {}, TValue = T[keyof T]>(\n val: T,\n iterator: EachObjectIterator,\n revert?: boolean\n): boolean\nexport function every(val: any, iterator: any, revert?: boolean): boolean {\n let res = true\n each(\n val,\n (item, key) => {\n if (!iterator(item, key)) {\n res = false\n return false\n }\n },\n revert\n )\n return res\n}\n\nexport function some<T extends string>(\n val: T,\n iterator: EachStringIterator,\n revert?: boolean\n): boolean\nexport function some<T>(\n val: T[],\n iterator: EachArrayIterator<T>,\n revert?: boolean\n): boolean\nexport function some<T extends {}, TValue = T[keyof T]>(\n val: T,\n iterator: EachObjectIterator,\n revert?: boolean\n): boolean\nexport function some(val: any, iterator: any, revert?: boolean): boolean {\n let res = false\n each(\n val,\n (item, key) => {\n if (iterator(item, key)) {\n res = true\n return false\n }\n },\n revert\n )\n return res\n}\n\nexport function findIndex<T extends string>(\n val: T,\n iterator: EachStringIterator,\n revert?: boolean\n): number\nexport function findIndex<T>(\n val: T[],\n iterator: EachArrayIterator<T>,\n revert?: boolean\n): number\nexport function findIndex<T extends {}, TValue = T[keyof T]>(\n val: T,\n iterator: EachObjectIterator,\n revert?: boolean\n): keyof T\nexport function findIndex(\n val: any,\n iterator: any,\n revert?: boolean\n): string | number {\n let res: number | string = -1\n each(\n val,\n (item, key) => {\n if (iterator(item, key)) {\n res = key\n return false\n }\n },\n revert\n )\n return res\n}\n\nexport function find<T extends string>(\n val: T,\n iterator: EachStringIterator,\n revert?: boolean\n): any\nexport function find<T>(\n val: T[],\n iterator: EachArrayIterator<T>,\n revert?: boolean\n): T\nexport function find<T extends {}, TValue = T[keyof T]>(\n val: T,\n iterator: EachObjectIterator,\n revert?: boolean\n): T[keyof T]\nexport function find(val: any, iterator: any, revert?: boolean): any {\n let res: any\n each(\n val,\n (item, key) => {\n if (iterator(item, key)) {\n res = item\n return false\n }\n },\n revert\n )\n return res\n}\n\nexport function includes<T extends string>(\n val: T,\n searchElement: string,\n revert?: boolean\n): boolean\nexport function includes<T>(\n val: T[],\n searchElement: T,\n revert?: boolean\n): boolean\nexport function includes(val: any, searchElement: any, revert?: boolean) {\n if (isStr(val)) return val.includes(searchElement)\n return some(val, (item) => item === searchElement, revert)\n}\n\nexport function includesWith<T extends string>(\n val: T,\n search: (item: string) => boolean\n): boolean\nexport function includesWith<T>(val: T[], search: (item: T) => boolean): boolean\nexport function includesWith(val: any, search: any) {\n if (isArr(val)) {\n return val.some((item) => search(item))\n } else {\n return false\n }\n}\n\nexport const flat = <T>(array: Array<T | T[]>): T[] => {\n return toArr(array).reduce((buf, item) => {\n if (isArr(item)) return buf.concat(flat(item))\n return buf.concat(item)\n }, [])\n}\n"]}
|
package/esm/clone.d.ts
ADDED
package/esm/clone.js
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { isFn } from './types';
|
|
2
|
+
import { instOf } from './instanceof';
|
|
3
|
+
const NATIVE_KEYS = [
|
|
4
|
+
['Map', (map) => new Map(map)],
|
|
5
|
+
['WeakMap', (map) => new WeakMap(map)],
|
|
6
|
+
['WeakSet', (set) => new WeakSet(set)],
|
|
7
|
+
['Set', (set) => new Set(set)],
|
|
8
|
+
['Date', (date) => new Date(date)],
|
|
9
|
+
'FileList',
|
|
10
|
+
'File',
|
|
11
|
+
'URL',
|
|
12
|
+
'RegExp',
|
|
13
|
+
[
|
|
14
|
+
'Promise',
|
|
15
|
+
(promise) => new Promise((resolve, reject) => promise.then(resolve, reject)),
|
|
16
|
+
],
|
|
17
|
+
];
|
|
18
|
+
const isNativeObject = (values) => {
|
|
19
|
+
for (let i = 0; i < NATIVE_KEYS.length; i++) {
|
|
20
|
+
const item = NATIVE_KEYS[i];
|
|
21
|
+
if (Array.isArray(item) && item[0]) {
|
|
22
|
+
if (instOf(values, item[0])) {
|
|
23
|
+
return item[1] ? item[1] : item[0];
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
if (instOf(values, item)) {
|
|
28
|
+
return item;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
// Shared designer primitives must not add a React runtime dependency.
|
|
34
|
+
const isReactElement = (value) => value &&
|
|
35
|
+
typeof value === 'object' &&
|
|
36
|
+
(value.$$typeof === Symbol.for('react.element') ||
|
|
37
|
+
value.$$typeof === Symbol.for('react.transitional.element') ||
|
|
38
|
+
('$$typeof' in value && '_owner' in value));
|
|
39
|
+
export const shallowClone = (values) => {
|
|
40
|
+
if (isReactElement(values))
|
|
41
|
+
return values;
|
|
42
|
+
let nativeClone;
|
|
43
|
+
if (Array.isArray(values)) {
|
|
44
|
+
return values.slice(0);
|
|
45
|
+
}
|
|
46
|
+
else if (isNativeObject(values)) {
|
|
47
|
+
nativeClone = isNativeObject(values);
|
|
48
|
+
return isFn(nativeClone) ? nativeClone(values) : values;
|
|
49
|
+
}
|
|
50
|
+
else if (typeof values === 'object' && !!values) {
|
|
51
|
+
return {
|
|
52
|
+
...values,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
export const clone = (values, filter) => {
|
|
57
|
+
let nativeClone;
|
|
58
|
+
if (Array.isArray(values)) {
|
|
59
|
+
return values.map((item) => clone(item, filter));
|
|
60
|
+
}
|
|
61
|
+
else if (isNativeObject(values)) {
|
|
62
|
+
nativeClone = isNativeObject(values);
|
|
63
|
+
return isFn(nativeClone) ? nativeClone(values) : values;
|
|
64
|
+
}
|
|
65
|
+
else if (typeof values === 'object' && !!values) {
|
|
66
|
+
if (isReactElement(values)) {
|
|
67
|
+
return values;
|
|
68
|
+
}
|
|
69
|
+
if (values._isAMomentObject) {
|
|
70
|
+
return values;
|
|
71
|
+
}
|
|
72
|
+
if (values._isJSONSchemaObject) {
|
|
73
|
+
return values;
|
|
74
|
+
}
|
|
75
|
+
if (isFn(values.toJS)) {
|
|
76
|
+
return values;
|
|
77
|
+
}
|
|
78
|
+
if (isFn(values.toJSON)) {
|
|
79
|
+
return values;
|
|
80
|
+
}
|
|
81
|
+
if (Object.getOwnPropertySymbols(values || {}).length) {
|
|
82
|
+
return values;
|
|
83
|
+
}
|
|
84
|
+
const res = {};
|
|
85
|
+
for (const key in values) {
|
|
86
|
+
if (Object.hasOwnProperty.call(values, key)) {
|
|
87
|
+
if (isFn(filter)) {
|
|
88
|
+
if (filter(values[key], key)) {
|
|
89
|
+
res[key] = clone(values[key], filter);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
res[key] = values[key];
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
res[key] = clone(values[key], filter);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return res;
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
return values;
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
//# sourceMappingURL=clone.js.map
|
package/esm/clone.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clone.js","sourceRoot":"","sources":["../src/clone.ts"],"names":[],"mappings":"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","sourcesContent":["import { isFn } from './types'\nimport { instOf } from './instanceof'\ntype Filter = (value: any, key: string) => boolean\n\nconst NATIVE_KEYS = [\n ['Map', (map: any) => new Map(map)],\n ['WeakMap', (map: any) => new WeakMap(map)],\n ['WeakSet', (set: any) => new WeakSet(set)],\n ['Set', (set: any) => new Set(set)],\n ['Date', (date: any) => new Date(date)],\n 'FileList',\n 'File',\n 'URL',\n 'RegExp',\n [\n 'Promise',\n (promise: Promise<any>) =>\n new Promise((resolve, reject) => promise.then(resolve, reject)),\n ],\n]\n\nconst isNativeObject = (values: any): any => {\n for (let i = 0; i < NATIVE_KEYS.length; i++) {\n const item = NATIVE_KEYS[i]\n if (Array.isArray(item) && item[0]) {\n if (instOf(values, item[0])) {\n return item[1] ? item[1] : item[0]\n }\n } else {\n if (instOf(values, item)) {\n return item\n }\n }\n }\n}\n\n// Shared designer primitives must not add a React runtime dependency.\nconst isReactElement = (value: any) =>\n value &&\n typeof value === 'object' &&\n (value.$$typeof === Symbol.for('react.element') ||\n value.$$typeof === Symbol.for('react.transitional.element') ||\n ('$$typeof' in value && '_owner' in value))\n\nexport const shallowClone = (values: any) => {\n if (isReactElement(values)) return values\n let nativeClone: (values: any) => any\n if (Array.isArray(values)) {\n return values.slice(0)\n } else if (isNativeObject(values)) {\n nativeClone = isNativeObject(values)\n return isFn(nativeClone) ? nativeClone(values) : values\n } else if (typeof values === 'object' && !!values) {\n return {\n ...values,\n }\n }\n}\n\nexport const clone = (values: any, filter?: Filter) => {\n let nativeClone: (values: any) => any\n if (Array.isArray(values)) {\n return values.map((item) => clone(item, filter))\n } else if (isNativeObject(values)) {\n nativeClone = isNativeObject(values)\n return isFn(nativeClone) ? nativeClone(values) : values\n } else if (typeof values === 'object' && !!values) {\n if (isReactElement(values)) {\n return values\n }\n if (values._isAMomentObject) {\n return values\n }\n if (values._isJSONSchemaObject) {\n return values\n }\n\n if (isFn(values.toJS)) {\n return values\n }\n if (isFn(values.toJSON)) {\n return values\n }\n if (Object.getOwnPropertySymbols(values || {}).length) {\n return values\n }\n const res = {}\n for (const key in values) {\n if (Object.hasOwnProperty.call(values, key)) {\n if (isFn(filter)) {\n if (filter(values[key], key)) {\n res[key] = clone(values[key], filter)\n } else {\n res[key] = values[key]\n }\n } else {\n res[key] = clone(values[key], filter)\n }\n }\n }\n return res\n } else {\n return values\n }\n}\n"]}
|
package/esm/compose.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const compose: (...fns: ((payload: any) => any)[]) => (payload: any) => any;
|
package/esm/compose.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compose.js","sourceRoot":"","sources":["../src/compose.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,GAAG,GAA8B,EAAE,EAAE;IAC3D,OAAO,CAAC,OAAY,EAAE,EAAE;QACtB,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;YAC5B,OAAO,EAAE,CAAC,GAAG,CAAC,CAAA;QAChB,CAAC,EAAE,OAAO,CAAC,CAAA;IACb,CAAC,CAAA;AACH,CAAC,CAAA","sourcesContent":["export const compose = (...fns: ((payload: any) => any)[]) => {\n return (payload: any) => {\n return fns.reduce((buf, fn) => {\n return fn(buf)\n }, payload)\n }\n}\n"]}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
export interface IPoint {
|
|
2
|
+
x: number;
|
|
3
|
+
y: number;
|
|
4
|
+
}
|
|
5
|
+
export interface ISize {
|
|
6
|
+
width: number;
|
|
7
|
+
height: number;
|
|
8
|
+
}
|
|
9
|
+
export interface ILineSegment {
|
|
10
|
+
start: IPoint;
|
|
11
|
+
end: IPoint;
|
|
12
|
+
}
|
|
13
|
+
export interface IRectEdgeLines {
|
|
14
|
+
v: ILineSegment[];
|
|
15
|
+
h: ILineSegment[];
|
|
16
|
+
}
|
|
17
|
+
export declare function isRect(rect: any): rect is IRect;
|
|
18
|
+
export declare function isPoint(val: any): val is IPoint;
|
|
19
|
+
export declare function isLineSegment(val: any): val is ILineSegment;
|
|
20
|
+
export declare class Point implements IPoint {
|
|
21
|
+
x: number;
|
|
22
|
+
y: number;
|
|
23
|
+
constructor(x?: number, y?: number);
|
|
24
|
+
}
|
|
25
|
+
export declare class Rect implements IRect {
|
|
26
|
+
x: number;
|
|
27
|
+
y: number;
|
|
28
|
+
width: number;
|
|
29
|
+
height: number;
|
|
30
|
+
constructor(x: number, y: number, width?: number, height?: number);
|
|
31
|
+
get left(): number;
|
|
32
|
+
get right(): number;
|
|
33
|
+
get top(): number;
|
|
34
|
+
get bottom(): number;
|
|
35
|
+
}
|
|
36
|
+
export declare class LineSegment {
|
|
37
|
+
start: IPoint;
|
|
38
|
+
end: IPoint;
|
|
39
|
+
constructor(start: IPoint, end: IPoint);
|
|
40
|
+
}
|
|
41
|
+
export interface IRect {
|
|
42
|
+
x: number;
|
|
43
|
+
y: number;
|
|
44
|
+
width: number;
|
|
45
|
+
height: number;
|
|
46
|
+
}
|
|
47
|
+
export declare enum RectQuadrant {
|
|
48
|
+
Inner1 = "I1",//内部第一象限
|
|
49
|
+
Inner2 = "I2",//内部第二象限
|
|
50
|
+
Inner3 = "I3",//内部第三象限
|
|
51
|
+
Inner4 = "I4",//内部第四象限
|
|
52
|
+
Outer1 = "O1",//内部第五象限
|
|
53
|
+
Outer2 = "O2",//内部第六象限
|
|
54
|
+
Outer3 = "O3",//内部第七象限
|
|
55
|
+
Outer4 = "O4"
|
|
56
|
+
}
|
|
57
|
+
export interface IPointToRectRelative {
|
|
58
|
+
quadrant: RectQuadrant;
|
|
59
|
+
distance: number;
|
|
60
|
+
}
|
|
61
|
+
export declare function isPointInRect(point: IPoint, rect: IRect, sensitive?: boolean): boolean;
|
|
62
|
+
export declare function isEqualRect(target?: IRect, source?: IRect): boolean;
|
|
63
|
+
export declare function getRectPoints(source: IRect): Point[];
|
|
64
|
+
export declare function isRectInRect(target: IRect, source: IRect): boolean;
|
|
65
|
+
export declare function isCrossRectInRect(target: IRect, source: IRect): boolean;
|
|
66
|
+
/**
|
|
67
|
+
* 计算点在矩形的哪个象限
|
|
68
|
+
* @param point
|
|
69
|
+
* @param rect
|
|
70
|
+
*/
|
|
71
|
+
export declare function calcQuadrantOfPointToRect(point: IPoint, rect: IRect): RectQuadrant;
|
|
72
|
+
export declare function calcDistanceOfPointToRect(point: IPoint, rect: IRect): number;
|
|
73
|
+
export declare function calcDistancePointToEdge(point: IPoint, rect: IRect): number;
|
|
74
|
+
export declare function isNearAfter(point: IPoint, rect: IRect, inline?: boolean): boolean;
|
|
75
|
+
/**
|
|
76
|
+
* 计算点鱼矩形的相对位置信息
|
|
77
|
+
* @param point
|
|
78
|
+
* @param rect
|
|
79
|
+
*/
|
|
80
|
+
export declare function calcRelativeOfPointToRect(point: IPoint, rect: IRect): IPointToRectRelative;
|
|
81
|
+
export declare function calcBoundingRect(rects: IRect[]): Rect;
|
|
82
|
+
export declare function calcRectByStartEndPoint(startPoint: IPoint, endPoint: IPoint, scrollX?: number, scrollY?: number): Rect;
|
|
83
|
+
export declare function calcEdgeLinesOfRect(rect?: IRect): IRectEdgeLines | undefined;
|
|
84
|
+
export declare function calcRectOfAxisLineSegment(line?: ILineSegment): Rect;
|
|
85
|
+
export declare function calcSpaceBlockOfRect(target: IRect, source: IRect, type?: string): {
|
|
86
|
+
type: string;
|
|
87
|
+
distance: number;
|
|
88
|
+
rect: Rect;
|
|
89
|
+
};
|
|
90
|
+
export declare function calcExtendsLineSegmentOfRect(targetRect: Rect, referRect: Rect): {
|
|
91
|
+
start: {
|
|
92
|
+
x: number;
|
|
93
|
+
y: number;
|
|
94
|
+
};
|
|
95
|
+
end: {
|
|
96
|
+
x: number;
|
|
97
|
+
y: number;
|
|
98
|
+
};
|
|
99
|
+
};
|
|
100
|
+
export declare function calcOffsetOfSnapLineSegmentToEdge(line: ILineSegment, current: IRect): {
|
|
101
|
+
x: number;
|
|
102
|
+
y: number;
|
|
103
|
+
};
|
|
104
|
+
export declare function calcDistanceOfSnapLineToEdges(line: ILineSegment, edges?: IRectEdgeLines): number;
|
|
105
|
+
export declare function calcCombineSnapLineSegment(target: ILineSegment, source: ILineSegment): ILineSegment;
|
|
106
|
+
export declare function calcClosestEdges(line: ILineSegment, edges: IRectEdgeLines): [number, ILineSegment];
|