@itwin/frontend-devtools 4.10.0-dev.9 → 5.0.0-dev.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/CHANGELOG.md +21 -1
- package/lib/cjs/ClipboardUtilities.js +2 -3
- package/lib/cjs/ClipboardUtilities.js.map +1 -1
- package/lib/cjs/effects/EffectTools.js +2 -2
- package/lib/cjs/effects/EffectTools.js.map +1 -1
- package/lib/cjs/effects/Random.js +5 -6
- package/lib/cjs/effects/Random.js.map +1 -1
- package/lib/cjs/tools/ProjectExtents.js +2 -2
- package/lib/cjs/tools/ProjectExtents.js.map +1 -1
- package/lib/cjs/tools/SavedViews.js +3 -3
- package/lib/cjs/tools/SavedViews.js.map +1 -1
- package/lib/cjs/tools/ScheduleScriptTools.js +1 -1
- package/lib/cjs/tools/ScheduleScriptTools.js.map +1 -1
- package/lib/cjs/tools/parseArgs.js +1 -2
- package/lib/cjs/tools/parseArgs.js.map +1 -1
- package/lib/cjs/tools/parseBoolean.js +1 -2
- package/lib/cjs/tools/parseBoolean.js.map +1 -1
- package/lib/cjs/tools/parseToggle.js +1 -2
- package/lib/cjs/tools/parseToggle.js.map +1 -1
- package/lib/cjs/ui/Button.js +1 -2
- package/lib/cjs/ui/Button.js.map +1 -1
- package/lib/cjs/ui/CheckBox.js +1 -2
- package/lib/cjs/ui/CheckBox.js.map +1 -1
- package/lib/cjs/ui/ColorInput.js +3 -4
- package/lib/cjs/ui/ColorInput.js.map +1 -1
- package/lib/cjs/ui/ComboBox.js +1 -2
- package/lib/cjs/ui/ComboBox.js.map +1 -1
- package/lib/cjs/ui/DataList.js +2 -3
- package/lib/cjs/ui/DataList.js.map +1 -1
- package/lib/cjs/ui/NestedMenu.js +1 -2
- package/lib/cjs/ui/NestedMenu.js.map +1 -1
- package/lib/cjs/ui/NumericInput.js +3 -4
- package/lib/cjs/ui/NumericInput.js.map +1 -1
- package/lib/cjs/ui/RadioBox.js +3 -4
- package/lib/cjs/ui/RadioBox.js.map +1 -1
- package/lib/cjs/ui/Slider.d.ts +2 -0
- package/lib/cjs/ui/Slider.d.ts.map +1 -1
- package/lib/cjs/ui/Slider.js +7 -2
- package/lib/cjs/ui/Slider.js.map +1 -1
- package/lib/cjs/ui/TextBox.js +2 -3
- package/lib/cjs/ui/TextBox.js.map +1 -1
- package/lib/cjs/widgets/MemoryTracker.js +2 -2
- package/lib/cjs/widgets/MemoryTracker.js.map +1 -1
- package/lib/esm/ClipboardUtilities.js +1 -1
- package/lib/esm/ClipboardUtilities.js.map +1 -1
- package/lib/esm/tools/ScheduleScriptTools.js +1 -1
- package/lib/esm/tools/ScheduleScriptTools.js.map +1 -1
- package/lib/esm/ui/ColorInput.js +1 -1
- package/lib/esm/ui/ColorInput.js.map +1 -1
- package/lib/esm/ui/NumericInput.js +1 -1
- package/lib/esm/ui/NumericInput.js.map +1 -1
- package/lib/esm/ui/RadioBox.js +2 -2
- package/lib/esm/ui/RadioBox.js.map +1 -1
- package/lib/esm/ui/Slider.d.ts +2 -0
- package/lib/esm/ui/Slider.d.ts.map +1 -1
- package/lib/esm/ui/Slider.js +5 -0
- package/lib/esm/ui/Slider.js.map +1 -1
- package/lib/esm/ui/TextBox.js +1 -1
- package/lib/esm/ui/TextBox.js.map +1 -1
- package/package.json +10 -10
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,26 @@
|
|
|
1
1
|
# Change Log - @itwin/frontend-devtools
|
|
2
2
|
|
|
3
|
-
This log was last generated on
|
|
3
|
+
This log was last generated on Tue, 22 Oct 2024 20:03:09 GMT and should not be manually modified.
|
|
4
|
+
|
|
5
|
+
## 4.9.5
|
|
6
|
+
Tue, 22 Oct 2024 20:01:40 GMT
|
|
7
|
+
|
|
8
|
+
_Version update only_
|
|
9
|
+
|
|
10
|
+
## 4.9.4
|
|
11
|
+
Wed, 09 Oct 2024 20:22:04 GMT
|
|
12
|
+
|
|
13
|
+
_Version update only_
|
|
14
|
+
|
|
15
|
+
## 4.9.3
|
|
16
|
+
Thu, 03 Oct 2024 19:15:45 GMT
|
|
17
|
+
|
|
18
|
+
_Version update only_
|
|
19
|
+
|
|
20
|
+
## 4.9.2
|
|
21
|
+
Wed, 02 Oct 2024 15:14:43 GMT
|
|
22
|
+
|
|
23
|
+
_Version update only_
|
|
4
24
|
|
|
5
25
|
## 4.9.1
|
|
6
26
|
Wed, 25 Sep 2024 20:10:58 GMT
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* @module Utilities
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.copyStringToClipboard =
|
|
10
|
+
exports.copyStringToClipboard = copyStringToClipboard;
|
|
11
11
|
/** Copy the input string to the system clipboard.
|
|
12
12
|
* Obtained from https://techoverflow.net/2018/03/30/copying-strings-to-the-clipboard-using-pure-javascript/
|
|
13
13
|
* @beta
|
|
@@ -20,8 +20,7 @@ function copyStringToClipboard(str) {
|
|
|
20
20
|
el.style.left = "-9999px";
|
|
21
21
|
document.body.appendChild(el);
|
|
22
22
|
el.select();
|
|
23
|
-
document.execCommand("copy"); // eslint-disable-line
|
|
23
|
+
document.execCommand("copy"); // eslint-disable-line @typescript-eslint/no-deprecated
|
|
24
24
|
document.body.removeChild(el);
|
|
25
25
|
}
|
|
26
|
-
exports.copyStringToClipboard = copyStringToClipboard;
|
|
27
26
|
//# sourceMappingURL=ClipboardUtilities.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClipboardUtilities.js","sourceRoot":"","sources":["../../src/ClipboardUtilities.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;
|
|
1
|
+
{"version":3,"file":"ClipboardUtilities.js","sourceRoot":"","sources":["../../src/ClipboardUtilities.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;AAMH,sDAUC;AAdD;;;GAGG;AACH,SAAgB,qBAAqB,CAAC,GAAW;IAC/C,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAC9C,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC;IACf,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAChC,EAAE,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;IAC/B,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAC9B,EAAE,CAAC,MAAM,EAAE,CAAC;IACZ,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,uDAAuD;IACrF,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AAChC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Utilities\r\n */\r\n\r\n/** Copy the input string to the system clipboard.\r\n * Obtained from https://techoverflow.net/2018/03/30/copying-strings-to-the-clipboard-using-pure-javascript/\r\n * @beta\r\n */\r\nexport function copyStringToClipboard(str: string): void {\r\n const el = document.createElement(\"textarea\");\r\n el.value = str;\r\n el.setAttribute(\"readonly\", \"\");\r\n el.style.position = \"absolute\";\r\n el.style.left = \"-9999px\";\r\n document.body.appendChild(el);\r\n el.select();\r\n document.execCommand(\"copy\"); // eslint-disable-line @typescript-eslint/no-deprecated\r\n document.body.removeChild(el);\r\n}\r\n"]}
|
|
@@ -7,7 +7,8 @@
|
|
|
7
7
|
* @module Effects
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.
|
|
10
|
+
exports.ClearEffectsTool = exports.AddEffectTool = void 0;
|
|
11
|
+
exports.refreshViewportsForEffect = refreshViewportsForEffect;
|
|
11
12
|
const core_bentley_1 = require("@itwin/core-bentley");
|
|
12
13
|
const core_frontend_1 = require("@itwin/core-frontend");
|
|
13
14
|
/** Adds a screen-space effect to the selected viewport.
|
|
@@ -64,5 +65,4 @@ function refreshViewportsForEffect(effectName) {
|
|
|
64
65
|
}
|
|
65
66
|
}
|
|
66
67
|
}
|
|
67
|
-
exports.refreshViewportsForEffect = refreshViewportsForEffect;
|
|
68
68
|
//# sourceMappingURL=EffectTools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EffectTools.js","sourceRoot":"","sources":["../../../src/effects/EffectTools.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;
|
|
1
|
+
{"version":3,"file":"EffectTools.js","sourceRoot":"","sources":["../../../src/effects/EffectTools.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAkEH,8DASC;AAzED,sDAA6C;AAC7C,wDAE8B;AAE9B;;GAEG;AACH,MAAsB,aAAc,SAAQ,oBAAI;IAY9B,KAAK,CAAC,GAAG;QACvB,2EAA2E;QAC3E,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;QACtC,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAChD,uBAAuB;YACvB,MAAM,OAAO,GAAG,yBAAS,CAAC,YAAY,CAAC,8BAA8B,CAAC;gBACpE,IAAI;gBACJ,wBAAwB,EAAE,IAAI,CAAC,wBAAwB;gBACvD,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC;YAEH,IAAA,qBAAM,EAAC,SAAS,KAAK,OAAO,CAAC,CAAC;YAC9B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAC3B,OAAO,CAAC,MAAM,EAAE,CAAC;YAEjB,aAAa,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,EAAE,GAAG,yBAAS,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9C,IAAI,EAAE;YACJ,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAEhC,OAAO,IAAI,CAAC;IACd,CAAC;;AAnCH,sCAoCC;AAnCyB,gCAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;AAqCjE;;GAEG;AACH,MAAa,gBAAiB,SAAQ,oBAAI;IAEjC,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAElC,KAAK,CAAC,GAAG;QACvB,yBAAS,CAAC,WAAW,CAAC,YAAY,EAAE,wBAAwB,EAAE,CAAC;QAC/D,OAAO,IAAI,CAAC;IACd,CAAC;;AARH,4CASC;AARwB,uBAAM,GAAG,cAAc,CAAC;AAUjD;;;GAGG;AACH,SAAgB,yBAAyB,CAAC,UAAkB;IAC1D,KAAK,MAAM,EAAE,IAAI,yBAAS,CAAC,WAAW,EAAE,CAAC;QACvC,KAAK,MAAM,YAAY,IAAI,EAAE,CAAC,kBAAkB,EAAE,CAAC;YACjD,IAAI,YAAY,KAAK,UAAU,EAAE,CAAC;gBAChC,EAAE,CAAC,aAAa,EAAE,CAAC;gBACnB,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Effects\r\n */\r\n\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport {\r\n IModelApp, ScreenSpaceEffectBuilder, ScreenSpaceEffectSource, Tool,\r\n} from \"@itwin/core-frontend\";\r\n\r\n/** Adds a screen-space effect to the selected viewport.\r\n * @beta\r\n */\r\nexport abstract class AddEffectTool extends Tool {\r\n private static readonly _registeredEffects = new Set<string>();\r\n\r\n /** Name of effect as used in keyins like `fdt effect add`. Ideally one word. */\r\n protected abstract get effectName(): string;\r\n /** vertex, fragment, and optional sampleSourcePixel GLSL snippets. */\r\n protected abstract get source(): ScreenSpaceEffectSource;\r\n /** Whether the fragment shader should include built-in `textureCoordFromPosition` function. */\r\n protected abstract get textureCoordFromPosition(): boolean;\r\n /** Add uniforms, varyings, etc. */\r\n protected abstract defineEffect(builder: ScreenSpaceEffectBuilder): void;\r\n\r\n public override async run(): Promise<boolean> {\r\n // Avoid conflicts with the names of other registered screen-space effects.\r\n const name = `fdt ${this.effectName}`;\r\n if (!AddEffectTool._registeredEffects.has(name)) {\r\n // Register the effect.\r\n const builder = IModelApp.renderSystem.createScreenSpaceEffectBuilder({\r\n name,\r\n textureCoordFromPosition: this.textureCoordFromPosition,\r\n source: this.source,\r\n });\r\n\r\n assert(undefined !== builder);\r\n this.defineEffect(builder);\r\n builder.finish();\r\n\r\n AddEffectTool._registeredEffects.add(name);\r\n }\r\n\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (vp)\r\n vp.addScreenSpaceEffect(name);\r\n\r\n return true;\r\n }\r\n}\r\n\r\n/** Removes all screen-space effects from the selected viewport.\r\n * @beta\r\n */\r\nexport class ClearEffectsTool extends Tool {\r\n public static override toolId = \"ClearEffects\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 0; }\r\n\r\n public override async run(): Promise<boolean> {\r\n IModelApp.viewManager.selectedView?.removeScreenSpaceEffects();\r\n return true;\r\n }\r\n}\r\n\r\n/** Requests that any viewport to which the specified effect has been applied redraw its contents.\r\n * Used by tools like [[VignetteConfig]] to update the view after the effect parameters are modified.\r\n * @beta\r\n */\r\nexport function refreshViewportsForEffect(effectName: string): void {\r\n for (const vp of IModelApp.viewManager) {\r\n for (const vpEffectName of vp.screenSpaceEffects) {\r\n if (vpEffectName === effectName) {\r\n vp.requestRedraw();\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n"]}
|
|
@@ -7,7 +7,11 @@
|
|
|
7
7
|
* @module Effects
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.
|
|
10
|
+
exports.randomInteger = randomInteger;
|
|
11
|
+
exports.randomIntegerInRange = randomIntegerInRange;
|
|
12
|
+
exports.randomFloat = randomFloat;
|
|
13
|
+
exports.randomFloatInRange = randomFloatInRange;
|
|
14
|
+
exports.randomPositionInRange = randomPositionInRange;
|
|
11
15
|
const core_geometry_1 = require("@itwin/core-geometry");
|
|
12
16
|
/** Generate integer in [min, max].
|
|
13
17
|
* @beta
|
|
@@ -15,28 +19,24 @@ const core_geometry_1 = require("@itwin/core-geometry");
|
|
|
15
19
|
function randomInteger(min, max) {
|
|
16
20
|
return Math.floor(Math.random() * (max - min + 1)) + min;
|
|
17
21
|
}
|
|
18
|
-
exports.randomInteger = randomInteger;
|
|
19
22
|
/** Generate random integer in [range.low, range.high].
|
|
20
23
|
* @beta
|
|
21
24
|
*/
|
|
22
25
|
function randomIntegerInRange(range) {
|
|
23
26
|
return Math.floor(Math.random() * (range.high - range.low + 1)) + range.low;
|
|
24
27
|
}
|
|
25
|
-
exports.randomIntegerInRange = randomIntegerInRange;
|
|
26
28
|
/** Generate random floating-point number in [min, max).
|
|
27
29
|
* @beta
|
|
28
30
|
*/
|
|
29
31
|
function randomFloat(min, max) {
|
|
30
32
|
return Math.random() * (max - min) + min;
|
|
31
33
|
}
|
|
32
|
-
exports.randomFloat = randomFloat;
|
|
33
34
|
/** Generate random floating-point number in [range.low, range.high).
|
|
34
35
|
* @beta
|
|
35
36
|
*/
|
|
36
37
|
function randomFloatInRange(range) {
|
|
37
38
|
return randomFloat(range.low, range.high);
|
|
38
39
|
}
|
|
39
|
-
exports.randomFloatInRange = randomFloatInRange;
|
|
40
40
|
/** Generate a random position in the specified range.
|
|
41
41
|
* @beta
|
|
42
42
|
*/
|
|
@@ -46,5 +46,4 @@ function randomPositionInRange(range) {
|
|
|
46
46
|
const z = randomFloat(range.low.z, range.high.z);
|
|
47
47
|
return new core_geometry_1.Point3d(x, y, z);
|
|
48
48
|
}
|
|
49
|
-
exports.randomPositionInRange = randomPositionInRange;
|
|
50
49
|
//# sourceMappingURL=Random.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Random.js","sourceRoot":"","sources":["../../../src/effects/Random.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG
|
|
1
|
+
{"version":3,"file":"Random.js","sourceRoot":"","sources":["../../../src/effects/Random.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;AAOH,sCAEC;AAKD,oDAEC;AAKD,kCAEC;AAKD,gDAEC;AAKD,sDAKC;AAtCD,wDAAiE;AAEjE;;GAEG;AACH,SAAgB,aAAa,CAAC,GAAW,EAAE,GAAW;IACpD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAAC,KAAc;IACjD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC;AAC9E,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAC,GAAW,EAAE,GAAW;IAClD,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAC,KAAc;IAC/C,OAAO,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CAAC,KAAc;IAClD,MAAM,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjD,MAAM,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjD,MAAM,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjD,OAAO,IAAI,uBAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9B,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Effects\r\n */\r\n\r\nimport { Point3d, Range1d, Range3d } from \"@itwin/core-geometry\";\r\n\r\n/** Generate integer in [min, max].\r\n * @beta\r\n */\r\nexport function randomInteger(min: number, max: number): number {\r\n return Math.floor(Math.random() * (max - min + 1)) + min;\r\n}\r\n\r\n/** Generate random integer in [range.low, range.high].\r\n * @beta\r\n */\r\nexport function randomIntegerInRange(range: Range1d): number {\r\n return Math.floor(Math.random() * (range.high - range.low + 1)) + range.low;\r\n}\r\n\r\n/** Generate random floating-point number in [min, max).\r\n * @beta\r\n */\r\nexport function randomFloat(min: number, max: number): number {\r\n return Math.random() * (max - min) + min;\r\n}\r\n\r\n/** Generate random floating-point number in [range.low, range.high).\r\n * @beta\r\n */\r\nexport function randomFloatInRange(range: Range1d): number {\r\n return randomFloat(range.low, range.high);\r\n}\r\n\r\n/** Generate a random position in the specified range.\r\n * @beta\r\n */\r\nexport function randomPositionInRange(range: Range3d): Point3d {\r\n const x = randomFloat(range.low.x, range.high.x);\r\n const y = randomFloat(range.low.y, range.high.y);\r\n const z = randomFloat(range.low.z, range.high.z);\r\n return new Point3d(x, y, z);\r\n}\r\n"]}
|
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
5
|
*--------------------------------------------------------------------------------------------*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.ToggleProjectExtentsTool = exports.
|
|
7
|
+
exports.ToggleProjectExtentsTool = exports.ProjectExtentsDecoration = void 0;
|
|
8
|
+
exports.toggleProjectExtents = toggleProjectExtents;
|
|
8
9
|
/** @packageDocumentation
|
|
9
10
|
* @module Tools
|
|
10
11
|
*/
|
|
@@ -78,7 +79,6 @@ exports.ProjectExtentsDecoration = ProjectExtentsDecoration;
|
|
|
78
79
|
function toggleProjectExtents(imodel, enabled) {
|
|
79
80
|
return ProjectExtentsDecoration.toggle(imodel, enabled);
|
|
80
81
|
}
|
|
81
|
-
exports.toggleProjectExtents = toggleProjectExtents;
|
|
82
82
|
/** Enable or disable project extents decoration.
|
|
83
83
|
* The key-in takes at most 1 argument (case-insensitive):
|
|
84
84
|
* - "ON" => enable project extents
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectExtents.js","sourceRoot":"","sources":["../../../src/tools/ProjectExtents.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;
|
|
1
|
+
{"version":3,"file":"ProjectExtents.js","sourceRoot":"","sources":["../../../src/tools/ProjectExtents.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module Tools\r\n */\r\n\r\nimport { AxisAlignedBox3d, ColorDef, LinePixels } from \"@itwin/core-common\";\r\nimport { DecorateContext, GraphicType, IModelApp, IModelConnection, Tool } from \"@itwin/core-frontend\";\r\nimport { parseToggle } from \"./parseToggle\";\r\n\r\n/** @beta */\r\nexport class ProjectExtentsDecoration {\r\n private static _decorator?: ProjectExtentsDecoration;\r\n protected _removeDecorationListener?: () => void;\r\n protected _extents: AxisAlignedBox3d;\r\n\r\n public constructor(iModel: IModelConnection) {\r\n this._extents = iModel.projectExtents;\r\n this.updateDecorationListener(true);\r\n }\r\n\r\n protected stop(): void { this.updateDecorationListener(false); }\r\n\r\n protected updateDecorationListener(add: boolean): void {\r\n if (this._removeDecorationListener) {\r\n if (!add) {\r\n this._removeDecorationListener();\r\n this._removeDecorationListener = undefined;\r\n }\r\n } else if (add) {\r\n if (!this._removeDecorationListener)\r\n this._removeDecorationListener = IModelApp.viewManager.addDecorator(this);\r\n }\r\n }\r\n\r\n public static get isActive(): boolean {\r\n return undefined !== ProjectExtentsDecoration._decorator;\r\n }\r\n\r\n /** This will allow the render system to cache and reuse the decorations created by this decorator's decorate() method. */\r\n public readonly useCachedDecorations = true;\r\n\r\n public decorate(context: DecorateContext): void {\r\n const vp = context.viewport;\r\n if (!vp.view.isSpatialView())\r\n return;\r\n\r\n const builderAccVis = context.createGraphicBuilder(GraphicType.WorldDecoration);\r\n const builderAccHid = context.createGraphicBuilder(GraphicType.WorldOverlay);\r\n const colorAccVis = ColorDef.white.adjustedForContrast(context.viewport.view.backgroundColor);\r\n const colorAccHid = colorAccVis.withAlpha(100);\r\n\r\n builderAccVis.setSymbology(colorAccVis, ColorDef.black, 3);\r\n builderAccHid.setSymbology(colorAccHid, ColorDef.black, 1, LinePixels.Code2);\r\n\r\n builderAccVis.addRangeBox(this._extents);\r\n builderAccHid.addRangeBox(this._extents);\r\n\r\n context.addDecorationFromBuilder(builderAccVis);\r\n context.addDecorationFromBuilder(builderAccHid);\r\n }\r\n\r\n // Returns true if extents become enabled.\r\n public static toggle(imodel: IModelConnection, enabled?: boolean): boolean {\r\n if (undefined !== enabled) {\r\n const alreadyEnabled = undefined !== ProjectExtentsDecoration._decorator;\r\n if (enabled === alreadyEnabled)\r\n return alreadyEnabled;\r\n }\r\n\r\n if (undefined === ProjectExtentsDecoration._decorator) {\r\n ProjectExtentsDecoration._decorator = new ProjectExtentsDecoration(imodel);\r\n return true;\r\n } else {\r\n ProjectExtentsDecoration._decorator.stop();\r\n ProjectExtentsDecoration._decorator = undefined;\r\n return false;\r\n }\r\n }\r\n}\r\n\r\n/** Enable or disable the project extents decoration. This decoration draws a box coinciding with the iModel's project extents.\r\n * @param imodel The iModel from which to obtain the extents.\r\n * @param enable If undefined, the current enabled state of the decoration will be inverted; otherwise it will be enabled if true, or disabled if false.\r\n * @returns true if the extents are now ON, false if they are now OFF.\r\n * @beta\r\n */\r\nexport function toggleProjectExtents(imodel: IModelConnection, enabled?: boolean): boolean {\r\n return ProjectExtentsDecoration.toggle(imodel, enabled);\r\n}\r\n\r\n/** Enable or disable project extents decoration.\r\n * The key-in takes at most 1 argument (case-insensitive):\r\n * - \"ON\" => enable project extents\r\n * - \"OFF\" => disable project extents\r\n * - \"TOGGLE\" or omitted => toggle project extents\r\n * @see [toggleProjectExtents]\r\n * @beta\r\n */\r\nexport class ToggleProjectExtentsTool extends Tool {\r\n public static override toolId = \"ToggleProjectExtents\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n public override async run(enable?: boolean): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (undefined !== vp && vp.view.isSpatialView()) {\r\n const iModel = vp.iModel;\r\n if (toggleProjectExtents(iModel, enable))\r\n vp.onChangeView.addOnce(() => toggleProjectExtents(iModel, false));\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n const enable = parseToggle(args[0]);\r\n if (typeof enable !== \"string\")\r\n await this.run(enable);\r\n\r\n return true;\r\n }\r\n}\r\n"]}
|
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
5
|
*--------------------------------------------------------------------------------------------*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.ApplyViewByIdTool = exports.ApplyViewTool = exports.SaveViewTool =
|
|
7
|
+
exports.ApplyViewByIdTool = exports.ApplyViewTool = exports.SaveViewTool = void 0;
|
|
8
|
+
exports.serializeViewState = serializeViewState;
|
|
9
|
+
exports.deserializeViewState = deserializeViewState;
|
|
8
10
|
/** @packageDocumentation
|
|
9
11
|
* @module Tools
|
|
10
12
|
*/
|
|
@@ -18,7 +20,6 @@ const parseArgs_1 = require("./parseArgs");
|
|
|
18
20
|
function serializeViewState(view) {
|
|
19
21
|
return view.toProps();
|
|
20
22
|
}
|
|
21
|
-
exports.serializeViewState = serializeViewState;
|
|
22
23
|
/** Instantiate a ViewState serialized by [serializeViewState].
|
|
23
24
|
* @beta
|
|
24
25
|
*/
|
|
@@ -32,7 +33,6 @@ async function deserializeViewState(props, iModel) {
|
|
|
32
33
|
await view.load();
|
|
33
34
|
return view;
|
|
34
35
|
}
|
|
35
|
-
exports.deserializeViewState = deserializeViewState;
|
|
36
36
|
/** Copies a JSON representation of the active viewport's view to the clipboard.
|
|
37
37
|
* * Arguments:
|
|
38
38
|
* * `quote`: format the JSON so it can be parsed directly by [ApplyViewTool].
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SavedViews.js","sourceRoot":"","sources":["../../../src/tools/SavedViews.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;
|
|
1
|
+
{"version":3,"file":"SavedViews.js","sourceRoot":"","sources":["../../../src/tools/SavedViews.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAiB/F,gDAEC;AAKD,oDAWC;AAjCD;;GAEG;AAEH,sDAAmD;AAEnD,wDAE8B;AAC9B,8DAA8D;AAC9D,2CAAwC;AAExC;;GAEG;AACH,SAAgB,kBAAkB,CAAC,IAAe;IAChD,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;AACxB,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,oBAAoB,CAAC,KAAqB,EAAE,MAAwB;IACxF,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,YAAY,CAAqB,KAAK,CAAC,mBAAmB,CAAC,aAAa,EAAE,SAAS,CAAiC,CAAC;IAC/I,IAAI,SAAS,KAAK,IAAI;QACpB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAErC,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACjD,IAAI,SAAS,KAAK,IAAI;QACpB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAEnD,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IAClB,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAa,YAAa,SAAQ,oBAAI;IAAtC;;QACU,WAAM,GAAG,KAAK,CAAC;IA0CzB,CAAC;IAzCQ,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAG3C,KAAK,CAAC,SAAmB;QAC9B,MAAM,IAAI,GAAG,IAAA,qBAAS,EAAC,SAAS,CAAC,CAAC;QAClC,SAAS,MAAM,CAAC,IAAY;YAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAClD,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC;QAEnC,OAAO,IAAI,CAAC;IACd,CAAC;IAEe,KAAK,CAAC,WAAW,CAAC,GAAG,IAAc;QACjD,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAClB,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;;YAElB,OAAO,KAAK,CAAC;IACjB,CAAC;IAEe,KAAK,CAAC,GAAG;QACvB,MAAM,EAAE,GAAG,yBAAS,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9C,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;YACrB,yBAAS,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,oCAAoB,CAAC,qCAAqB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC;YAC5G,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;YACvD,IAAI,IAAI,CAAC,MAAM;gBACb,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;YACzC,IAAA,0CAAqB,EAAC,IAAI,CAAC,CAAC;YAC5B,yBAAS,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,oCAAoB,CAAC,qCAAqB,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC,CAAC;QAC1H,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,yBAAS,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,oCAAoB,CAAC,qCAAqB,CAAC,KAAK,EAAE,2BAAY,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,4BAA4B,CAAC,CAAC,CAAC;QAClK,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;;AA1CH,oCA2CC;AAvCwB,mBAAM,GAAG,UAAU,AAAb,CAAc;AAyC7C;;;;GAIG;AACH,MAAa,aAAc,SAAQ,oBAAI;IAE9B,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAElC,KAAK,CAAC,GAAG,CAAC,IAAgB;QACxC,MAAM,EAAE,GAAG,yBAAS,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9C,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,EAAE;YACxC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAEtB,OAAO,IAAI,CAAC;IACd,CAAC;IAEe,KAAK,CAAC,WAAW,CAAC,GAAG,IAAc;QACjD,MAAM,EAAE,GAAG,yBAAS,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9C,IAAI,SAAS,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM;YACvC,OAAO,IAAI,CAAC;QAEd,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;YACzD,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,yBAAS,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,oCAAoB,CAAC,qCAAqB,CAAC,IAAI,EAAE,2BAAY,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,4BAA4B,CAAC,CAAC,CAAC;QACjK,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;;AA5BH,sCA6BC;AA5BwB,oBAAM,GAAG,WAAW,CAAC;AA8B9C;;GAEG;AACH,MAAa,iBAAkB,SAAQ,oBAAI;IAElC,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAElC,KAAK,CAAC,WAAW,CAAC,GAAG,IAAc;QACjD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAEe,KAAK,CAAC,GAAG,CAAC,MAAe;QACvC,IAAI,OAAO,MAAM,KAAK,QAAQ;YAC5B,OAAO,KAAK,CAAC;QAEf,MAAM,EAAE,GAAG,yBAAS,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9C,IAAI,CAAC,EAAE;YACL,OAAO,KAAK,CAAC;QAEf,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACzC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAEpB,OAAO,IAAI,CAAC;IACd,CAAC;;AAtBH,8CAuBC;AAtBwB,wBAAM,GAAG,eAAe,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module Tools\r\n */\r\n\r\nimport { BentleyError } from \"@itwin/core-bentley\";\r\nimport { ViewStateProps } from \"@itwin/core-common\";\r\nimport {\r\n EntityState, IModelApp, IModelConnection, NotifyMessageDetails, OutputMessagePriority, Tool, ViewState,\r\n} from \"@itwin/core-frontend\";\r\nimport { copyStringToClipboard } from \"../ClipboardUtilities\";\r\nimport { parseArgs } from \"./parseArgs\";\r\n\r\n/** Serialize a ViewState to JSON. The returned JSON can later be passed to [deserializeViewState] to reinstantiate the ViewState.\r\n * @beta\r\n */\r\nexport function serializeViewState(view: ViewState): ViewStateProps {\r\n return view.toProps();\r\n}\r\n\r\n/** Instantiate a ViewState serialized by [serializeViewState].\r\n * @beta\r\n */\r\nexport async function deserializeViewState(props: ViewStateProps, iModel: IModelConnection): Promise<ViewState> {\r\n const ctor = await iModel.findClassFor<typeof EntityState>(props.viewDefinitionProps.classFullName, undefined) as typeof ViewState | undefined;\r\n if (undefined === ctor)\r\n throw new Error(\"Class not found\");\r\n\r\n const view = ctor.createFromProps(props, iModel);\r\n if (undefined === view)\r\n throw new Error(\"Failed to construct ViewState\");\r\n\r\n await view.load();\r\n return view;\r\n}\r\n\r\n/** Copies a JSON representation of the active viewport's view to the clipboard.\r\n * * Arguments:\r\n * * `quote`: format the JSON so it can be parsed directly by [ApplyViewTool].\r\n * @beta\r\n */\r\nexport class SaveViewTool extends Tool {\r\n private _quote = false;\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 1; }\r\n public static override toolId = \"SaveView\";\r\n\r\n public parse(inputArgs: string[]) {\r\n const args = parseArgs(inputArgs);\r\n function getArg(name: string): true | undefined {\r\n return args.getBoolean(name) ? true : undefined;\r\n }\r\n\r\n this._quote = true === getArg(\"q\");\r\n\r\n return true;\r\n }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n if (this.parse(args))\r\n return this.run();\r\n else\r\n return false;\r\n }\r\n\r\n public override async run(): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (undefined === vp) {\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Error, \"No viewport\"));\r\n return true;\r\n }\r\n\r\n try {\r\n let json = JSON.stringify(serializeViewState(vp.view));\r\n if (this._quote)\r\n json = `\"${json.replace(/\"/g, '\"\"')}\"`;\r\n copyStringToClipboard(json);\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, \"JSON copied to clipboard\"));\r\n } catch (err) {\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Error, BentleyError.getErrorMessage(err) || \"An unknown error occurred.\"));\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n\r\n/** Given a string containing a JSON representation of a ViewState, applies that ViewState to the active viewport.\r\n * The JSON string should be enclosed in double quotes and embedded double quote should be duplicated, example:\r\n * - \"{\"\"viewDefinitionProps\"\":{\"\"classFullName\"\":\"\"BisCore:SpatialViewDefinition\"\",\"\"id\"\":\"\"0x1a\"\"}}\"\r\n * @beta\r\n */\r\nexport class ApplyViewTool extends Tool {\r\n public static override toolId = \"ApplyView\";\r\n public static override get maxArgs() { return 1; }\r\n public static override get minArgs() { return 1; }\r\n\r\n public override async run(view?: ViewState): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (undefined !== view && undefined !== vp)\r\n vp.changeView(view);\r\n\r\n return true;\r\n }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (undefined === vp || 0 === args.length)\r\n return true;\r\n\r\n try {\r\n const json = JSON.parse(args[0]);\r\n\r\n const view = await deserializeViewState(json, vp.iModel);\r\n await this.run(view);\r\n } catch (err) {\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, BentleyError.getErrorMessage(err) || \"An unknown error occurred.\"));\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n\r\n/** Given the Id of a persistent ViewDefinition, applies that view to the active viewport.\r\n * @beta\r\n */\r\nexport class ApplyViewByIdTool extends Tool {\r\n public static override toolId = \"ApplyViewById\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n return this.run(args[0]);\r\n }\r\n\r\n public override async run(viewId?: string): Promise<boolean> {\r\n if (typeof viewId !== \"string\")\r\n return false;\r\n\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return false;\r\n\r\n vp.iModel.views.load(viewId).then((view) => {\r\n vp.changeView(view);\r\n }).catch(() => { });\r\n\r\n return true;\r\n }\r\n}\r\n"]}
|
|
@@ -28,7 +28,7 @@ class QueryScheduleScriptTool extends DisplayStyleTools_1.DisplayStyleTool {
|
|
|
28
28
|
static get maxArgs() { return 3; }
|
|
29
29
|
async parse(input, vp) {
|
|
30
30
|
const args = (0, parseArgs_1.parseArgs)(input);
|
|
31
|
-
// eslint-disable-next-line
|
|
31
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
32
32
|
this._sourceId = args.get("i") ?? vp.displayStyle.scheduleScriptReference?.sourceId;
|
|
33
33
|
if (!this._sourceId)
|
|
34
34
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScheduleScriptTools.js","sourceRoot":"","sources":["../../../src/tools/ScheduleScriptTools.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module Tools\r\n */\r\n\r\nimport { assert, CompressedId64Set } from \"@itwin/core-bentley\";\r\nimport {\r\n ElementLoadOptions, RenderSchedule, RenderTimelineProps,\r\n} from \"@itwin/core-common\";\r\nimport { Viewport } from \"@itwin/core-frontend\";\r\nimport { copyStringToClipboard } from \"../ClipboardUtilities\";\r\nimport { parseArgs } from \"./parseArgs\";\r\nimport { DisplayStyleTool } from \"./DisplayStyleTools\";\r\n\r\n/** Query the schedule script JSON from an element.\r\n * @beta\r\n */\r\nexport class QueryScheduleScriptTool extends DisplayStyleTool {\r\n private _sourceId?: string;\r\n private _action: \"copy\" | \"break\" = \"copy\";\r\n private _includeElementIds = false;\r\n private _countElementIds = false;\r\n private _expandElementIds = false;\r\n\r\n public static override toolId = \"QueryScheduleScript\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 3; }\r\n\r\n public async parse(input: string[], vp: Viewport) {\r\n const args = parseArgs(input);\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n this._sourceId = args.get(\"i\") ?? vp.displayStyle.scheduleScriptReference?.sourceId;\r\n if (!this._sourceId)\r\n return false;\r\n\r\n const action = args.get(\"a\") ?? \"\";\r\n this._action = action.length > 0 && \"b\" === action[0].toLowerCase() ? \"break\" : \"copy\";\r\n\r\n this._includeElementIds = this._countElementIds = this._expandElementIds = false;\r\n const ids = args.get(\"e\");\r\n if (ids && ids.length > 0) {\r\n switch (ids[0].toLowerCase()) {\r\n case \"i\":\r\n this._includeElementIds = true;\r\n break;\r\n case \"c\":\r\n this._includeElementIds = this._countElementIds = true;\r\n break;\r\n case \"e\":\r\n this._includeElementIds = this._expandElementIds = true;\r\n break;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n if (!this._sourceId || !this._action)\r\n return false;\r\n\r\n const opts: ElementLoadOptions = {\r\n displayStyle: { omitScheduleScriptElementIds: !this._includeElementIds },\r\n renderTimeline: { omitScriptElementIds: !this._includeElementIds },\r\n };\r\n\r\n let script;\r\n const props = await vp.iModel.elements.loadProps(this._sourceId, opts) as any;\r\n if (props.script)\r\n script = JSON.parse((props.script as RenderTimelineProps).script) as RenderSchedule.ScriptProps;\r\n else if (props.jsonProperties?.styles?.scheduleScript)\r\n script = props.jsonProperties.styles.scheduleScript as RenderSchedule.ScriptProps;\r\n\r\n if (!script)\r\n return false;\r\n\r\n if (this._countElementIds || this._expandElementIds) {\r\n for (const model of script) {\r\n for (const elem of model.elementTimelines) {\r\n const elemIds = typeof elem.elementIds === \"string\" ? CompressedId64Set.decompressArray(elem.elementIds) : elem.elementIds;\r\n if (this._countElementIds)\r\n elem.elementIds = elemIds.length as any;\r\n else\r\n elem.elementIds = elemIds;\r\n }\r\n }\r\n }\r\n\r\n if (this._action === \"break\")\r\n debugger; // eslint-disable-line no-debugger\r\n else\r\n copyStringToClipboard(JSON.stringify(script, null, 2));\r\n\r\n return true;\r\n }\r\n}\r\n\r\ninterface Timeline<Entry extends RenderSchedule.TimelineEntry> {\r\n readonly length: number;\r\n getEntry(index: number): Entry | undefined;\r\n}\r\n\r\nfunction reverseTimeline<Entry extends RenderSchedule.TimelineEntry>(timeline: Timeline<Entry> | undefined, accept: (time: number, entry: Entry) => void): void {\r\n if (!timeline)\r\n return;\r\n\r\n const len = timeline.length;\r\n for (let i = 0; i < len; i++) {\r\n const timeEntry = timeline.getEntry(i);\r\n const valueEntry = timeline.getEntry(len - i - 1);\r\n assert(undefined !== timeEntry);\r\n assert(undefined !== valueEntry);\r\n accept(timeEntry.time, valueEntry);\r\n }\r\n}\r\n\r\n/** A tool that modifies the [RenderSchedule.Script]($common), if any, associated with the selected [Viewport]($frontend) such that the entries in each\r\n * of its [RenderSchedule.ElementTimeline]($common)s are reversed.\r\n * @beta\r\n */\r\nexport class ReverseScheduleScriptTool extends DisplayStyleTool {\r\n public static override toolId = \"ReverseScheduleScript\";\r\n\r\n public override async execute(vp: Viewport): Promise<boolean> {\r\n const script = vp?.displayStyle.scheduleScript;\r\n if (!script || script.modelTimelines.some((x) => x.omitsElementIds))\r\n return false;\r\n\r\n const builder = new RenderSchedule.ScriptBuilder();\r\n for (const modelTimeline of script.modelTimelines) {\r\n const modelBuilder = builder.addModelTimeline(modelTimeline.modelId);\r\n for (const elemTimeline of modelTimeline.elementTimelines) {\r\n const elemBuilder = modelBuilder.addElementTimeline(elemTimeline.elementIds);\r\n reverseTimeline(elemTimeline.visibility, (time, entry) => elemBuilder.addVisibility(time, entry.value, entry.interpolation));\r\n reverseTimeline(elemTimeline.color, (time, entry) => elemBuilder.addColor(time, entry.value, entry.interpolation));\r\n reverseTimeline(elemTimeline.transform, (time, entry) => elemBuilder.addTransform(time, entry.value, entry.components, entry.interpolation));\r\n reverseTimeline(elemTimeline.cuttingPlane, (time, entry) => elemBuilder.addCuttingPlane(time, entry.value, entry.interpolation));\r\n }\r\n }\r\n\r\n const scriptProps = builder.finish();\r\n const newScript = RenderSchedule.Script.fromJSON(scriptProps);\r\n assert(undefined !== newScript);\r\n\r\n vp.displayStyle.scheduleScript = newScript;\r\n return true;\r\n }\r\n\r\n public async parse() {\r\n return true;\r\n }\r\n}\r\n\r\n/** A tool that changes or removes the [RenderSchedule.Script]($common) associated with the selected [Viewport]($frontend).\r\n * @beta\r\n */\r\nexport class SetScheduleScriptTool extends DisplayStyleTool {\r\n public static override toolId = \"SetScheduleScript\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n private _script?: RenderSchedule.Script;\r\n\r\n public override async parse(args: string[]): Promise<boolean> {\r\n if (args.length === 0)\r\n return true; // clear schedule script.\r\n\r\n try {\r\n this._script = RenderSchedule.Script.fromJSON(JSON.parse(args[0]));\r\n } catch (ex) {\r\n if (ex instanceof Error)\r\n alert(ex.toString());\r\n }\r\n\r\n return undefined !== this._script;\r\n }\r\n\r\n public override async execute(vp: Viewport): Promise<boolean> {\r\n vp.displayStyle.scheduleScript = this._script;\r\n return true;\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"ScheduleScriptTools.js","sourceRoot":"","sources":["../../../src/tools/ScheduleScriptTools.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module Tools\r\n */\r\n\r\nimport { assert, CompressedId64Set } from \"@itwin/core-bentley\";\r\nimport {\r\n ElementLoadOptions, RenderSchedule, RenderTimelineProps,\r\n} from \"@itwin/core-common\";\r\nimport { Viewport } from \"@itwin/core-frontend\";\r\nimport { copyStringToClipboard } from \"../ClipboardUtilities\";\r\nimport { parseArgs } from \"./parseArgs\";\r\nimport { DisplayStyleTool } from \"./DisplayStyleTools\";\r\n\r\n/** Query the schedule script JSON from an element.\r\n * @beta\r\n */\r\nexport class QueryScheduleScriptTool extends DisplayStyleTool {\r\n private _sourceId?: string;\r\n private _action: \"copy\" | \"break\" = \"copy\";\r\n private _includeElementIds = false;\r\n private _countElementIds = false;\r\n private _expandElementIds = false;\r\n\r\n public static override toolId = \"QueryScheduleScript\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 3; }\r\n\r\n public async parse(input: string[], vp: Viewport) {\r\n const args = parseArgs(input);\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n this._sourceId = args.get(\"i\") ?? vp.displayStyle.scheduleScriptReference?.sourceId;\r\n if (!this._sourceId)\r\n return false;\r\n\r\n const action = args.get(\"a\") ?? \"\";\r\n this._action = action.length > 0 && \"b\" === action[0].toLowerCase() ? \"break\" : \"copy\";\r\n\r\n this._includeElementIds = this._countElementIds = this._expandElementIds = false;\r\n const ids = args.get(\"e\");\r\n if (ids && ids.length > 0) {\r\n switch (ids[0].toLowerCase()) {\r\n case \"i\":\r\n this._includeElementIds = true;\r\n break;\r\n case \"c\":\r\n this._includeElementIds = this._countElementIds = true;\r\n break;\r\n case \"e\":\r\n this._includeElementIds = this._expandElementIds = true;\r\n break;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n if (!this._sourceId || !this._action)\r\n return false;\r\n\r\n const opts: ElementLoadOptions = {\r\n displayStyle: { omitScheduleScriptElementIds: !this._includeElementIds },\r\n renderTimeline: { omitScriptElementIds: !this._includeElementIds },\r\n };\r\n\r\n let script;\r\n const props = await vp.iModel.elements.loadProps(this._sourceId, opts) as any;\r\n if (props.script)\r\n script = JSON.parse((props.script as RenderTimelineProps).script) as RenderSchedule.ScriptProps;\r\n else if (props.jsonProperties?.styles?.scheduleScript)\r\n script = props.jsonProperties.styles.scheduleScript as RenderSchedule.ScriptProps;\r\n\r\n if (!script)\r\n return false;\r\n\r\n if (this._countElementIds || this._expandElementIds) {\r\n for (const model of script) {\r\n for (const elem of model.elementTimelines) {\r\n const elemIds = typeof elem.elementIds === \"string\" ? CompressedId64Set.decompressArray(elem.elementIds) : elem.elementIds;\r\n if (this._countElementIds)\r\n elem.elementIds = elemIds.length as any;\r\n else\r\n elem.elementIds = elemIds;\r\n }\r\n }\r\n }\r\n\r\n if (this._action === \"break\")\r\n debugger; // eslint-disable-line no-debugger\r\n else\r\n copyStringToClipboard(JSON.stringify(script, null, 2));\r\n\r\n return true;\r\n }\r\n}\r\n\r\ninterface Timeline<Entry extends RenderSchedule.TimelineEntry> {\r\n readonly length: number;\r\n getEntry(index: number): Entry | undefined;\r\n}\r\n\r\nfunction reverseTimeline<Entry extends RenderSchedule.TimelineEntry>(timeline: Timeline<Entry> | undefined, accept: (time: number, entry: Entry) => void): void {\r\n if (!timeline)\r\n return;\r\n\r\n const len = timeline.length;\r\n for (let i = 0; i < len; i++) {\r\n const timeEntry = timeline.getEntry(i);\r\n const valueEntry = timeline.getEntry(len - i - 1);\r\n assert(undefined !== timeEntry);\r\n assert(undefined !== valueEntry);\r\n accept(timeEntry.time, valueEntry);\r\n }\r\n}\r\n\r\n/** A tool that modifies the [RenderSchedule.Script]($common), if any, associated with the selected [Viewport]($frontend) such that the entries in each\r\n * of its [RenderSchedule.ElementTimeline]($common)s are reversed.\r\n * @beta\r\n */\r\nexport class ReverseScheduleScriptTool extends DisplayStyleTool {\r\n public static override toolId = \"ReverseScheduleScript\";\r\n\r\n public override async execute(vp: Viewport): Promise<boolean> {\r\n const script = vp?.displayStyle.scheduleScript;\r\n if (!script || script.modelTimelines.some((x) => x.omitsElementIds))\r\n return false;\r\n\r\n const builder = new RenderSchedule.ScriptBuilder();\r\n for (const modelTimeline of script.modelTimelines) {\r\n const modelBuilder = builder.addModelTimeline(modelTimeline.modelId);\r\n for (const elemTimeline of modelTimeline.elementTimelines) {\r\n const elemBuilder = modelBuilder.addElementTimeline(elemTimeline.elementIds);\r\n reverseTimeline(elemTimeline.visibility, (time, entry) => elemBuilder.addVisibility(time, entry.value, entry.interpolation));\r\n reverseTimeline(elemTimeline.color, (time, entry) => elemBuilder.addColor(time, entry.value, entry.interpolation));\r\n reverseTimeline(elemTimeline.transform, (time, entry) => elemBuilder.addTransform(time, entry.value, entry.components, entry.interpolation));\r\n reverseTimeline(elemTimeline.cuttingPlane, (time, entry) => elemBuilder.addCuttingPlane(time, entry.value, entry.interpolation));\r\n }\r\n }\r\n\r\n const scriptProps = builder.finish();\r\n const newScript = RenderSchedule.Script.fromJSON(scriptProps);\r\n assert(undefined !== newScript);\r\n\r\n vp.displayStyle.scheduleScript = newScript;\r\n return true;\r\n }\r\n\r\n public async parse() {\r\n return true;\r\n }\r\n}\r\n\r\n/** A tool that changes or removes the [RenderSchedule.Script]($common) associated with the selected [Viewport]($frontend).\r\n * @beta\r\n */\r\nexport class SetScheduleScriptTool extends DisplayStyleTool {\r\n public static override toolId = \"SetScheduleScript\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n private _script?: RenderSchedule.Script;\r\n\r\n public override async parse(args: string[]): Promise<boolean> {\r\n if (args.length === 0)\r\n return true; // clear schedule script.\r\n\r\n try {\r\n this._script = RenderSchedule.Script.fromJSON(JSON.parse(args[0]));\r\n } catch (ex) {\r\n if (ex instanceof Error)\r\n alert(ex.toString());\r\n }\r\n\r\n return undefined !== this._script;\r\n }\r\n\r\n public override async execute(vp: Viewport): Promise<boolean> {\r\n vp.displayStyle.scheduleScript = this._script;\r\n return true;\r\n }\r\n}\r\n"]}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
5
|
*--------------------------------------------------------------------------------------------*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.parseArgs =
|
|
7
|
+
exports.parseArgs = parseArgs;
|
|
8
8
|
/** Given a list of arguments, parse the arguments into name-value pairs.
|
|
9
9
|
* Each input string is expected to be of the format "name=value".
|
|
10
10
|
* Argument names are converted to lower-case; values are left untouched.
|
|
@@ -48,5 +48,4 @@ function parseArgs(args) {
|
|
|
48
48
|
},
|
|
49
49
|
};
|
|
50
50
|
}
|
|
51
|
-
exports.parseArgs = parseArgs;
|
|
52
51
|
//# sourceMappingURL=parseArgs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseArgs.js","sourceRoot":"","sources":["../../../src/tools/parseArgs.ts"],"names":[],"mappings":";AAAA;;;+FAG+F
|
|
1
|
+
{"version":3,"file":"parseArgs.js","sourceRoot":"","sources":["../../../src/tools/parseArgs.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;AA0B/F,8BA8CC;AAnDD;;;;GAIG;AACH,SAAgB,SAAS,CAAC,IAAc;IACtC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,KAAK,KAAK,CAAC,MAAM;YACpB,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,EAAE;QACpC,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1B,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE;YAC1B,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;gBACtB,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAExB,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;IAEF,OAAO;QACL,GAAG,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC;QAEzC,UAAU,EAAE,CAAC,IAAY,EAAE,EAAE;YAC3B,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,SAAS,KAAK,GAAG,IAAI,CAAC,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,CAAC;gBACnD,OAAO,GAAG,KAAK,GAAG,CAAC;YAErB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,UAAU,EAAE,CAAC,IAAY,EAAE,EAAE;YAC3B,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,SAAS,KAAK,GAAG;gBACnB,OAAO,SAAS,CAAC;YAEnB,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACrC,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;QAC7C,CAAC;QAED,QAAQ,EAAE,CAAC,IAAY,EAAE,EAAE;YACzB,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,SAAS,KAAK,GAAG;gBACnB,OAAO,SAAS,CAAC;YAEnB,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACnC,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;QAC7C,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module Tools\r\n */\r\n\r\n/** Represents parsed arguments as name-value pairs.\r\n * @see [[parseArgs]]\r\n * @beta\r\n */\r\nexport interface ToolArgs {\r\n /** Find the value associated with the first argument that begins with the specified prefix, case-insensitively; or undefined if no such argument exists. */\r\n get(namePrefix: string): string | undefined;\r\n /** Convert the value associated with the first argument beginning with the specified prefix to an integer; return undefined if not found or not an integer. */\r\n getInteger(namePrefix: string): number | undefined;\r\n /** Convert the value associated with the first argument beginning with the specified prefix to a boolean, where \"1\" indicates true and \"0\" indicates false. */\r\n getBoolean(namePrefix: string): boolean | undefined;\r\n /** Convert the value associated with the first argument beginning with the specified prefix to a float; return undefined if not found or not a float. */\r\n getFloat(namePrefix: string): number | undefined;\r\n}\r\n\r\n/** Given a list of arguments, parse the arguments into name-value pairs.\r\n * Each input string is expected to be of the format \"name=value\".\r\n * Argument names are converted to lower-case; values are left untouched.\r\n * @beta\r\n */\r\nexport function parseArgs(args: string[]): ToolArgs {\r\n const map = new Map<string, string>();\r\n for (const arg of args) {\r\n const parts = arg.split(\"=\");\r\n if (2 === parts.length)\r\n map.set(parts[0].toLowerCase(), parts[1]);\r\n }\r\n\r\n const findArgValue = (name: string) => {\r\n name = name.toLowerCase();\r\n for (const key of map.keys())\r\n if (key.startsWith(name))\r\n return map.get(key);\r\n\r\n return undefined;\r\n };\r\n\r\n return {\r\n get: (name: string) => findArgValue(name),\r\n\r\n getBoolean: (name: string) => {\r\n const val = findArgValue(name);\r\n if (undefined !== val && (val === \"0\" || val === \"1\"))\r\n return val === \"1\";\r\n\r\n return undefined;\r\n },\r\n\r\n getInteger: (name: string) => {\r\n const val = findArgValue(name);\r\n if (undefined === val)\r\n return undefined;\r\n\r\n const num = Number.parseInt(val, 10);\r\n return Number.isNaN(num) ? undefined : num;\r\n },\r\n\r\n getFloat: (name: string) => {\r\n const val = findArgValue(name);\r\n if (undefined === val)\r\n return undefined;\r\n\r\n const num = Number.parseFloat(val);\r\n return Number.isNaN(num) ? undefined : num;\r\n },\r\n };\r\n}\r\n"]}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
5
|
*--------------------------------------------------------------------------------------------*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.parseBoolean =
|
|
7
|
+
exports.parseBoolean = parseBoolean;
|
|
8
8
|
/** @packageDocumentation
|
|
9
9
|
* @module Utilities
|
|
10
10
|
*/
|
|
@@ -23,5 +23,4 @@ function parseBoolean(arg) {
|
|
|
23
23
|
default: return undefined;
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
|
-
exports.parseBoolean = parseBoolean;
|
|
27
26
|
//# sourceMappingURL=parseBoolean.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseBoolean.js","sourceRoot":"","sources":["../../../src/tools/parseBoolean.ts"],"names":[],"mappings":";AAAA;;;+FAG+F
|
|
1
|
+
{"version":3,"file":"parseBoolean.js","sourceRoot":"","sources":["../../../src/tools/parseBoolean.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;AAU/F,oCAWC;AAnBD;;GAEG;AAEH;;;GAGG;AACH,SAAgB,YAAY,CAAC,GAAuB;IAClD,IAAI,SAAS,KAAK,GAAG;QACnB,OAAO,SAAS,CAAC;IAEnB,QAAQ,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;QAC1B,KAAK,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC;QACvB,KAAK,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC;QACzB,KAAK,KAAK,CAAC,CAAC,OAAO,KAAK,CAAC;QACzB,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,CAAC;QAC3B,OAAO,CAAC,CAAC,OAAO,SAAS,CAAC;IAC5B,CAAC;AACH,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module Utilities\r\n */\r\n\r\n/** Parses a string case-insensitively returning true for \"ON\" or \"TRUE\", false for \"OFF\" or \"FALSE\" and undefined otherwise.\r\n * Used by various tools which take such arguments.\r\n * @beta\r\n */\r\nexport function parseBoolean(arg: string | undefined): boolean | undefined {\r\n if (undefined === arg)\r\n return undefined;\r\n\r\n switch (arg.toLowerCase()) {\r\n case \"on\": return true;\r\n case \"true\": return true;\r\n case \"off\": return false;\r\n case \"false\": return false;\r\n default: return undefined;\r\n }\r\n}\r\n"]}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
5
|
*--------------------------------------------------------------------------------------------*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.parseToggle =
|
|
7
|
+
exports.parseToggle = parseToggle;
|
|
8
8
|
/** @packageDocumentation
|
|
9
9
|
* @module Utilities
|
|
10
10
|
*/
|
|
@@ -22,5 +22,4 @@ function parseToggle(arg) {
|
|
|
22
22
|
default: return arg;
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
|
-
exports.parseToggle = parseToggle;
|
|
26
25
|
//# sourceMappingURL=parseToggle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseToggle.js","sourceRoot":"","sources":["../../../src/tools/parseToggle.ts"],"names":[],"mappings":";AAAA;;;+FAG+F
|
|
1
|
+
{"version":3,"file":"parseToggle.js","sourceRoot":"","sources":["../../../src/tools/parseToggle.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;AAU/F,kCAUC;AAlBD;;GAEG;AAEH;;;GAGG;AACH,SAAgB,WAAW,CAAC,GAAuB;IACjD,IAAI,SAAS,KAAK,GAAG;QACnB,OAAO,SAAS,CAAC;IAEnB,QAAQ,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;QAC1B,KAAK,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC;QACvB,KAAK,KAAK,CAAC,CAAC,OAAO,KAAK,CAAC;QACzB,KAAK,QAAQ,CAAC,CAAC,OAAO,SAAS,CAAC;QAChC,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC;IACtB,CAAC;AACH,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module Utilities\r\n */\r\n\r\n/** Parses a string case-insensitively returning true for \"ON\", false for \"OFF\" undefined for \"TOGGLE\" or undefined, and the input string for anything else\r\n * Used by various tools which take such arguments.\r\n * @beta\r\n */\r\nexport function parseToggle(arg: string | undefined): string | boolean | undefined {\r\n if (undefined === arg)\r\n return undefined;\r\n\r\n switch (arg.toLowerCase()) {\r\n case \"on\": return true;\r\n case \"off\": return false;\r\n case \"toggle\": return undefined;\r\n default: return arg;\r\n }\r\n}\r\n"]}
|
package/lib/cjs/ui/Button.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
5
|
*--------------------------------------------------------------------------------------------*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.createButton =
|
|
7
|
+
exports.createButton = createButton;
|
|
8
8
|
/** Creates a Button as specified by the ButtonProps.
|
|
9
9
|
* @alpha
|
|
10
10
|
*/
|
|
@@ -23,5 +23,4 @@ function createButton(props) {
|
|
|
23
23
|
props.parent.appendChild(div);
|
|
24
24
|
return { button, div };
|
|
25
25
|
}
|
|
26
|
-
exports.createButton = createButton;
|
|
27
26
|
//# sourceMappingURL=Button.js.map
|
package/lib/cjs/ui/Button.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/ui/Button.ts"],"names":[],"mappings":";AAAA;;;+FAG+F
|
|
1
|
+
{"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/ui/Button.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;AAkC/F,oCAiBC;AApBD;;GAEG;AACH,SAAgB,YAAY,CAAC,KAAkB;IAC7C,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAElE,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;IACvB,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC3B,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9D,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAExB,IAAI,SAAS,KAAK,KAAK,CAAC,EAAE;QACxB,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;IACvB,IAAI,SAAS,KAAK,KAAK,CAAC,OAAO;QAC7B,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC;IAC5B,IAAI,SAAS,KAAK,KAAK,CAAC,MAAM;QAC5B,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAEhC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACzB,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module Controls\r\n */\r\n\r\n/** Wraps an HTML button\r\n * @alpha\r\n */\r\nexport interface Button {\r\n button: HTMLInputElement;\r\n div: HTMLElement;\r\n}\r\n\r\n/** Callback invoked by Button when clicked.\r\n * @alpha\r\n */\r\nexport type ButtonHandler = (button: HTMLInputElement) => void;\r\n\r\n/** Describes how to create a Button.\r\n * @alpha\r\n */\r\nexport interface ButtonProps {\r\n handler: ButtonHandler;\r\n id?: string;\r\n parent?: HTMLElement;\r\n value: string;\r\n inline?: boolean;\r\n tooltip?: string;\r\n}\r\n\r\n/** Creates a Button as specified by the ButtonProps.\r\n * @alpha\r\n */\r\nexport function createButton(props: ButtonProps): Button {\r\n const div = document.createElement(props.inline ? \"span\" : \"div\");\r\n\r\n const button = document.createElement(\"input\");\r\n button.type = \"button\";\r\n button.value = props.value;\r\n button.addEventListener(\"click\", () => props.handler(button));\r\n div.appendChild(button);\r\n\r\n if (undefined !== props.id)\r\n button.id = props.id;\r\n if (undefined !== props.tooltip)\r\n div.title = props.tooltip;\r\n if (undefined !== props.parent)\r\n props.parent.appendChild(div);\r\n\r\n return { button, div };\r\n}\r\n"]}
|
package/lib/cjs/ui/CheckBox.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
5
|
*--------------------------------------------------------------------------------------------*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.createCheckBox =
|
|
7
|
+
exports.createCheckBox = createCheckBox;
|
|
8
8
|
/** @alpha */
|
|
9
9
|
function createCheckBox(props) {
|
|
10
10
|
const div = document.createElement("div");
|
|
@@ -24,5 +24,4 @@ function createCheckBox(props) {
|
|
|
24
24
|
div.title = props.tooltip;
|
|
25
25
|
return { label, checkbox, div };
|
|
26
26
|
}
|
|
27
|
-
exports.createCheckBox = createCheckBox;
|
|
28
27
|
//# sourceMappingURL=CheckBox.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CheckBox.js","sourceRoot":"","sources":["../../../src/ui/CheckBox.ts"],"names":[],"mappings":";AAAA;;;+FAG+F
|
|
1
|
+
{"version":3,"file":"CheckBox.js","sourceRoot":"","sources":["../../../src/ui/CheckBox.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;AA4B/F,wCAsBC;AAvBD,aAAa;AACb,SAAgB,cAAc,CAAC,KAAoB;IACjD,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAE1C,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACjD,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC;IACrE,QAAQ,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;IACvB,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;IACrC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClE,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAE1B,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9C,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC;IACzB,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;IAC7B,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAEvB,IAAI,SAAS,KAAK,KAAK,CAAC,MAAM;QAC5B,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAEhC,IAAI,SAAS,KAAK,KAAK,CAAC,OAAO;QAC7B,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC;IAE5B,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;AAClC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module Controls\r\n */\r\n\r\n/** @alpha */\r\nexport interface CheckBox {\r\n label: HTMLLabelElement;\r\n checkbox: HTMLInputElement;\r\n div: HTMLDivElement;\r\n}\r\n\r\n/** @alpha */\r\nexport type CheckBoxHandler = (checkbox: HTMLInputElement) => void;\r\n\r\n/** @alpha */\r\nexport interface CheckBoxProps {\r\n name: string;\r\n handler: CheckBoxHandler;\r\n id: string;\r\n parent?: HTMLElement;\r\n isChecked?: boolean;\r\n typeOverride?: string;\r\n tooltip?: string;\r\n}\r\n\r\n/** @alpha */\r\nexport function createCheckBox(props: CheckBoxProps): CheckBox {\r\n const div = document.createElement(\"div\");\r\n\r\n const checkbox = document.createElement(\"input\");\r\n checkbox.type = props.typeOverride ? props.typeOverride : \"checkbox\";\r\n checkbox.id = props.id;\r\n checkbox.checked = !!props.isChecked;\r\n checkbox.addEventListener(\"click\", () => props.handler(checkbox));\r\n div.appendChild(checkbox);\r\n\r\n const label = document.createElement(\"label\");\r\n label.htmlFor = props.id;\r\n label.innerText = props.name;\r\n div.appendChild(label);\r\n\r\n if (undefined !== props.parent)\r\n props.parent.appendChild(div);\r\n\r\n if (undefined !== props.tooltip)\r\n div.title = props.tooltip;\r\n\r\n return { label, checkbox, div };\r\n}\r\n"]}
|
package/lib/cjs/ui/ColorInput.js
CHANGED
|
@@ -7,7 +7,8 @@
|
|
|
7
7
|
* @module Controls
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.
|
|
10
|
+
exports.convertHexToRgb = convertHexToRgb;
|
|
11
|
+
exports.createColorInput = createColorInput;
|
|
11
12
|
const core_common_1 = require("@itwin/core-common");
|
|
12
13
|
/** @alpha */
|
|
13
14
|
function convertHexToRgb(hex) {
|
|
@@ -15,7 +16,6 @@ function convertHexToRgb(hex) {
|
|
|
15
16
|
const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
|
|
16
17
|
return result ? new core_common_1.RgbColor(parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16)) : undefined;
|
|
17
18
|
}
|
|
18
|
-
exports.convertHexToRgb = convertHexToRgb;
|
|
19
19
|
/** @alpha */
|
|
20
20
|
function createColorInput(props) {
|
|
21
21
|
const inputDiv = document.createElement("div");
|
|
@@ -27,7 +27,7 @@ function createColorInput(props) {
|
|
|
27
27
|
const value = colorInput.value;
|
|
28
28
|
props.handler(value);
|
|
29
29
|
}
|
|
30
|
-
catch
|
|
30
|
+
catch {
|
|
31
31
|
//
|
|
32
32
|
}
|
|
33
33
|
};
|
|
@@ -50,5 +50,4 @@ function createColorInput(props) {
|
|
|
50
50
|
props.parent.appendChild(inputDiv);
|
|
51
51
|
return undefined !== colorLabel ? { div: inputDiv, input: colorInput, label: colorLabel } : { div: inputDiv, input: colorInput };
|
|
52
52
|
}
|
|
53
|
-
exports.createColorInput = createColorInput;
|
|
54
53
|
//# sourceMappingURL=ColorInput.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColorInput.js","sourceRoot":"","sources":["../../../src/ui/ColorInput.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG
|
|
1
|
+
{"version":3,"file":"ColorInput.js","sourceRoot":"","sources":["../../../src/ui/ColorInput.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;AA2BH,0CAQC;AAGD,4CAqCC;AAzED,oDAA8C;AAwB9C,aAAa;AACb,SAAgB,eAAe,CAAC,GAAW;IACzC,kDAAkD;IAClD,MAAM,MAAM,GAAG,2CAA2C,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrE,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,sBAAQ,CAC1B,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACvB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACvB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACxB,CAAC,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,aAAa;AACb,SAAgB,gBAAgB,CAAC,KAAsB;IAErD,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAE/C,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACnD,UAAU,CAAC,IAAI,GAAG,OAAO,CAAC;IAC1B,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAE/B,UAAU,CAAC,QAAQ,GAAG,GAAG,EAAE;QACzB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;YAC/B,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;QAAC,MAAM,CAAC;YACP,EAAE;QACJ,CAAC;IACH,CAAC,CAAC;IACF,IAAI,UAA4B,CAAC;IAEjC,IAAI,SAAS,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC;QAC9B,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC7C,UAAU,CAAC,SAAS,GAAG,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC;QACzC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC;IACD,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAEjC,IAAI,SAAS,KAAK,KAAK,CAAC,OAAO;QAC7B,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IACzC,IAAI,SAAS,KAAK,KAAK,CAAC,EAAE;QACxB,UAAU,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;IAC3B,IAAI,SAAS,KAAK,KAAK,CAAC,OAAO;QAC7B,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC;IACnC,IAAI,SAAS,KAAK,KAAK,CAAC,QAAQ;QAC9B,UAAU,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IACvC,IAAI,SAAS,KAAK,KAAK,CAAC,MAAM;QAC5B,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAErC,OAAO,SAAS,KAAK,UAAW,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAW,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AACrI,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Controls\r\n */\r\n\r\nimport { RgbColor } from \"@itwin/core-common\";\r\n\r\n/** @alpha */\r\nexport type ColorInputHandler = (value: string) => void;\r\n\r\n/** @alpha */\r\nexport interface ColorInputProps {\r\n handler: ColorInputHandler;\r\n value: string;\r\n id?: string;\r\n label?: string;\r\n parent?: HTMLElement;\r\n display?: \"inline\" | \"none\" | \"block\";\r\n disabled?: boolean;\r\n tooltip?: string;\r\n}\r\n\r\n/** @alpha */\r\nexport interface ColorInput {\r\n div: HTMLDivElement;\r\n input: HTMLInputElement;\r\n label?: HTMLLabelElement;\r\n}\r\n\r\n/** @alpha */\r\nexport function convertHexToRgb(hex: string): RgbColor | undefined {\r\n // Parse a hex color string formatted as \"#FFFFFF\"\r\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\r\n return result ? new RgbColor(\r\n parseInt(result[1], 16),\r\n parseInt(result[2], 16),\r\n parseInt(result[3], 16),\r\n ) : undefined;\r\n}\r\n\r\n/** @alpha */\r\nexport function createColorInput(props: ColorInputProps): ColorInput {\r\n\r\n const inputDiv = document.createElement(\"div\");\r\n\r\n const colorInput = document.createElement(\"input\");\r\n colorInput.type = \"color\";\r\n colorInput.value = props.value;\r\n\r\n colorInput.onchange = () => {\r\n try {\r\n const value = colorInput.value;\r\n props.handler(value);\r\n } catch {\r\n //\r\n }\r\n };\r\n let colorLabel: HTMLLabelElement;\r\n\r\n if (undefined !== props.label) {\r\n colorLabel = document.createElement(\"label\");\r\n colorLabel.innerText = `${props.label} `;\r\n inputDiv.appendChild(colorLabel);\r\n }\r\n inputDiv.appendChild(colorInput);\r\n\r\n if (undefined !== props.display)\r\n inputDiv.style.display = props.display;\r\n if (undefined !== props.id)\r\n colorInput.id = props.id;\r\n if (undefined !== props.tooltip)\r\n colorInput.title = props.tooltip;\r\n if (undefined !== props.disabled)\r\n colorInput.disabled = props.disabled;\r\n if (undefined !== props.parent)\r\n props.parent.appendChild(inputDiv);\r\n\r\n return undefined !== colorLabel! ? { div: inputDiv, input: colorInput, label: colorLabel! } : { div: inputDiv, input: colorInput };\r\n}\r\n"]}
|