qcobjects 2.4.107-ts → 2.4.108-ts

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.
Files changed (197) hide show
  1. package/.hintrc +5 -0
  2. package/VERSION +1 -1
  3. package/build/ArrayCollection.js +136 -0
  4. package/build/BackendMicroservice.js +211 -0
  5. package/build/Base64.js +100 -0
  6. package/build/CONFIG.js +85 -0
  7. package/build/Cast.js +53 -0
  8. package/build/Class.js +284 -0
  9. package/build/ClassFactory.js +38 -0
  10. package/build/ComplexStorageCache.js +91 -0
  11. package/build/Component.js +1133 -0
  12. package/build/ComponentFactory.js +113 -0
  13. package/build/ConfigSettings.js +39 -0
  14. package/build/Controller.js +81 -0
  15. package/build/Crypt.js +87 -0
  16. package/build/DDO.js +81 -0
  17. package/build/DOMCreateElement.js +15 -0
  18. package/build/DataStringify.js +22 -0
  19. package/build/DefaultTemplateHandler.js +57 -0
  20. package/build/DocumentLayout.js +20 -0
  21. package/build/Effect.js +46 -0
  22. package/build/Export.js +11 -0
  23. package/build/Import.js +140 -0
  24. package/build/IncrementInstanceID.js +11 -0
  25. package/build/InheritClass.js +194 -0
  26. package/build/LegacyCopy.js +31 -0
  27. package/build/Logger.js +33 -0
  28. package/build/MainProcess.js +549 -0
  29. package/build/NamespaceRef.js +29 -0
  30. package/build/New.js +17 -0
  31. package/build/ObjectName.js +22 -0
  32. package/build/Package.js +67 -0
  33. package/build/PrimaryCollections.js +7 -0
  34. package/build/Processor.js +81 -0
  35. package/build/QCObjects.js +182 -4843
  36. package/build/Ready.js +49 -0
  37. package/build/RegisterClass.js +28 -0
  38. package/build/Service.js +112 -0
  39. package/build/SourceCSS.js +56 -0
  40. package/build/SourceJS.js +73 -0
  41. package/build/Tag.js +77 -0
  42. package/build/Timer.js +30 -0
  43. package/build/Toggle.js +59 -0
  44. package/build/TransitionEffect.js +65 -0
  45. package/build/VO.js +11 -0
  46. package/build/View.js +18 -0
  47. package/build/WidgetsFactory.js +537 -0
  48. package/build/assign.js +32 -0
  49. package/build/asyncLoad.js +43 -0
  50. package/build/basePath.js +32 -0
  51. package/build/captureFalseTouch.js +32 -0
  52. package/build/componentLoader.js +258 -0
  53. package/build/defaultProcessors.js +130 -0
  54. package/build/domain.js +4 -0
  55. package/build/findPackageNodePath.js +47 -0
  56. package/build/getType.js +38 -0
  57. package/build/globalSettings.js +115 -0
  58. package/build/index.d.ts +1045 -0
  59. package/build/index.js +24 -4
  60. package/build/index.mjs +1 -1
  61. package/build/introspection.js +86 -0
  62. package/build/isQCObjects.js +20 -0
  63. package/build/is_a.js +19 -0
  64. package/build/is_forbidden_name.js +15 -0
  65. package/build/is_raw_class.js +7 -0
  66. package/build/loadSDK.js +63 -0
  67. package/build/localStorage.js +19 -0
  68. package/build/make_global.js +24 -0
  69. package/build/mathFunctions.js +7 -0
  70. package/build/platform.js +28 -0
  71. package/build/range.js +17 -0
  72. package/build/routings.js +21 -0
  73. package/build/secretKey.js +5 -0
  74. package/build/serviceLoader.js +300 -0
  75. package/build/shortCode.js +14 -0
  76. package/build/subelements.js +8 -0
  77. package/build/super.js +20 -0
  78. package/build/tag_filter.js +4 -0
  79. package/build/top.js +23 -0
  80. package/build/uniqueID.js +5 -0
  81. package/build/waitUntil.js +31 -0
  82. package/build-esbuild.js +62 -0
  83. package/eslint.config.mjs +87 -0
  84. package/package.json +26 -23
  85. package/public/browser/index.js +6502 -0
  86. package/public/browser/index.js.map +7 -0
  87. package/public/cjs/index.cjs +6586 -0
  88. package/public/cjs/index.cjs.map +7 -0
  89. package/public/esm/index.mjs +6494 -0
  90. package/public/esm/index.mjs.map +7 -0
  91. package/spec/helpers/mock-sdk.helper.ts +5 -0
  92. package/spec/mocks/qcobjects-sdk.mock.ts +1 -0
  93. package/spec/support/jasmine.json +3 -3
  94. package/spec/testsClassFactorySpec.ts +40 -0
  95. package/spec/{testsConfigSpec.js → testsConfigSpec.ts} +2 -2
  96. package/spec/{testsGlobalFeaturesSpec.js → testsGlobalFeaturesSpec.ts} +10 -8
  97. package/spec/{testsSpec.js → testsSpec.ts} +11 -10
  98. package/spec/{testsTypeSpec.js → testsTypeSpec.ts} +5 -3
  99. package/src/ArrayCollection.ts +143 -0
  100. package/src/BackendMicroservice.ts +229 -0
  101. package/src/Base64.ts +92 -0
  102. package/src/CONFIG.ts +96 -0
  103. package/src/Cast.ts +46 -0
  104. package/src/Class.ts +303 -0
  105. package/src/ClassFactory.ts +34 -0
  106. package/src/ComplexStorageCache.ts +97 -0
  107. package/src/Component.ts +1222 -0
  108. package/src/ComponentFactory.ts +122 -0
  109. package/src/ConfigSettings.ts +62 -0
  110. package/src/Controller.ts +90 -0
  111. package/src/Crypt.ts +87 -0
  112. package/src/DDO.ts +93 -0
  113. package/src/DOMCreateElement.ts +12 -0
  114. package/src/DataStringify.ts +19 -0
  115. package/src/DefaultTemplateHandler.ts +55 -0
  116. package/src/DocumentLayout.ts +16 -0
  117. package/src/Effect.ts +56 -0
  118. package/src/Export.ts +8 -0
  119. package/src/Import.ts +135 -0
  120. package/src/IncrementInstanceID.ts +8 -0
  121. package/src/InheritClass.ts +210 -0
  122. package/src/LegacyCopy.ts +27 -0
  123. package/src/Logger.ts +32 -0
  124. package/src/MainProcess.ts +629 -0
  125. package/src/NamespaceRef.ts +26 -0
  126. package/src/New.ts +15 -0
  127. package/src/ObjectName.ts +16 -0
  128. package/src/Package.ts +67 -0
  129. package/src/PrimaryCollections.ts +7 -0
  130. package/src/Processor.ts +93 -0
  131. package/src/QCObjects.ts +100 -0
  132. package/src/Ready.ts +44 -0
  133. package/src/RegisterClass.ts +26 -0
  134. package/src/Service.ts +127 -0
  135. package/src/SourceCSS.ts +59 -0
  136. package/src/SourceJS.ts +76 -0
  137. package/src/Tag.ts +76 -0
  138. package/src/Timer.ts +42 -0
  139. package/src/Toggle.ts +65 -0
  140. package/src/TransitionEffect.ts +80 -0
  141. package/src/VO.ts +8 -0
  142. package/src/View.ts +17 -0
  143. package/src/WidgetsFactory.ts +543 -0
  144. package/src/assign.ts +33 -0
  145. package/src/asyncLoad.ts +42 -0
  146. package/src/basePath.ts +29 -0
  147. package/src/captureFalseTouch.ts +29 -0
  148. package/src/componentLoader.ts +252 -0
  149. package/src/defaultProcessors.ts +145 -0
  150. package/src/domain.ts +1 -0
  151. package/src/findPackageNodePath.ts +43 -0
  152. package/src/getType.ts +36 -0
  153. package/src/globalSettings.ts +118 -0
  154. package/src/index.mts +1 -1
  155. package/src/index.ts +1 -1
  156. package/src/introspection.ts +80 -0
  157. package/src/isQCObjects.ts +19 -0
  158. package/src/is_a.ts +16 -0
  159. package/src/is_forbidden_name.ts +12 -0
  160. package/src/is_raw_class.ts +3 -0
  161. package/src/loadSDK.ts +59 -0
  162. package/src/localStorage.ts +17 -0
  163. package/src/make_global.ts +19 -0
  164. package/src/mathFunctions.ts +3 -0
  165. package/src/platform.ts +30 -0
  166. package/src/range.ts +15 -0
  167. package/src/routings.ts +18 -0
  168. package/src/secretKey.ts +3 -0
  169. package/src/serviceLoader.ts +306 -0
  170. package/src/shortCode.ts +11 -0
  171. package/src/subelements.ts +4 -0
  172. package/src/super.ts +17 -0
  173. package/src/tag_filter.ts +1 -0
  174. package/src/top.ts +111 -0
  175. package/src/types/global/index.d.ts +597 -0
  176. package/src/uniqueID.ts +3 -0
  177. package/src/waitUntil.ts +26 -0
  178. package/tsconfig.d.json +35 -8
  179. package/tsconfig.jasmine.json +39 -0
  180. package/tsconfig.json +46 -12
  181. package/.eslintignore +0 -5
  182. package/.eslintrc.cjs +0 -21
  183. package/.eslintrc.json +0 -24
  184. package/browser/QCObjects.js +0 -2
  185. package/browser/QCObjects.js.map +0 -7
  186. package/browser/chunks/chunk-O2PFFZVJ.js +0 -713
  187. package/browser/chunks/chunk-O2PFFZVJ.js.map +0 -7
  188. package/browser/chunks/chunk-TBLBK5VV.js +0 -713
  189. package/browser/chunks/chunk-TBLBK5VV.js.map +0 -7
  190. package/browser/chunks/chunk-ZYLXOA35.js +0 -713
  191. package/browser/chunks/chunk-ZYLXOA35.js.map +0 -7
  192. package/browser/index.js +0 -2
  193. package/browser/index.js.map +0 -7
  194. package/spec/testsClassFactorySpec.js +0 -41
  195. package/src/QCObjects.js +0 -5247
  196. package/src/index.d.ts +0 -8
  197. package/types/index.d.ts +0 -472
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildComponents = exports._buildComponentsFromElements_ = exports._buildComponentFromElement_ = exports.ComponentURI = void 0;
4
+ const Class_1 = require("./Class");
5
+ const ClassFactory_1 = require("./ClassFactory");
6
+ const Component_1 = require("./Component");
7
+ const CONFIG_1 = require("./CONFIG");
8
+ const DOMCreateElement_1 = require("./DOMCreateElement");
9
+ const getType_1 = require("./getType");
10
+ const Logger_1 = require("./Logger");
11
+ const New_1 = require("./New");
12
+ const Package_1 = require("./Package");
13
+ const platform_1 = require("./platform");
14
+ const tag_filter_1 = require("./tag_filter");
15
+ /**
16
+ * Returns a standarized uri for a component
17
+ * @example
18
+ * templateURI = ComponentURI({'COMPONENTS_BASE_PATH':'','COMPONENT_NAME':'','TPLEXTENSION':'','TPL_SOURCE':''})
19
+ * @author: Jean Machuca <correojean@gmail.com>
20
+ * @param params an object with the params to build the uri path
21
+ */
22
+ const ComponentURI = ({ TPL_SOURCE, COMPONENTS_BASE_PATH, COMPONENT_NAME, TPLEXTENSION }) => {
23
+ const templateURI = (TPL_SOURCE === "default") ? (`${COMPONENTS_BASE_PATH}${COMPONENT_NAME}.${TPLEXTENSION}`) : ("");
24
+ return templateURI;
25
+ };
26
+ exports.ComponentURI = ComponentURI;
27
+ const _buildComponentFromElement_ = function (element, __parent__) {
28
+ const __shadowed_not_set = (element.getAttribute("shadowed") === null);
29
+ const __tplsource_attr_not_set = (element.getAttribute("template-source") === null);
30
+ const shadowed = (element.getAttribute("shadowed") === "true");
31
+ const __cached_not_set = (element.getAttribute("cached") === null);
32
+ const cached = (element.getAttribute("cached") === "true");
33
+ let tplextension = (typeof CONFIG_1.CONFIG.get("tplextension") !== "undefined") ? (CONFIG_1.CONFIG.get("tplextension")) : ("html");
34
+ tplextension = (element.getAttribute("tplextension") !== null) ? (element.getAttribute("tplextension")) : (tplextension);
35
+ let _componentName = element.getAttribute("name");
36
+ const _componentClassName = (element.getAttribute("componentClass") !== null) ? (element.getAttribute("componentClass")) : ("Component");
37
+ const __componentClassName = (CONFIG_1.CONFIG.get("preserveComponentBodyTag")) ? ((_componentName !== null) ? ("com.qcobjects.components." + _componentName + ".ComponentBody") : ("com.qcobjects.components.ComponentBody")) : (_componentClassName);
38
+ _componentName = (_componentName !== null) ? (_componentName) : (((0, ClassFactory_1.ClassFactory)(__componentClassName) &&
39
+ typeof (0, ClassFactory_1.ClassFactory)(__componentClassName).name !== "undefined") ? ((0, ClassFactory_1.ClassFactory)(__componentClassName).name) : (""));
40
+ const __classDefinition = (0, ClassFactory_1.ClassFactory)(__componentClassName);
41
+ const __tplsource_prop_set = !!((__componentClassName !== "Component" && ((typeof __classDefinition !== "undefined" && typeof __classDefinition.tplsource === "string") && __classDefinition.tplsource !== "")));
42
+ const tplsource = (__tplsource_attr_not_set && __tplsource_prop_set) ? (__classDefinition.tplsource) : ((__tplsource_attr_not_set) ? ("default") : (element.getAttribute("template-source")));
43
+ Logger_1.logger.debug(`template source for ${_componentName} is ${tplsource} `);
44
+ Logger_1.logger.debug(`type for ${_componentName} is ${(0, getType_1.__getType__)(__classDefinition)} `);
45
+ const componentURI = (0, exports.ComponentURI)({
46
+ "COMPONENTS_BASE_PATH": CONFIG_1.CONFIG.get("componentsBasePath"),
47
+ "COMPONENT_NAME": _componentName,
48
+ "TPLEXTENSION": tplextension,
49
+ "TPL_SOURCE": tplsource
50
+ });
51
+ if (CONFIG_1.CONFIG.get("preserveComponentBodyTag")) {
52
+ (0, Package_1.Package)((_componentName !== "") ? ("com.qcobjects.components." + _componentName + "") : ("com.qcobjects.components"), [
53
+ (0, Class_1.Class)("ComponentBody", Component_1.Component, {
54
+ name: _componentName,
55
+ tplsource,
56
+ tplextension,
57
+ reload: true
58
+ })
59
+ ]);
60
+ }
61
+ const __create_component_instance_ = function () {
62
+ const __shadowed = (__shadowed_not_set) ? ((__classDefinition && __classDefinition.shadowed) || Component_1.Component.shadowed) : (shadowed);
63
+ const __definition = {
64
+ __parent__,
65
+ name: _componentName,
66
+ cached: (__cached_not_set) ? (Component_1.Component.cached) : (cached),
67
+ shadowed: __shadowed,
68
+ tplextension,
69
+ body: (CONFIG_1.CONFIG.get("preserveComponentBodyTag")) ? ((0, DOMCreateElement_1._DOMCreateElement)("componentBody")) : (element),
70
+ templateURI: componentURI,
71
+ tplsource
72
+ };
73
+ if (typeof _componentName === "undefined" || _componentName === "" || _componentName === null) {
74
+ /* this allows to use the original property defined
75
+ in the component definition if it is not present in the tag */
76
+ delete __definition.name;
77
+ }
78
+ if (componentURI === "") {
79
+ /* this allows to use the original property defined
80
+ in the component definition if it is not present in the tag */
81
+ delete __definition.templateURI;
82
+ }
83
+ const newComponent = (0, New_1.New)(__classDefinition, __definition);
84
+ if (CONFIG_1.CONFIG.get("preserveComponentBodyTag")) {
85
+ if (typeof newComponent !== "undefined") {
86
+ element.append(newComponent.body);
87
+ }
88
+ }
89
+ return newComponent;
90
+ };
91
+ const newComponent = __create_component_instance_();
92
+ return newComponent;
93
+ };
94
+ exports._buildComponentFromElement_ = _buildComponentFromElement_;
95
+ const _buildComponentsFromElements_ = function (elements, __parent__) {
96
+ let componentsBuiltWith = [];
97
+ if (platform_1.isBrowser) {
98
+ componentsBuiltWith = elements.map(function (element) {
99
+ return (0, exports._buildComponentFromElement_)(element, __parent__);
100
+ });
101
+ }
102
+ else {
103
+ Logger_1.logger.debug("[_buildComponentsFromElements_] not implemented for Non-Browser environments");
104
+ }
105
+ return componentsBuiltWith;
106
+ };
107
+ exports._buildComponentsFromElements_ = _buildComponentsFromElements_;
108
+ const buildComponents = (element) => {
109
+ const tagFilter = tag_filter_1._tag_filter_;
110
+ const elements = element.subelements(tagFilter);
111
+ return (0, exports._buildComponentsFromElements_)(elements, null);
112
+ };
113
+ exports.buildComponents = buildComponents;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConfigSettings = void 0;
4
+ const basePath_1 = require("./basePath");
5
+ const InheritClass_1 = require("./InheritClass");
6
+ const Package_1 = require("./Package");
7
+ class ConfigSettings extends InheritClass_1.InheritClass {
8
+ _CONFIG = {
9
+ "relativeImportPath": "",
10
+ "remoteImportsPath": "",
11
+ "remoteSDKPath": "https://sdk.qcobjects.dev/",
12
+ "asynchronousImportsLoad": false,
13
+ "removePackageScriptAfterLoading": true,
14
+ "componentsBasePath": "",
15
+ "delayForReady": 0,
16
+ "preserveComponentBodyTag": false,
17
+ "useConfigService": false,
18
+ "routingWay": "hash",
19
+ "useSDK": true,
20
+ "useLocalSDK": false,
21
+ "basePath": basePath_1._basePath_
22
+ };
23
+ static _instance;
24
+ _CONFIG_ENC = "";
25
+ set(name, value) {
26
+ this._CONFIG[name] = value;
27
+ }
28
+ get(name, _defaultValue) {
29
+ return this._CONFIG[name] || _defaultValue;
30
+ }
31
+ static get instance() {
32
+ if (typeof ConfigSettings._instance === "undefined") {
33
+ ConfigSettings._instance = new ConfigSettings();
34
+ }
35
+ return ConfigSettings._instance;
36
+ }
37
+ }
38
+ exports.ConfigSettings = ConfigSettings;
39
+ (0, Package_1.Package)("com.qcobjects", [ConfigSettings]);
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Controller = void 0;
4
+ const ClassFactory_1 = require("./ClassFactory");
5
+ const getType_1 = require("./getType");
6
+ const InheritClass_1 = require("./InheritClass");
7
+ const Logger_1 = require("./Logger");
8
+ const New_1 = require("./New");
9
+ const Package_1 = require("./Package");
10
+ const platform_1 = require("./platform");
11
+ class Controller extends InheritClass_1.InheritClass {
12
+ component;
13
+ dependencies = [];
14
+ constructor({ component, dependencies }) {
15
+ super({ component, dependencies });
16
+ this.component = component;
17
+ this.dependencies = dependencies;
18
+ if (typeof this.component === "undefined" || this.component === null) {
19
+ throw Error(`${(0, getType_1.__getType__)(this)} must be called with a component`);
20
+ }
21
+ }
22
+ // eslint-disable-next-line no-unused-vars
23
+ fail(...args) {
24
+ throw new Error("Method not implemented.");
25
+ }
26
+ routingSelectedAttr(attrName) {
27
+ return this.component?.routingSelected.map((r) => {
28
+ return r[attrName];
29
+ }).filter(function (v) {
30
+ return v;
31
+ }).pop();
32
+ }
33
+ isTouchable() {
34
+ return ("ontouchstart" in window) ||
35
+ (navigator.MaxTouchPoints > 0) ||
36
+ (navigator.msMaxTouchPoints > 0);
37
+ }
38
+ onpress(subelementSelector, handler) {
39
+ if (platform_1.isBrowser) {
40
+ try {
41
+ if (this.isTouchable()) {
42
+ (this.component?.componentRoot?.subelements(subelementSelector))[0].addEventListener("touchstart", handler, {
43
+ passive: true
44
+ });
45
+ }
46
+ else {
47
+ (this.component?.componentRoot?.subelements(subelementSelector))[0].addEventListener("click", handler, {
48
+ passive: true
49
+ });
50
+ }
51
+ }
52
+ catch (e) {
53
+ Logger_1.logger.debug(`An error ocurred: ${e}.`);
54
+ Logger_1.logger.debug("No button to assign press event");
55
+ }
56
+ }
57
+ }
58
+ createRoutingController() {
59
+ const controller = this;
60
+ const component = controller.component;
61
+ const controllerName = controller.routingSelectedAttr("controllerclass");
62
+ if (typeof controllerName !== "undefined") {
63
+ const _Controller = (0, ClassFactory_1.ClassFactory)(controllerName);
64
+ if (typeof _Controller !== "undefined" && component !== null) {
65
+ component.routingController = (0, New_1.New)(_Controller, {
66
+ component
67
+ }); // Initializes the main controller for the component
68
+ if (typeof component.routingController !== "undefined"
69
+ && Object.hasOwn(component.routingController, "done")
70
+ && typeof component.routingController.done === "function") {
71
+ component.routingController.done.call(component.routingController);
72
+ }
73
+ }
74
+ }
75
+ }
76
+ done() { }
77
+ }
78
+ exports.Controller = Controller;
79
+ (0, Package_1.Package)("com.qcobjects.controllers", [
80
+ Controller
81
+ ]);
package/build/Crypt.js ADDED
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports._DecryptObject = exports._CryptObject = exports._Crypt = void 0;
4
+ const Base64_1 = require("./Base64");
5
+ const DataStringify_1 = require("./DataStringify");
6
+ const InheritClass_1 = require("./InheritClass");
7
+ const Package_1 = require("./Package");
8
+ const secretKey_1 = require("./secretKey");
9
+ class _Crypt extends InheritClass_1.InheritClass {
10
+ string = "";
11
+ key = "";
12
+ // eslint-disable-next-line no-unused-vars
13
+ encrypt(_string_, key) {
14
+ throw new Error("Method not implemented.");
15
+ }
16
+ // eslint-disable-next-line no-unused-vars
17
+ decrypt(_string_, key) {
18
+ throw new Error("Method not implemented.");
19
+ }
20
+ last_string = "";
21
+ last_key = "";
22
+ construct = false;
23
+ _new_(o) {
24
+ const string = o.string;
25
+ let key = (Object.hasOwn(o, "key")) ? (o.key) : ("");
26
+ this.__new__(o);
27
+ key = (key === "") ? (this.__instanceID.toString()) : (key);
28
+ this.last_key = key;
29
+ this.last_string = string;
30
+ this.construct = true;
31
+ }
32
+ _encrypt() {
33
+ const string = this.string;
34
+ const key = this.key;
35
+ let result = "";
36
+ let char;
37
+ let keychar;
38
+ for (let i = 0; i < string.length; i++) {
39
+ char = string.substr(i, 1);
40
+ keychar = key.substr((i % key.length) - 1, 1);
41
+ char = String.fromCharCode(char.charCodeAt(0) + keychar.charCodeAt(0));
42
+ result += char;
43
+ }
44
+ this.last_string = Base64_1.Base64.encode(result);
45
+ return this.last_string;
46
+ }
47
+ _decrypt() {
48
+ let string = this.string;
49
+ const key = this.key;
50
+ let result = "";
51
+ let char;
52
+ let keychar;
53
+ string = Base64_1.Base64.decode(string);
54
+ for (let i = 0; i < string.length; i++) {
55
+ char = string.substr(i, 1);
56
+ keychar = key.substr((i % key.length) - 1, 1);
57
+ char = String.fromCharCode(char.charCodeAt(0) - keychar.charCodeAt(0));
58
+ result += char;
59
+ }
60
+ this.last_string = result;
61
+ return this.last_string;
62
+ }
63
+ static encrypt(string, key) {
64
+ const crypt = new _Crypt({
65
+ string,
66
+ key: (key !== "") ? (key) : ("12345678ABC")
67
+ });
68
+ return crypt._encrypt();
69
+ }
70
+ static decrypt(string, key) {
71
+ const crypt = new _Crypt({
72
+ string,
73
+ key: (key !== "") ? (key) : ("12345678ABC")
74
+ });
75
+ return crypt._decrypt();
76
+ }
77
+ }
78
+ exports._Crypt = _Crypt;
79
+ const _CryptObject = function (o) {
80
+ return _Crypt.encrypt((0, DataStringify_1._DataStringify)(o), secretKey_1._secretKey);
81
+ };
82
+ exports._CryptObject = _CryptObject;
83
+ const _DecryptObject = function (s) {
84
+ return (s === "") ? ({}) : (JSON.parse(_Crypt.decrypt(s, secretKey_1._secretKey)));
85
+ };
86
+ exports._DecryptObject = _DecryptObject;
87
+ (0, Package_1.Package)("com.qcobjects", [_Crypt]);
package/build/DDO.js ADDED
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DDO = void 0;
4
+ const Export_1 = require("./Export");
5
+ const InheritClass_1 = require("./InheritClass");
6
+ const Logger_1 = require("./Logger");
7
+ const ObjectName_1 = require("./ObjectName");
8
+ /**
9
+ * Dynamic Data Objects Class
10
+ * Usage:
11
+ * Class('TestDDO',{
12
+ * data: {},
13
+ * _new_ (){
14
+ * this.ddo = New(DDO,{
15
+ * instance:this,
16
+ * name:'data',
17
+ * value:{},
18
+ * fget (value){
19
+ * logger.debug('returned value '+ value );
20
+ * }
21
+ * })
22
+ * }
23
+ * });
24
+ *
25
+ */
26
+ class DDO extends InheritClass_1.InheritClass {
27
+ constructor({ instance, name, fget, fset, value }) {
28
+ super({
29
+ instance,
30
+ name,
31
+ fget,
32
+ fset,
33
+ value
34
+ });
35
+ this._new_({
36
+ instance,
37
+ name,
38
+ fget,
39
+ fset,
40
+ value
41
+ });
42
+ }
43
+ _new_({ instance, name, fget, fset }) {
44
+ const ddoInstance = this;
45
+ var name = (typeof name === "undefined") ? ((0, ObjectName_1.ObjectName)(ddoInstance)) : (name);
46
+ Object.defineProperty(instance, name, {
47
+ set(val) {
48
+ const _value = val;
49
+ Logger_1.logger.debug("value changed " + name);
50
+ let ret;
51
+ if (typeof fset !== "undefined" && typeof fset === "function") {
52
+ ret = fset(_value);
53
+ }
54
+ else {
55
+ ret = _value;
56
+ }
57
+ instance["_" + name] = ret;
58
+ },
59
+ get() {
60
+ const _value = instance["_" + name];
61
+ Logger_1.logger.debug("returning value " + name);
62
+ const is_ddo = (v) => {
63
+ if (typeof v === "object" && Object.hasOwn(v, "value")) {
64
+ return v.value;
65
+ }
66
+ return v;
67
+ };
68
+ let ret;
69
+ if (typeof fget !== "undefined" && typeof fget === "function") {
70
+ ret = fget(is_ddo(_value));
71
+ }
72
+ else {
73
+ ret = is_ddo(_value);
74
+ }
75
+ return ret;
76
+ }
77
+ });
78
+ }
79
+ }
80
+ exports.DDO = DDO;
81
+ (0, Export_1.Export)(DDO);
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports._DOMCreateElement = void 0;
4
+ const platform_1 = require("./platform");
5
+ const _DOMCreateElement = function (elementName) {
6
+ let _ret_;
7
+ if (platform_1.isBrowser) {
8
+ _ret_ = document.createElement(elementName);
9
+ }
10
+ else {
11
+ _ret_ = {};
12
+ }
13
+ return _ret_;
14
+ };
15
+ exports._DOMCreateElement = _DOMCreateElement;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports._DataStringify = void 0;
4
+ const LegacyCopy_1 = require("./LegacyCopy");
5
+ const _DataStringify = function (data) {
6
+ const getCircularReplacer = function () {
7
+ const seen = new WeakSet();
8
+ let _level = 0;
9
+ return function (key, value) {
10
+ if (typeof value === "object" && value !== null) {
11
+ if (seen.has(value)) {
12
+ _level += 1;
13
+ return (_level <= 3) ? ((0, LegacyCopy_1._LegacyCopy)(value)) : (null);
14
+ }
15
+ seen.add(value);
16
+ }
17
+ return value;
18
+ };
19
+ };
20
+ return JSON.stringify(data, getCircularReplacer());
21
+ };
22
+ exports._DataStringify = _DataStringify;
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DefaultTemplateHandler = void 0;
4
+ const Logger_1 = require("./Logger");
5
+ const Processor_1 = require("./Processor");
6
+ const RegisterClass_1 = require("./RegisterClass");
7
+ class DefaultTemplateHandler {
8
+ template = "";
9
+ __definition = {};
10
+ static __definition = {};
11
+ component;
12
+ constructor({ component, template }) {
13
+ this.component = component;
14
+ this.template = template;
15
+ }
16
+ assign(data) {
17
+ const templateInstance = this;
18
+ if (typeof templateInstance.component === "undefined") {
19
+ throw new Error("DefaultTemplateHandler.assign: component is undefined");
20
+ }
21
+ if (typeof templateInstance.component.processorHandler === "undefined") {
22
+ throw new Error("DefaultTemplateHandler.assign: component.processorHandler is undefined");
23
+ }
24
+ const processorHandler = templateInstance.component.processorHandler;
25
+ processorHandler.component = templateInstance.component;
26
+ let parsedAssignmentText = (typeof templateInstance.template !== "undefined") ? (templateInstance.template) : ("");
27
+ if (typeof data === "object") {
28
+ [...Object.keys(data)].map((k) => {
29
+ let _value = data[k];
30
+ if (typeof _value === "string" || typeof _value === "number" || (!isNaN(_value))) {
31
+ try {
32
+ _value = Processor_1.GlobalProcessor.processObject.bind(processorHandler).call(processorHandler, _value, templateInstance.component);
33
+ parsedAssignmentText = parsedAssignmentText.replace((new RegExp(`{{${k}}}`, "g")), _value);
34
+ }
35
+ catch (e) {
36
+ Logger_1.logger.warn(`${templateInstance.component.name} could not parse processors.`);
37
+ throw Error(`${templateInstance.component.name} could not parse processors. Reason: ${e.message}`);
38
+ }
39
+ }
40
+ return k;
41
+ });
42
+ }
43
+ else {
44
+ Logger_1.logger.debug(`${templateInstance.component.name}.data is not an object`);
45
+ }
46
+ try {
47
+ parsedAssignmentText = Processor_1.GlobalProcessor.processObject.call(processorHandler, parsedAssignmentText, templateInstance.component);
48
+ }
49
+ catch (e) {
50
+ Logger_1.logger.warn(`${templateInstance.component.name} could not parse processors.`);
51
+ throw Error(`${templateInstance.component.name} could not parse processors. Reason: ${e.message}`);
52
+ }
53
+ return parsedAssignmentText;
54
+ }
55
+ }
56
+ exports.DefaultTemplateHandler = DefaultTemplateHandler;
57
+ (0, RegisterClass_1.RegisterClass)(DefaultTemplateHandler, "com.qcobjects");
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDocumentLayout = void 0;
4
+ const getDocumentLayout = function () {
5
+ const h = (w, h) => {
6
+ return w > h ? "landscape" : null;
7
+ };
8
+ const v = (w, h) => {
9
+ return h > w ? "portrait" : null;
10
+ };
11
+ const square = (w, h) => {
12
+ return w === h ? "square" : null;
13
+ };
14
+ return [
15
+ h(document.documentElement.clientWidth, document.documentElement.clientHeight),
16
+ v(document.documentElement.clientWidth, document.documentElement.clientHeight),
17
+ square(document.documentElement.clientWidth, document.documentElement.clientHeight)
18
+ ].filter(e => e !== null).pop();
19
+ };
20
+ exports.getDocumentLayout = getDocumentLayout;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Effect = void 0;
4
+ const InheritClass_1 = require("./InheritClass");
5
+ const Package_1 = require("./Package");
6
+ class Effect extends InheritClass_1.InheritClass {
7
+ // eslint-disable-next-line no-unused-vars
8
+ done(...args) {
9
+ throw new Error("Method not implemented.");
10
+ }
11
+ ;
12
+ // eslint-disable-next-line no-unused-vars
13
+ apply(...args) {
14
+ throw new Error("Method not implemented.");
15
+ }
16
+ duration = 1000;
17
+ animate({ timing, draw, duration }) {
18
+ const _self = this;
19
+ const start = performance.now();
20
+ requestAnimationFrame(function animate(time) {
21
+ // timeFraction goes from 0 to 1
22
+ let timeFraction = (time - start) / duration;
23
+ if (timeFraction > 1)
24
+ timeFraction = 1;
25
+ // calculate the current animation state
26
+ const progress = timing(timeFraction);
27
+ draw(Math.round(progress * 100)); // draw it
28
+ if (timeFraction < 1) {
29
+ requestAnimationFrame(animate);
30
+ }
31
+ else {
32
+ // if this is an object with a done method
33
+ if (typeof _self !== "undefined" &&
34
+ _self !== null &&
35
+ Object.hasOwn(_self, "done") &&
36
+ (typeof _self.done).toLowerCase() === "function") {
37
+ _self.done.call(_self);
38
+ }
39
+ }
40
+ });
41
+ }
42
+ }
43
+ exports.Effect = Effect;
44
+ (0, Package_1.Package)("com.qcobjects.effects.base", [
45
+ Effect
46
+ ]);
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Export = void 0;
4
+ const make_global_1 = require("./make_global");
5
+ const Export = function (f) {
6
+ return (0, make_global_1.__make_global__)(f);
7
+ };
8
+ exports.Export = Export;
9
+ exports.Export.prototype.toString = function () {
10
+ return "Export(function or symbol) { [QCObjects native code] }";
11
+ };