uicore-ts 1.0.5 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/README.md +1 -1
  2. package/compiledScripts/UICore.d.ts +8 -0
  3. package/compiledScripts/UICore.js +18 -13
  4. package/compiledScripts/UICore.js.map +2 -2
  5. package/compiledScripts/UICoreExtensionValueObject.js.map +2 -2
  6. package/compiledScripts/UICoreExtensions.js.map +1 -1
  7. package/compiledScripts/UICoreValues.d.ts +1 -1
  8. package/compiledScripts/UICoreValues.js +9 -9
  9. package/compiledScripts/UICoreValues.js.map +2 -2
  10. package/compiledScripts/UIDialogView.js +3 -3
  11. package/compiledScripts/UIDialogView.js.map +2 -2
  12. package/compiledScripts/UIImageView.js +3 -3
  13. package/compiledScripts/UIImageView.js.map +2 -2
  14. package/compiledScripts/UIInterfaces.js.map +1 -1
  15. package/compiledScripts/UIKeyValueStringFilter.js.map +1 -1
  16. package/compiledScripts/UIKeyValueStringFilterWebWorker.worker.js +6 -1
  17. package/compiledScripts/UIKeyValueStringFilterWebWorker.worker.js.map +2 -2
  18. package/compiledScripts/UIKeyValueStringSorter.js.map +1 -1
  19. package/compiledScripts/UIKeyValueStringSorterWebWorker.worker.js.map +2 -2
  20. package/compiledScripts/UILink.js +2 -2
  21. package/compiledScripts/UILink.js.map +2 -2
  22. package/compiledScripts/UIObject.js.map +1 -1
  23. package/compiledScripts/UIRootViewController.js +2 -2
  24. package/compiledScripts/UIRootViewController.js.map +2 -2
  25. package/compiledScripts/UIRoute.js.map +1 -1
  26. package/compiledScripts/UISlideScrollerView.js +2 -2
  27. package/compiledScripts/UISlideScrollerView.js.map +2 -2
  28. package/compiledScripts/UIStringFilter.js.map +1 -1
  29. package/compiledScripts/UIStringFilterWebWorker.worker.js.map +2 -2
  30. package/compiledScripts/UITextArea.js.map +1 -1
  31. package/compiledScripts/UITextField.js +3 -3
  32. package/compiledScripts/UITextField.js.map +2 -2
  33. package/compiledScripts/UITextView.js.map +1 -1
  34. package/compiledScripts/UIView.d.ts +2 -4
  35. package/compiledScripts/UIView.js +11 -14
  36. package/compiledScripts/UIView.js.map +2 -2
  37. package/compiledScripts/UIViewController.js +1 -4
  38. package/compiledScripts/UIViewController.js.map +2 -2
  39. package/compiledScripts/index.d.ts +1 -1
  40. package/compiledScripts/index.js +1 -1
  41. package/compiledScripts/index.js.map +2 -2
  42. package/etsc.config.mjs +1 -0
  43. package/package.json +1 -1
  44. package/rollup.config.js +7 -6
  45. package/scripts/UICore.ts +24 -12
  46. package/scripts/UICoreExtensionValueObject.ts +1 -2
  47. package/scripts/UICoreExtensions.ts +19 -19
  48. package/scripts/UIDialogView.ts +6 -6
  49. package/scripts/UIImageView.ts +3 -3
  50. package/scripts/UIInterfaces.ts +0 -1
  51. package/scripts/UIKeyValueStringFilter.ts +1 -1
  52. package/scripts/UIKeyValueStringFilterWebWorker.worker.ts +45 -45
  53. package/scripts/UIKeyValueStringSorter.ts +1 -1
  54. package/scripts/UIKeyValueStringSorterWebWorker.worker.ts +42 -54
  55. package/scripts/UILink.ts +1 -2
  56. package/scripts/UIObject.ts +7 -7
  57. package/scripts/UIRootViewController.ts +3 -4
  58. package/scripts/UIRoute.ts +3 -3
  59. package/scripts/UISlideScrollerView.ts +1 -2
  60. package/scripts/UIStringFilter.ts +36 -36
  61. package/scripts/UIStringFilterWebWorker.worker.ts +36 -41
  62. package/scripts/UITextArea.ts +2 -2
  63. package/scripts/UITextField.ts +10 -11
  64. package/scripts/UITextView.ts +4 -4
  65. package/scripts/UIView.ts +27 -29
  66. package/scripts/UIViewController.ts +15 -18
  67. package/scripts/index.ts +1 -1
  68. package/tsconfig.json +20 -10
  69. package/scripts/UICoreValues.ts +0 -21
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # uicore
1
+ # UICore
2
2
 
3
3
 
4
4
 
@@ -1,8 +1,16 @@
1
1
  import "./UICoreExtensions";
2
+ import { UILanguageService } from "./UIInterfaces";
2
3
  import { UIObject } from "./UIObject";
3
4
  import { UIViewController } from "./UIViewController";
4
5
  export declare class UICore extends UIObject {
5
6
  rootViewController: UIViewController;
7
+ static RootViewControllerClass: any;
8
+ static main: UICore;
9
+ static languageService: UILanguageService;
10
+ static readonly broadcastEventName: {
11
+ RouteDidChange: string;
12
+ WindowDidResize: string;
13
+ };
6
14
  constructor(rootDivElementID: string, rootViewControllerClass: typeof UIViewController);
7
15
  static loadClass(className: string): void;
8
16
  }
@@ -21,28 +21,27 @@ __export(UICore_exports, {
21
21
  });
22
22
  module.exports = __toCommonJS(UICore_exports);
23
23
  var import_UICoreExtensions = require("./UICoreExtensions");
24
- var import_UICoreValues = require("./UICoreValues");
25
24
  var import_UIObject = require("./UIObject");
26
25
  var import_UIRoute = require("./UIRoute");
27
26
  var import_UIView = require("./UIView");
28
27
  var import_UIViewController = require("./UIViewController");
29
- class UICore extends import_UIObject.UIObject {
28
+ const _UICore = class extends import_UIObject.UIObject {
30
29
  constructor(rootDivElementID, rootViewControllerClass) {
31
30
  super();
32
31
  this.rootViewController = import_UIObject.nil;
33
- import_UICoreValues.UICoreValues.RootViewControllerClass = rootViewControllerClass;
34
- import_UICoreValues.UICoreValues.main = this;
32
+ _UICore.RootViewControllerClass = rootViewControllerClass;
33
+ _UICore.main = this;
35
34
  const rootViewElement = document.getElementById(rootDivElementID);
36
35
  const rootView = new import_UIView.UIView(rootDivElementID, rootViewElement);
37
36
  rootView.pausesPointerEvents = import_UIObject.NO;
38
- if (import_UICoreValues.UICoreValues.RootViewControllerClass) {
39
- if (!(import_UICoreValues.UICoreValues.RootViewControllerClass.prototype instanceof import_UIViewController.UIViewController) || import_UICoreValues.UICoreValues.RootViewControllerClass === import_UIViewController.UIViewController) {
37
+ if (_UICore.RootViewControllerClass) {
38
+ if (!(_UICore.RootViewControllerClass.prototype instanceof import_UIViewController.UIViewController) || _UICore.RootViewControllerClass === import_UIViewController.UIViewController) {
40
39
  console.log(
41
- "Error, UICore.RootViewControllerClass must be a or a subclass of UIViewController, falling back to UIViewController."
40
+ "Error, UICore.RootViewControllerClass must be UIViewController or a subclass of UIViewController, falling back to UIViewController."
42
41
  );
43
- import_UICoreValues.UICoreValues.RootViewControllerClass = import_UIViewController.UIViewController;
42
+ _UICore.RootViewControllerClass = import_UIViewController.UIViewController;
44
43
  }
45
- this.rootViewController = new import_UICoreValues.UICoreValues.RootViewControllerClass(rootView);
44
+ this.rootViewController = new _UICore.RootViewControllerClass(rootView);
46
45
  } else {
47
46
  this.rootViewController = new import_UIViewController.UIViewController(rootView);
48
47
  }
@@ -59,7 +58,7 @@ class UICore extends import_UIObject.UIObject {
59
58
  import_UIView.UIView.layoutViewsIfNeeded();
60
59
  this.rootViewController._triggerLayoutViewSubviews();
61
60
  this.rootViewController.view.broadcastEventInSubtree({
62
- name: import_UICoreValues.UICoreValues.broadcastEventName.WindowDidResize,
61
+ name: _UICore.broadcastEventName.WindowDidResize,
63
62
  parameters: import_UIObject.nil
64
63
  });
65
64
  };
@@ -74,7 +73,7 @@ class UICore extends import_UIObject.UIObject {
74
73
  const hashDidChange = function() {
75
74
  this.rootViewController.handleRouteRecursively(import_UIRoute.UIRoute.currentRoute);
76
75
  this.rootViewController.view.broadcastEventInSubtree({
77
- name: import_UICoreValues.UICoreValues.broadcastEventName.RouteDidChange,
76
+ name: _UICore.broadcastEventName.RouteDidChange,
78
77
  parameters: import_UIObject.nil
79
78
  });
80
79
  }.bind(this);
@@ -87,8 +86,14 @@ class UICore extends import_UIObject.UIObject {
87
86
  }
88
87
  document.writeln("<script type='text/javascript' src='dist/UICore/" + className + ".js'><\/script>");
89
88
  }
90
- }
91
- import_UICoreValues.UICoreValues.RootViewControllerClass = import_UIObject.nil;
89
+ };
90
+ let UICore = _UICore;
91
+ UICore.languageService = import_UIObject.nil;
92
+ UICore.broadcastEventName = {
93
+ "RouteDidChange": "RouteDidChange",
94
+ "WindowDidResize": "WindowDidResize"
95
+ };
96
+ UICore.RootViewControllerClass = import_UIObject.nil;
92
97
  Array.prototype.indexOf || (Array.prototype.indexOf = function(d, e) {
93
98
  var a;
94
99
  if (null == this) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../scripts/UICore.ts"],
4
- "sourcesContent": ["import \"./UICoreExtensions\"\nimport { UICoreValues } from \"./UICoreValues\"\nimport { nil, NO, UIObject } from \"./UIObject\"\nimport { UIRoute } from \"./UIRoute\"\nimport { UIView } from \"./UIView\"\nimport { UIViewController } from \"./UIViewController\"\n\n\n\nexport class UICore extends UIObject {\n \n rootViewController: UIViewController = nil\n \n \n constructor(rootDivElementID: string, rootViewControllerClass: typeof UIViewController) {\n \n super()\n \n UICoreValues.RootViewControllerClass = rootViewControllerClass\n UICoreValues.main = this\n \n const rootViewElement = document.getElementById(rootDivElementID)\n const rootView = new UIView(rootDivElementID, rootViewElement)\n rootView.pausesPointerEvents = NO //YES;\n \n if (UICoreValues.RootViewControllerClass) {\n \n if (!(UICoreValues.RootViewControllerClass.prototype instanceof UIViewController) ||\n (UICoreValues.RootViewControllerClass as any) === UIViewController) {\n \n console.log(\n \"Error, UICore.RootViewControllerClass must be a or a subclass of UIViewController, falling back to UIViewController.\")\n \n UICoreValues.RootViewControllerClass = UIViewController\n \n }\n \n this.rootViewController = new UICoreValues.RootViewControllerClass(rootView)\n \n }\n else {\n \n this.rootViewController = new UIViewController(rootView)\n \n }\n \n this.rootViewController.viewWillAppear()\n this.rootViewController.viewDidAppear()\n \n \n this.rootViewController.view.addTargetForControlEvent(\n UIView.controlEvent.PointerUpInside,\n function (sender, event) {\n \n (document.activeElement as HTMLElement).blur()\n \n }\n )\n \n \n \n const windowDidResize = function (this: UICore) {\n \n // Doing layout two times to prevent page scrollbars from confusing the layout\n this.rootViewController._triggerLayoutViewSubviews()\n UIView.layoutViewsIfNeeded()\n \n this.rootViewController._triggerLayoutViewSubviews()\n //UIView.layoutViewsIfNeeded()\n \n this.rootViewController.view.broadcastEventInSubtree({\n \n name: UICoreValues.broadcastEventName.WindowDidResize,\n parameters: nil\n \n })\n \n }\n \n window.addEventListener(\"resize\", windowDidResize.bind(this))\n \n const didScroll = function (this: UICore) {\n \n //code\n \n this.rootViewController.view.broadcastEventInSubtree({\n \n name: UIView.broadcastEventName.PageDidScroll,\n parameters: nil\n \n })\n \n \n \n }.bind(this)\n \n window.addEventListener(\"scroll\", didScroll, false)\n \n const hashDidChange = function (this: UICore) {\n \n //code\n \n this.rootViewController.handleRouteRecursively(UIRoute.currentRoute)\n \n this.rootViewController.view.broadcastEventInSubtree({\n \n name: UICoreValues.broadcastEventName.RouteDidChange,\n parameters: nil\n \n })\n \n \n }.bind(this)\n \n window.addEventListener(\"hashchange\", hashDidChange.bind(this), false)\n \n hashDidChange()\n \n \n \n }\n \n \n \n \n \n static loadClass(className: string) {\n \n if (window[className]) {\n return\n }\n \n document.writeln(\"<script type='text/javascript' src='dist/UICore/\" + className + \".js'></script>\")\n \n }\n \n \n}\n\n\nUICoreValues.RootViewControllerClass = nil\n\n\nArray.prototype.indexOf || (Array.prototype.indexOf = function (d, e) {\n var a\n if (null == this) {\n throw new TypeError(\"\\\"this\\\" is null or not defined\")\n }\n const c = Object(this),\n b = c.length >>> 0\n if (0 === b) {\n return -1\n }\n a = +e || 0\n Infinity === Math.abs(a) && (a = 0)\n if (a >= b) {\n return -1\n }\n for (a = Math.max(0 <= a ? a : b - Math.abs(a), 0); a < b;) {\n if (a in c && c[a] === d) {\n return a\n }\n a++\n }\n return -1\n})\n\n\n\n\n\n\n\n\n\n\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8BAAO;AACP,0BAA6B;AAC7B,sBAAkC;AAClC,qBAAwB;AACxB,oBAAuB;AACvB,8BAAiC;AAI1B,MAAM,eAAe,yBAAS;AAAA,EAKjC,YAAY,kBAA0B,yBAAkD;AAEpF,UAAM;AALV,8BAAuC;AAOnC,qCAAa,0BAA0B;AACvC,qCAAa,OAAO;AAEpB,UAAM,kBAAkB,SAAS,eAAe,gBAAgB;AAChE,UAAM,WAAW,IAAI,qBAAO,kBAAkB,eAAe;AAC7D,aAAS,sBAAsB;AAE/B,QAAI,iCAAa,yBAAyB;AAEtC,UAAI,EAAE,iCAAa,wBAAwB,qBAAqB,6CAC3D,iCAAa,4BAAoC,0CAAkB;AAEpE,gBAAQ;AAAA,UACJ;AAAA,QAAsH;AAE1H,yCAAa,0BAA0B;AAAA,MAE3C;AAEA,WAAK,qBAAqB,IAAI,iCAAa,wBAAwB,QAAQ;AAAA,IAE/E,OACK;AAED,WAAK,qBAAqB,IAAI,yCAAiB,QAAQ;AAAA,IAE3D;AAEA,SAAK,mBAAmB,eAAe;AACvC,SAAK,mBAAmB,cAAc;AAGtC,SAAK,mBAAmB,KAAK;AAAA,MACzB,qBAAO,aAAa;AAAA,MACpB,SAAU,QAAQ,OAAO;AAErB,QAAC,SAAS,cAA8B,KAAK;AAAA,MAEjD;AAAA,IACJ;AAIA,UAAM,kBAAkB,WAAwB;AAG5C,WAAK,mBAAmB,2BAA2B;AACnD,2BAAO,oBAAoB;AAE3B,WAAK,mBAAmB,2BAA2B;AAGnD,WAAK,mBAAmB,KAAK,wBAAwB;AAAA,QAEjD,MAAM,iCAAa,mBAAmB;AAAA,QACtC,YAAY;AAAA,MAEhB,CAAC;AAAA,IAEL;AAEA,WAAO,iBAAiB,UAAU,gBAAgB,KAAK,IAAI,CAAC;AAE5D,UAAM,YAAY,WAAwB;AAItC,WAAK,mBAAmB,KAAK,wBAAwB;AAAA,QAEjD,MAAM,qBAAO,mBAAmB;AAAA,QAChC,YAAY;AAAA,MAEhB,CAAC;AAAA,IAIL,EAAE,KAAK,IAAI;AAEX,WAAO,iBAAiB,UAAU,WAAW,KAAK;AAElD,UAAM,gBAAgB,WAAwB;AAI1C,WAAK,mBAAmB,uBAAuB,uBAAQ,YAAY;AAEnE,WAAK,mBAAmB,KAAK,wBAAwB;AAAA,QAEjD,MAAM,iCAAa,mBAAmB;AAAA,QACtC,YAAY;AAAA,MAEhB,CAAC;AAAA,IAGL,EAAE,KAAK,IAAI;AAEX,WAAO,iBAAiB,cAAc,cAAc,KAAK,IAAI,GAAG,KAAK;AAErE,kBAAc;AAAA,EAIlB;AAAA,EAMA,OAAO,UAAU,WAAmB;AAEhC,QAAI,OAAO,YAAY;AACnB;AAAA,IACJ;AAEA,aAAS,QAAQ,qDAAqD,YAAY,iBAAgB;AAAA,EAEtG;AAGJ;AAGA,iCAAa,0BAA0B;AAGvC,MAAM,UAAU,YAAY,MAAM,UAAU,UAAU,SAAU,GAAG,GAAG;AAClE,MAAI;AACJ,MAAI,QAAQ,MAAM;AACd,UAAM,IAAI,UAAU,+BAAiC;AAAA,EACzD;AACA,QAAM,IAAI,OAAO,IAAI,GACjB,IAAI,EAAE,WAAW;AACrB,MAAI,MAAM,GAAG;AACT,WAAO;AAAA,EACX;AACA,MAAI,CAAC,KAAK;AACV,eAAa,KAAK,IAAI,CAAC,MAAM,IAAI;AACjC,MAAI,KAAK,GAAG;AACR,WAAO;AAAA,EACX;AACA,OAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,KAAI;AACxD,QAAI,KAAK,KAAK,EAAE,OAAO,GAAG;AACtB,aAAO;AAAA,IACX;AACA;AAAA,EACJ;AACA,SAAO;AACX;",
4
+ "sourcesContent": ["import \"./UICoreExtensions\"\nimport { UILanguageService } from \"./UIInterfaces\"\nimport { nil, NO, UIObject } from \"./UIObject\"\nimport { UIRoute } from \"./UIRoute\"\nimport { UIView } from \"./UIView\"\nimport { UIViewController } from \"./UIViewController\"\n\n\n\nexport class UICore extends UIObject {\n \n rootViewController: UIViewController = nil\n static RootViewControllerClass: any\n static main: UICore\n \n static languageService: UILanguageService = nil\n \n static readonly broadcastEventName = {\n \n \"RouteDidChange\": \"RouteDidChange\",\n \"WindowDidResize\": \"WindowDidResize\"\n \n }\n \n constructor(rootDivElementID: string, rootViewControllerClass: typeof UIViewController) {\n \n super()\n \n UICore.RootViewControllerClass = rootViewControllerClass\n UICore.main = this\n \n const rootViewElement = document.getElementById(rootDivElementID)\n const rootView = new UIView(rootDivElementID, rootViewElement)\n rootView.pausesPointerEvents = NO //YES;\n \n if (UICore.RootViewControllerClass) {\n \n if (!(UICore.RootViewControllerClass.prototype instanceof UIViewController) ||\n (UICore.RootViewControllerClass as any) === UIViewController) {\n \n console.log(\n \"Error, UICore.RootViewControllerClass must be UIViewController or a subclass of UIViewController, \" +\n \"falling back to UIViewController.\"\n )\n \n UICore.RootViewControllerClass = UIViewController\n \n }\n \n this.rootViewController = new UICore.RootViewControllerClass(rootView)\n \n }\n else {\n \n this.rootViewController = new UIViewController(rootView)\n \n }\n \n this.rootViewController.viewWillAppear()\n this.rootViewController.viewDidAppear()\n \n \n this.rootViewController.view.addTargetForControlEvent(\n UIView.controlEvent.PointerUpInside,\n function (sender, event) {\n \n (document.activeElement as HTMLElement).blur()\n \n }\n )\n \n \n \n const windowDidResize = function (this: UICore) {\n \n // Doing layout two times to prevent page scrollbars from confusing the layout\n this.rootViewController._triggerLayoutViewSubviews()\n UIView.layoutViewsIfNeeded()\n \n this.rootViewController._triggerLayoutViewSubviews()\n //UIView.layoutViewsIfNeeded()\n \n this.rootViewController.view.broadcastEventInSubtree({\n \n name: UICore.broadcastEventName.WindowDidResize,\n parameters: nil\n \n })\n \n }\n \n window.addEventListener(\"resize\", windowDidResize.bind(this))\n \n const didScroll = function (this: UICore) {\n \n //code\n \n this.rootViewController.view.broadcastEventInSubtree({\n \n name: UIView.broadcastEventName.PageDidScroll,\n parameters: nil\n \n })\n \n \n \n }.bind(this)\n \n window.addEventListener(\"scroll\", didScroll, false)\n \n const hashDidChange = function (this: UICore) {\n \n //code\n \n this.rootViewController.handleRouteRecursively(UIRoute.currentRoute)\n \n this.rootViewController.view.broadcastEventInSubtree({\n \n name: UICore.broadcastEventName.RouteDidChange,\n parameters: nil\n \n })\n \n \n }.bind(this)\n \n window.addEventListener(\"hashchange\", hashDidChange.bind(this), false)\n \n hashDidChange()\n \n \n \n }\n \n \n \n \n \n static loadClass(className: string) {\n \n if (window[className]) {\n return\n }\n \n document.writeln(\"<script type='text/javascript' src='dist/UICore/\" + className + \".js'></script>\")\n \n }\n \n \n}\n\n\nUICore.RootViewControllerClass = nil\n\n\nArray.prototype.indexOf || (Array.prototype.indexOf = function (d, e) {\n var a\n if (null == this) {\n throw new TypeError(\"\\\"this\\\" is null or not defined\")\n }\n const c = Object(this),\n b = c.length >>> 0\n if (0 === b) {\n return -1\n }\n a = +e || 0\n Infinity === Math.abs(a) && (a = 0)\n if (a >= b) {\n return -1\n }\n for (a = Math.max(0 <= a ? a : b - Math.abs(a), 0); a < b;) {\n if (a in c && c[a] === d) {\n return a\n }\n a++\n }\n return -1\n})\n\n\n\n\n\n\n\n\n\n\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8BAAO;AAEP,sBAAkC;AAClC,qBAAwB;AACxB,oBAAuB;AACvB,8BAAiC;AAI1B,MAAM,UAAN,cAAqB,yBAAS;AAAA,EAejC,YAAY,kBAA0B,yBAAkD;AAEpF,UAAM;AAfV,8BAAuC;AAiBnC,YAAO,0BAA0B;AACjC,YAAO,OAAO;AAEd,UAAM,kBAAkB,SAAS,eAAe,gBAAgB;AAChE,UAAM,WAAW,IAAI,qBAAO,kBAAkB,eAAe;AAC7D,aAAS,sBAAsB;AAE/B,QAAI,QAAO,yBAAyB;AAEhC,UAAI,EAAE,QAAO,wBAAwB,qBAAqB,6CACrD,QAAO,4BAAoC,0CAAkB;AAE9D,gBAAQ;AAAA,UACJ;AAAA,QAEJ;AAEA,gBAAO,0BAA0B;AAAA,MAErC;AAEA,WAAK,qBAAqB,IAAI,QAAO,wBAAwB,QAAQ;AAAA,IAEzE,OACK;AAED,WAAK,qBAAqB,IAAI,yCAAiB,QAAQ;AAAA,IAE3D;AAEA,SAAK,mBAAmB,eAAe;AACvC,SAAK,mBAAmB,cAAc;AAGtC,SAAK,mBAAmB,KAAK;AAAA,MACzB,qBAAO,aAAa;AAAA,MACpB,SAAU,QAAQ,OAAO;AAErB,QAAC,SAAS,cAA8B,KAAK;AAAA,MAEjD;AAAA,IACJ;AAIA,UAAM,kBAAkB,WAAwB;AAG5C,WAAK,mBAAmB,2BAA2B;AACnD,2BAAO,oBAAoB;AAE3B,WAAK,mBAAmB,2BAA2B;AAGnD,WAAK,mBAAmB,KAAK,wBAAwB;AAAA,QAEjD,MAAM,QAAO,mBAAmB;AAAA,QAChC,YAAY;AAAA,MAEhB,CAAC;AAAA,IAEL;AAEA,WAAO,iBAAiB,UAAU,gBAAgB,KAAK,IAAI,CAAC;AAE5D,UAAM,YAAY,WAAwB;AAItC,WAAK,mBAAmB,KAAK,wBAAwB;AAAA,QAEjD,MAAM,qBAAO,mBAAmB;AAAA,QAChC,YAAY;AAAA,MAEhB,CAAC;AAAA,IAIL,EAAE,KAAK,IAAI;AAEX,WAAO,iBAAiB,UAAU,WAAW,KAAK;AAElD,UAAM,gBAAgB,WAAwB;AAI1C,WAAK,mBAAmB,uBAAuB,uBAAQ,YAAY;AAEnE,WAAK,mBAAmB,KAAK,wBAAwB;AAAA,QAEjD,MAAM,QAAO,mBAAmB;AAAA,QAChC,YAAY;AAAA,MAEhB,CAAC;AAAA,IAGL,EAAE,KAAK,IAAI;AAEX,WAAO,iBAAiB,cAAc,cAAc,KAAK,IAAI,GAAG,KAAK;AAErE,kBAAc;AAAA,EAIlB;AAAA,EAMA,OAAO,UAAU,WAAmB;AAEhC,QAAI,OAAO,YAAY;AACnB;AAAA,IACJ;AAEA,aAAS,QAAQ,qDAAqD,YAAY,iBAAgB;AAAA,EAEtG;AAGJ;AA5IO,IAAM,SAAN;AAAM,OAMF,kBAAqC;AANnC,OAQO,qBAAqB;AAAA,EAEjC,kBAAkB;AAAA,EAClB,mBAAmB;AAEvB;AAkIJ,OAAO,0BAA0B;AAGjC,MAAM,UAAU,YAAY,MAAM,UAAU,UAAU,SAAU,GAAG,GAAG;AAClE,MAAI;AACJ,MAAI,QAAQ,MAAM;AACd,UAAM,IAAI,UAAU,+BAAiC;AAAA,EACzD;AACA,QAAM,IAAI,OAAO,IAAI,GACjB,IAAI,EAAE,WAAW;AACrB,MAAI,MAAM,GAAG;AACT,WAAO;AAAA,EACX;AACA,MAAI,CAAC,KAAK;AACV,eAAa,KAAK,IAAI,CAAC,MAAM,IAAI;AACjC,MAAI,KAAK,GAAG;AACR,WAAO;AAAA,EACX;AACA,OAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,KAAI;AACxD,QAAI,KAAK,KAAK,EAAE,OAAO,GAAG;AACtB,aAAO;AAAA,IACX;AACA;AAAA,EACJ;AACA,SAAO;AACX;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../scripts/UICoreExtensionValueObject.ts"],
4
- "sourcesContent": ["\nexport class UICoreExtensionValueObject {\n \n isAUICoreExtensionValueObject = true;\n value: any\n \n constructor(value: any) {\n \n this.value = value\n \n }\n \n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACO,MAAM,2BAA2B;AAAA,EAKpC,YAAY,OAAY;AAHxB,yCAAgC;AAK5B,SAAK,QAAQ;AAAA,EAEjB;AAEJ;",
4
+ "sourcesContent": ["export class UICoreExtensionValueObject {\n \n isAUICoreExtensionValueObject = true\n value: any\n \n constructor(value: any) {\n \n this.value = value\n \n }\n \n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,2BAA2B;AAAA,EAKpC,YAAY,OAAY;AAHxB,yCAAgC;AAK5B,SAAK,QAAQ;AAAA,EAEjB;AAEJ;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../scripts/UICoreExtensions.ts"],
4
- "sourcesContent": ["import { UICoreExtensionValueObject } from \"./UICoreExtensionValueObject\"\nimport { UIObject } from \"./UIObject\"\n\n\n\n\n\ndeclare global {\n \n \n interface Array<T> {\n \n removeElementAtIndex(index: number);\n \n removeElement(element: T);\n \n insertElementAtIndex(index: number, element: T);\n \n replaceElementAtIndex(index: number, element: T);\n \n \n contains(element: T): boolean;\n \n findAsyncSequential(functionToCall: (value: any) => Promise<boolean>): Promise<any>;\n \n groupedBy(keyFunction: (item: T) => any): { [key: string]: Array<T> } & Object;\n \n copy(): Array<T>;\n \n arrayByRepeating(numberOfRepetitions: number): Array<T>;\n \n arrayByTrimmingToLengthIfLonger(maxLength: number): Array<T>;\n \n anyMatch(predicate: (value: T, index: number, obj: T[]) => boolean): boolean\n \n noneMatch(predicate: (value: T, index: number, obj: T[]) => boolean): boolean\n \n allMatch(predicate: (value: T, index: number, obj: T[]) => boolean): boolean\n \n firstElement: T;\n lastElement: T;\n readonly summedValue: T;\n \n everyElement: UIEveryElementItem<T>;\n \n max(): number;\n \n min(): number;\n \n isEqualToArray(array: Array<T>, keyPath?: string): boolean;\n \n }\n \n \n \n interface String {\n \n contains(string): boolean;\n \n readonly numericalValue: number;\n isAString: boolean;\n \n }\n \n \n \n interface Number {\n \n isANumber: boolean;\n \n readonly integerValue: number;\n \n }\n \n \n \n interface Date {\n \n readonly dateString: string;\n \n }\n \n \n interface Object {\n \n forEach(callbackFunction: (value: any, key: string) => void): void;\n \n readonly allValues: Array<any>;\n \n readonly allKeys: string[];\n \n }\n \n \n}\n\nexport {}\n\nconst YES = true\nconst NO = false\n\nif (\"removeElementAtIndex\" in Array.prototype == NO) {\n \n (Array.prototype as any).removeElementAtIndex = function (this: Array<any>, index: number) {\n \n // @ts-ignore\n if (index >= 0 && index < this.length) {\n \n this.splice(index, 1)\n \n }\n \n }\n \n}\n\n\n// interface Array<T> {\n//\n// removeElementAtIndex(index: number);\n//\n// }\n\n\nif (\"removeElement\" in Array.prototype == NO) {\n \n (Array.prototype as any).removeElement = function (this: Array<any>, element) {\n \n this.removeElementAtIndex(this.indexOf(element))\n \n }\n \n}\n\n\n// interface Array<T> {\n//\n// removeElement(element: T);\n//\n// }\n\n\nif (\"insertElementAtIndex\" in Array.prototype == NO) {\n \n (Array.prototype as any).insertElementAtIndex = function (this: Array<any>, index: number, element: any) {\n \n if (index >= 0 && index <= this.length) {\n \n this.splice(index, 0, element)\n \n }\n \n }\n \n}\n\n\n// interface Array<T> {\n//\n// insertElementAtIndex(index: number, element: T);\n//\n// }\n\n\nif (\"replaceElementAtIndex\" in Array.prototype == NO) {\n \n (Array.prototype as any).replaceElementAtIndex = function (this: Array<any>, index: number, element: any) {\n \n this.removeElementAtIndex(index)\n this.insertElementAtIndex(index, element)\n \n }\n \n}\n\n\n// interface Array<T> {\n//\n// replaceElementAtIndex(index: number, element: T);\n//\n// }\n\n\nif (\"contains\" in Array.prototype == NO) {\n \n (Array.prototype as any).contains = function (this: Array<any>, element) {\n \n const result = (this.indexOf(element) != -1)\n return result\n \n }\n \n}\n\nif (\"containsAny\" in Array.prototype == NO) {\n \n (Array.prototype as any).containsAny = function (this: Array<any>, elements: any[]) {\n \n const result = this.anyMatch(function (element, index, array) {\n return elements.contains(element)\n })\n \n return result\n \n }\n \n}\n\n\n// interface Array<T> {\n//\n// contains(element: T): boolean;\n//\n// containsAny(element: T[]): boolean;\n//\n// }\n\n\nif (\"anyMatch\" in Array.prototype == NO) {\n \n (Array.prototype as any).anyMatch = function (\n this: Array<any>,\n functionToCall: (value: any, index: number, array: any[]) => boolean\n ) {\n \n // @ts-ignore\n const result = (this.findIndex(functionToCall) > -1)\n \n return result\n \n }\n \n}\n\nif (\"noneMatch\" in Array.prototype == NO) {\n \n (Array.prototype as any).noneMatch = function (\n this: Array<any>,\n functionToCall: (value: any, index: number, array: any[]) => boolean\n ) {\n \n // @ts-ignore\n const result = (this.findIndex(functionToCall) == -1)\n \n return result\n \n }\n \n}\n\nif (\"allMatch\" in Array.prototype == NO) {\n \n (Array.prototype as any).allMatch = function (\n this: Array<any>,\n functionToCall: (value: any, index: number, array: any[]) => boolean\n ) {\n \n function reversedFunction(value: any, index: number, array: any[]) {\n return !functionToCall(value, index, array)\n }\n \n // @ts-ignore\n const result = (this.findIndex(reversedFunction) == -1)\n \n return result\n \n }\n \n}\n\nif (\"findAsyncSequential\" in Array.prototype == NO) {\n \n (Array.prototype as any).findAsyncSequential = function (\n this: Array<any>,\n functionToCall: (value: any) => Promise<boolean>\n ) {\n \n // https://stackoverflow.com/questions/55601062/using-an-async-function-in-array-find\n async function findAsyncSequential<T>(\n array: T[],\n predicate: (t: T) => Promise<boolean>,\n ): Promise<T | undefined> {\n for (const t of array) {\n if (await predicate(t)) {\n return t;\n }\n }\n return undefined;\n }\n \n const result = findAsyncSequential(this, functionToCall);\n \n return result\n \n }\n \n}\n\n\n\n// interface Array<T> {\n//\n// anyMatch(predicate: (value: T, index: number, obj: T[]) => boolean): boolean\n//\n// noneMatch(predicate: (value: T, index: number, obj: T[]) => boolean): boolean\n//\n// allMatch(predicate: (value: T, index: number, obj: T[]) => boolean): boolean\n//\n// }\n\n\nif (\"groupedBy\" in Array.prototype == NO) {\n \n Array.prototype.groupedBy = function (this: Array<any>, funcProp) {\n return this.reduce(function (acc, val) {\n (acc[funcProp(val)] = acc[funcProp(val)] || []).push(val)\n return acc\n }, {})\n }\n \n}\n\n\n// interface Array<T> {\n//\n// groupedBy(keyFunction: (item: T) => any): { [key: string]: Array<T> };\n//\n// }\n\n\nif (\"firstElement\" in Array.prototype == NO) {\n Object.defineProperty(Array.prototype, \"firstElement\", {\n get: function firstElement(this: Array<any>) {\n const result = this[0]\n return result\n },\n set: function (this: Array<any>, element: any) {\n if (this.length == 0) {\n this.push(element)\n return\n }\n this[0] = element\n }\n })\n}\n\nif (\"lastElement\" in Array.prototype == NO) {\n Object.defineProperty(Array.prototype, \"lastElement\", {\n get: function lastElement(this: Array<any>) {\n const result = this[this.length - 1]\n return result\n },\n set: function (this: Array<any>, element: any) {\n if (this.length == 0) {\n this.push(element)\n return\n }\n this[this.length - 1] = element\n }\n })\n}\n\nif (\"everyElement\" in Array.prototype == NO) {\n \n Object.defineProperty(Array.prototype, \"everyElement\", {\n \n get: function everyElement(this: Array<any>) {\n \n var valueKeys = []\n \n const targetFunction = (objects) => {\n \n return this.map((element, index, array) => {\n \n var elementFunction = (UIObject.valueForKeyPath(valueKeys.join(\".\"), element) as Function).bind(\n element,\n objects\n )\n \n return elementFunction()\n \n })\n \n }\n \n const result = new Proxy(\n targetFunction,\n {\n \n get: (target, key, receiver) => {\n \n if (key == \"UI_elementValues\") {\n \n return this.map((element, index, array) => UIObject.valueForKeyPath(\n valueKeys.join(\".\"),\n element\n ))\n \n }\n \n valueKeys.push(key)\n \n return result\n \n },\n set: (target, key, value, receiver) => {\n \n valueKeys.push(key)\n \n this.forEach((element, index, array) => {\n \n UIObject.setValueForKeyPath(valueKeys.join(\".\"), value, element, YES)\n \n })\n \n return true\n \n }\n \n }\n )\n \n return result\n \n },\n set: function (this: Array<any>, element: any) {\n \n for (var i = 0; i < this.length; ++i) {\n \n this[i] = element\n \n }\n \n }\n \n })\n \n}\n\n\nexport type UIEveryElementItem<T> = {\n \n [P in keyof T]: UIEveryElementItem<T[P]>\n \n} & {\n \n UI_elementValues?: T[];\n \n} & T\n\n// interface Array<T> {\n//\n// firstElement: T;\n// lastElement: T;\n//\n// everyElement: UIEveryElementItem<T>;\n//\n// }\n\n\nif (\"copy\" in Array.prototype == NO) {\n \n (Array.prototype as any).copy = function (this: Array<any>) {\n \n const result = this.slice(0)\n return result\n \n }\n \n}\n\n\n// interface Array<T> {\n//\n// copy(): Array<T>;\n//\n// }\n\n\nif (\"arrayByRepeating\" in Array.prototype == NO) {\n \n (Array.prototype as any).arrayByRepeating = function (this: Array<any>, numberOfRepetitions: number) {\n const result = []\n for (var i = 0; i < numberOfRepetitions; i++) {\n this.forEach(function (element, index, array) {\n result.push(element)\n })\n }\n return result\n }\n \n}\n\n\n// interface Array<T> {\n//\n// arrayByRepeating(numberOfRepetitions: number): Array<T>;\n//\n// }\n\n\nif (\"arrayByTrimmingToLengthIfLonger\" in Array.prototype == NO) {\n (Array.prototype as any).arrayByTrimmingToLengthIfLonger = function (this: Array<any>, maxLength: number) {\n const result = []\n for (var i = 0; i < maxLength && i < this.length; i++) {\n result.push(this[i])\n }\n return result\n }\n}\n\n\n// interface Array<T> {\n//\n// arrayByTrimmingToLengthIfLonger(maxLength: number): Array<T>;\n//\n// }\n\n\nif (\"summedValue\" in Array.prototype == NO) {\n \n Object.defineProperty(Array.prototype, \"summedValue\", {\n get: function summedValue(this: Array<any>) {\n const result = this.reduce(function (a, b) {\n return a + b\n }, 0)\n return result\n }\n })\n \n}\n\n\n// interface Array<T> {\n//\n// readonly summedValue: T;\n//\n// max(): number;\n// min(): number;\n//\n//\n// }\n\nArray.prototype.max = function () {\n return Math.max.apply(null, this)\n}\n\nArray.prototype.min = function () {\n return Math.min.apply(null, this)\n}\n\n\n// interface Array<T> {\n//\n// isEqualToArray(array: Array<T>, keyPath?: string): boolean;\n//\n// }\n\n// Warn if overriding existing method\nif (\"isEqualToArray\" in Array.prototype == YES) {\n console.warn(\n \"Overriding existing Array.prototype.isEqualToArray. Possible causes: New API defines the method, there's a framework conflict or you've got double inclusions in your code.\")\n}\n// attach the .equals method to Array's prototype to call it on any array\nArray.prototype.isEqualToArray = function (array: any[], keyPath?: string) {\n \n // if the other array is a falsy value, return\n if (!array) {\n return false\n }\n \n // compare lengths - can save a lot of time \n if (this.length != array.length) {\n return false\n }\n \n var i = 0\n const l = this.length\n for (; i < l; i++) {\n \n // Check if we have nested arrays\n if (this[i] instanceof Array && array[i] instanceof Array && !keyPath) {\n \n // recurse into the nested arrays\n if (!this[i].isEqualToArray(array[i])) {\n return false\n }\n \n }\n else if (keyPath && UIObject.valueForKeyPath(keyPath, this[i]) != UIObject.valueForKeyPath(keyPath, array[i])) {\n \n return false\n \n }\n else if (this[i] != array[i]) {\n \n // Warning - two different object instances will never be equal: {x:20} != {x:20}\n return false\n \n }\n \n }\n \n return true\n \n}\n\n// Hide method from for-in loops\nObject.defineProperty(Array.prototype, \"isEqualToArray\", { enumerable: false })\n\n\n\n\n\nif (\"forEach\" in Object.prototype == NO) {\n \n (Object.prototype as any).forEach = function (this: Object, callbackFunction: (value: any, key: string) => void) {\n const keys = Object.keys(this)\n keys.forEach(function (key, index, array) {\n callbackFunction(this[key], key)\n }.bind(this))\n }\n \n // Hide method from for-in loops\n Object.defineProperty(Object.prototype, \"forEach\", { enumerable: false })\n \n}\n\n\n// interface Object {\n//\n// forEach(callbackFunction: (value: any, key: string) => void): void;\n//\n// }\n\n\nif (\"allValues\" in Object.prototype == NO) {\n Object.defineProperty(Object.prototype, \"allValues\", {\n get: function (this: Object) {\n const values = []\n this.forEach(function (value: any) {\n values.push(value)\n })\n return values\n }\n })\n}\n\n\n// interface Object {\n//\n// readonly allValues: Array<any>;\n//\n// }\n\n\nif (\"allKeys\" in Object.prototype == NO) {\n Object.defineProperty(Object.prototype, \"allKeys\", {\n get: function (this: Object) {\n const values = Object.keys(this)\n return values\n }\n })\n}\n\n\n// interface Object {\n//\n// readonly allKeys: string[];\n//\n// }\n\n\nif (\"objectByCopyingValuesRecursivelyFromObject\" in Object.prototype == NO) {\n \n (Object.prototype as any).objectByCopyingValuesRecursivelyFromObject = function (this: Object, object: any) {\n \n \n function isAnObject(item: any) {\n return (item && typeof item === \"object\" && !Array.isArray(item))\n }\n \n function mergeRecursively(target: any, source: any) {\n \n const output = Object.assign({}, target)\n \n if (isAnObject(target) && isAnObject(source)) {\n \n Object.keys(source).forEach(function (key) {\n \n if (isAnObject(source[key])) {\n \n // if (!(key in target)) {\n \n // Object.assign(output, { [key]: source[key] });\n \n // }\n // else {\n \n output[key] = mergeRecursively(target[key], source[key])\n \n //}\n \n }\n else {\n \n Object.assign(output, { [key]: source[key] })\n \n }\n \n })\n \n }\n \n return output\n \n }\n \n const result = mergeRecursively(this, object)\n \n return result\n \n }\n \n // Hide method from for-in loops\n Object.defineProperty(Object.prototype, \"objectByCopyingValuesRecursivelyFromObject\", { enumerable: false })\n \n}\n\n\nif (\"asValueObject\" in Object.prototype == NO) {\n \n (Object.prototype as any).asValueObject = function () {\n \n const result = new UICoreExtensionValueObject(this)\n \n return result\n \n }\n \n // Hide method from for-in loops\n Object.defineProperty(Object.prototype, \"asValueObject\", { enumerable: false })\n \n}\n\n\n// interface Object {\n//\n// objectByCopyingValuesRecursivelyFromObject<T>(object: T): this & T;\n//\n// asValueObject(): this;\n//\n// }\n\nexport type Unpacked<T> =\n T extends (infer U)[]\n ? U\n : T extends (...args: any[]) => infer U\n ? U\n : T extends Promise<infer U>\n ? U\n : T\n\nexport type UnpackedObject<T> = {\n [P in keyof T]: Unpacked<T[P]>\n}\n\nexport function promisedProperties<ObjectType extends object>(object: ObjectType): UnpackedObject<ObjectType> {\n \n let promisedProperties = []\n const objectKeys = Object.keys(object)\n \n objectKeys.forEach((key) => promisedProperties.push(object[key]))\n \n // @ts-ignore\n return Promise.all(promisedProperties)\n .then((resolvedValues) => {\n return resolvedValues.reduce((resolvedObject, property, index) => {\n resolvedObject[objectKeys[index]] = property\n return resolvedObject\n }, object)\n })\n \n}\n\n// if (\"promisedProperties\" in Object.prototype == NO) {\n//\n// (Object.prototype as any).promisedProperties = function () {\n//\n// const result = promisedProperties(this);\n//\n// return result\n//\n// }\n//\n// // Hide method from for-in loops\n// Object.defineProperty(Object.prototype, \"promisedProperties\", { enumerable: false });\n//\n// }\n//\n//\n// interface Object {\n//\n// readonly promisedProperties: UnpackedObject<this>;\n//\n// }\n\n\nif (\"contains\" in String.prototype == NO) {\n \n (String.prototype as any).contains = function (this: String, string) {\n \n const result = (this.indexOf(string) != -1)\n return result\n \n }\n \n // Hide method from for-in loops\n Object.defineProperty(Object.prototype, \"contains\", { enumerable: false })\n \n}\n\n\n// interface String {\n//\n// contains(string): boolean;\n//\n// }\n\n\nif (\"capitalizedString\" in String.prototype == NO) {\n Object.defineProperty(Object.prototype, \"capitalizedString\", {\n get: function (this: String) {\n const result = this.charAt(0).toUpperCase() + this.slice(1).toLowerCase()\n return result\n }\n })\n}\n\n\n// interface String {\n//\n// readonly capitalizedString: string;\n//\n// }\n\n\nif (\"numericalValue\" in String.prototype == NO) {\n Object.defineProperty(String.prototype, \"numericalValue\", {\n get: function numericalValue(this: string) {\n const result = Number(this)\n return result\n }\n })\n}\n\n\n// interface String {\n//\n// readonly numericalValue: number;\n//\n// }\n\n\nif (\"isAString\" in String.prototype == NO) {\n \n (String.prototype as any).isAString = YES\n \n}\n\n\n// interface String {\n//\n// isAString: boolean;\n//\n// }\n\n\nif (\"isANumber\" in Number.prototype == NO) {\n \n (Number.prototype as any).isANumber = YES\n \n}\n\n\n// interface Number {\n//\n// isANumber: boolean;\n//\n// }\n\n\n\n\n\nif (\"integerValue\" in Number.prototype == NO) {\n Object.defineProperty(Number.prototype, \"integerValue\", {\n get: function (this: number) {\n const result = parseInt(\"\" + (Math.round(this) + 0.5))\n return result\n }\n })\n}\n\n\n// interface Number {\n//\n// readonly integerValue: number;\n//\n// }\n\n\n\nexport class PrimitiveNumber {\n \n // @ts-ignore\n static [Symbol.hasInstance](x) {\n return\n }\n \n}\n\n\nif (\"integerValue\" in Boolean.prototype == NO) {\n \n Object.defineProperty(Boolean.prototype, \"integerValue\", {\n get: function (this: boolean) {\n \n if (this == true) {\n \n return 1\n \n }\n \n return 0\n \n }\n })\n \n}\n\n\n// interface Boolean {\n//\n// readonly integerValue: number;\n//\n// }\n\n\nif (\"dateString\" in Date.prototype == NO) {\n \n Object.defineProperty(Date.prototype, \"dateString\", {\n get: function dateString(this: Date) {\n \n const result = (\"0\" + this.getDate()).slice(-2) + \"-\" + (\"0\" + (this.getMonth() + 1)).slice(-2) + \"-\" +\n this.getFullYear() + \" \" + (\"0\" + this.getHours()).slice(-2) + \":\" +\n (\"0\" + this.getMinutes()).slice(-2)\n \n return result\n \n }\n })\n \n \n \n}\n\n\n// interface Date {\n//\n// readonly dateString: string;\n//\n// }\n\n\n\n\n\n\n\n\n"],
4
+ "sourcesContent": ["import { UICoreExtensionValueObject } from \"./UICoreExtensionValueObject\"\nimport { UIObject } from \"./UIObject\"\n\n\n\n\n\ndeclare global {\n \n \n interface Array<T> {\n \n removeElementAtIndex(index: number);\n \n removeElement(element: T);\n \n insertElementAtIndex(index: number, element: T);\n \n replaceElementAtIndex(index: number, element: T);\n \n \n contains(element: T): boolean;\n \n findAsyncSequential(functionToCall: (value: any) => Promise<boolean>): Promise<any>;\n \n groupedBy(keyFunction: (item: T) => any): { [key: string]: Array<T> } & Object;\n \n copy(): Array<T>;\n \n arrayByRepeating(numberOfRepetitions: number): Array<T>;\n \n arrayByTrimmingToLengthIfLonger(maxLength: number): Array<T>;\n \n anyMatch(predicate: (value: T, index: number, obj: T[]) => boolean): boolean\n \n noneMatch(predicate: (value: T, index: number, obj: T[]) => boolean): boolean\n \n allMatch(predicate: (value: T, index: number, obj: T[]) => boolean): boolean\n \n firstElement: T;\n lastElement: T;\n readonly summedValue: T;\n \n everyElement: UIEveryElementItem<T>;\n \n max(): number;\n \n min(): number;\n \n isEqualToArray(array: Array<T>, keyPath?: string): boolean;\n \n }\n \n \n \n interface String {\n \n contains(string): boolean;\n \n readonly numericalValue: number;\n isAString: boolean;\n \n }\n \n \n \n interface Number {\n \n isANumber: boolean;\n \n readonly integerValue: number;\n \n }\n \n \n \n interface Date {\n \n readonly dateString: string;\n \n }\n \n \n interface Object {\n \n forEach(callbackFunction: (value: any, key: string) => void): void;\n \n readonly allValues: Array<any>;\n \n readonly allKeys: string[];\n \n }\n \n \n}\n\nexport {}\n\nconst YES = true\nconst NO = false\n\nif (\"removeElementAtIndex\" in Array.prototype == NO) {\n \n (Array.prototype as any).removeElementAtIndex = function (this: Array<any>, index: number) {\n \n // @ts-ignore\n if (index >= 0 && index < this.length) {\n \n this.splice(index, 1)\n \n }\n \n }\n \n}\n\n\n// interface Array<T> {\n//\n// removeElementAtIndex(index: number);\n//\n// }\n\n\nif (\"removeElement\" in Array.prototype == NO) {\n \n (Array.prototype as any).removeElement = function (this: Array<any>, element) {\n \n this.removeElementAtIndex(this.indexOf(element))\n \n }\n \n}\n\n\n// interface Array<T> {\n//\n// removeElement(element: T);\n//\n// }\n\n\nif (\"insertElementAtIndex\" in Array.prototype == NO) {\n \n (Array.prototype as any).insertElementAtIndex = function (this: Array<any>, index: number, element: any) {\n \n if (index >= 0 && index <= this.length) {\n \n this.splice(index, 0, element)\n \n }\n \n }\n \n}\n\n\n// interface Array<T> {\n//\n// insertElementAtIndex(index: number, element: T);\n//\n// }\n\n\nif (\"replaceElementAtIndex\" in Array.prototype == NO) {\n \n (Array.prototype as any).replaceElementAtIndex = function (this: Array<any>, index: number, element: any) {\n \n this.removeElementAtIndex(index)\n this.insertElementAtIndex(index, element)\n \n }\n \n}\n\n\n// interface Array<T> {\n//\n// replaceElementAtIndex(index: number, element: T);\n//\n// }\n\n\nif (\"contains\" in Array.prototype == NO) {\n \n (Array.prototype as any).contains = function (this: Array<any>, element) {\n \n const result = (this.indexOf(element) != -1)\n return result\n \n }\n \n}\n\nif (\"containsAny\" in Array.prototype == NO) {\n \n (Array.prototype as any).containsAny = function (this: Array<any>, elements: any[]) {\n \n const result = this.anyMatch(function (element, index, array) {\n return elements.contains(element)\n })\n \n return result\n \n }\n \n}\n\n\n// interface Array<T> {\n//\n// contains(element: T): boolean;\n//\n// containsAny(element: T[]): boolean;\n//\n// }\n\n\nif (\"anyMatch\" in Array.prototype == NO) {\n \n (Array.prototype as any).anyMatch = function (\n this: Array<any>,\n functionToCall: (value: any, index: number, array: any[]) => boolean\n ) {\n \n // @ts-ignore\n const result = (this.findIndex(functionToCall) > -1)\n \n return result\n \n }\n \n}\n\nif (\"noneMatch\" in Array.prototype == NO) {\n \n (Array.prototype as any).noneMatch = function (\n this: Array<any>,\n functionToCall: (value: any, index: number, array: any[]) => boolean\n ) {\n \n // @ts-ignore\n const result = (this.findIndex(functionToCall) == -1)\n \n return result\n \n }\n \n}\n\nif (\"allMatch\" in Array.prototype == NO) {\n \n (Array.prototype as any).allMatch = function (\n this: Array<any>,\n functionToCall: (value: any, index: number, array: any[]) => boolean\n ) {\n \n function reversedFunction(value: any, index: number, array: any[]) {\n return !functionToCall(value, index, array)\n }\n \n // @ts-ignore\n const result = (this.findIndex(reversedFunction) == -1)\n \n return result\n \n }\n \n}\n\nif (\"findAsyncSequential\" in Array.prototype == NO) {\n \n (Array.prototype as any).findAsyncSequential = function (\n this: Array<any>,\n functionToCall: (value: any) => Promise<boolean>\n ) {\n \n // https://stackoverflow.com/questions/55601062/using-an-async-function-in-array-find\n async function findAsyncSequential<T>(\n array: T[],\n predicate: (t: T) => Promise<boolean>\n ): Promise<T | undefined> {\n for (const t of array) {\n if (await predicate(t)) {\n return t\n }\n }\n return undefined\n }\n \n const result = findAsyncSequential(this, functionToCall)\n \n return result\n \n }\n \n}\n\n\n\n// interface Array<T> {\n//\n// anyMatch(predicate: (value: T, index: number, obj: T[]) => boolean): boolean\n//\n// noneMatch(predicate: (value: T, index: number, obj: T[]) => boolean): boolean\n//\n// allMatch(predicate: (value: T, index: number, obj: T[]) => boolean): boolean\n//\n// }\n\n\nif (\"groupedBy\" in Array.prototype == NO) {\n \n Array.prototype.groupedBy = function (this: Array<any>, funcProp) {\n return this.reduce(function (acc, val) {\n (acc[funcProp(val)] = acc[funcProp(val)] || []).push(val)\n return acc\n }, {})\n }\n \n}\n\n\n// interface Array<T> {\n//\n// groupedBy(keyFunction: (item: T) => any): { [key: string]: Array<T> };\n//\n// }\n\n\nif (\"firstElement\" in Array.prototype == NO) {\n Object.defineProperty(Array.prototype, \"firstElement\", {\n get: function firstElement(this: Array<any>) {\n const result = this[0]\n return result\n },\n set: function (this: Array<any>, element: any) {\n if (this.length == 0) {\n this.push(element)\n return\n }\n this[0] = element\n }\n })\n}\n\nif (\"lastElement\" in Array.prototype == NO) {\n Object.defineProperty(Array.prototype, \"lastElement\", {\n get: function lastElement(this: Array<any>) {\n const result = this[this.length - 1]\n return result\n },\n set: function (this: Array<any>, element: any) {\n if (this.length == 0) {\n this.push(element)\n return\n }\n this[this.length - 1] = element\n }\n })\n}\n\nif (\"everyElement\" in Array.prototype == NO) {\n \n Object.defineProperty(Array.prototype, \"everyElement\", {\n \n get: function everyElement(this: Array<any>) {\n \n var valueKeys = []\n \n const targetFunction = (objects) => {\n \n return this.map((element, index, array) => {\n \n var elementFunction = (UIObject.valueForKeyPath(valueKeys.join(\".\"), element) as Function).bind(\n element,\n objects\n )\n \n return elementFunction()\n \n })\n \n }\n \n const result = new Proxy(\n targetFunction,\n {\n \n get: (target, key, receiver) => {\n \n if (key == \"UI_elementValues\") {\n \n return this.map((element, index, array) => UIObject.valueForKeyPath(\n valueKeys.join(\".\"),\n element\n ))\n \n }\n \n valueKeys.push(key)\n \n return result\n \n },\n set: (target, key, value, receiver) => {\n \n valueKeys.push(key)\n \n this.forEach((element, index, array) => {\n \n UIObject.setValueForKeyPath(valueKeys.join(\".\"), value, element, YES)\n \n })\n \n return true\n \n }\n \n }\n )\n \n return result\n \n },\n set: function (this: Array<any>, element: any) {\n \n for (var i = 0; i < this.length; ++i) {\n \n this[i] = element\n \n }\n \n }\n \n })\n \n}\n\n\nexport type UIEveryElementItem<T> = {\n \n [P in keyof T]: UIEveryElementItem<T[P]>\n \n} & {\n \n UI_elementValues?: T[];\n \n} & T\n\n// interface Array<T> {\n//\n// firstElement: T;\n// lastElement: T;\n//\n// everyElement: UIEveryElementItem<T>;\n//\n// }\n\n\nif (\"copy\" in Array.prototype == NO) {\n \n (Array.prototype as any).copy = function (this: Array<any>) {\n \n const result = this.slice(0)\n return result\n \n }\n \n}\n\n\n// interface Array<T> {\n//\n// copy(): Array<T>;\n//\n// }\n\n\nif (\"arrayByRepeating\" in Array.prototype == NO) {\n \n (Array.prototype as any).arrayByRepeating = function (this: Array<any>, numberOfRepetitions: number) {\n const result = []\n for (var i = 0; i < numberOfRepetitions; i++) {\n this.forEach(function (element, index, array) {\n result.push(element)\n })\n }\n return result\n }\n \n}\n\n\n// interface Array<T> {\n//\n// arrayByRepeating(numberOfRepetitions: number): Array<T>;\n//\n// }\n\n\nif (\"arrayByTrimmingToLengthIfLonger\" in Array.prototype == NO) {\n (Array.prototype as any).arrayByTrimmingToLengthIfLonger = function (this: Array<any>, maxLength: number) {\n const result = []\n for (var i = 0; i < maxLength && i < this.length; i++) {\n result.push(this[i])\n }\n return result\n }\n}\n\n\n// interface Array<T> {\n//\n// arrayByTrimmingToLengthIfLonger(maxLength: number): Array<T>;\n//\n// }\n\n\nif (\"summedValue\" in Array.prototype == NO) {\n \n Object.defineProperty(Array.prototype, \"summedValue\", {\n get: function summedValue(this: Array<any>) {\n const result = this.reduce(function (a, b) {\n return a + b\n }, 0)\n return result\n }\n })\n \n}\n\n\n// interface Array<T> {\n//\n// readonly summedValue: T;\n//\n// max(): number;\n// min(): number;\n//\n//\n// }\n\nArray.prototype.max = function () {\n return Math.max.apply(null, this)\n}\n\nArray.prototype.min = function () {\n return Math.min.apply(null, this)\n}\n\n\n// interface Array<T> {\n//\n// isEqualToArray(array: Array<T>, keyPath?: string): boolean;\n//\n// }\n\n// Warn if overriding existing method\nif (\"isEqualToArray\" in Array.prototype == YES) {\n console.warn(\n \"Overriding existing Array.prototype.isEqualToArray. Possible causes: New API defines the method, there's a framework conflict or you've got double inclusions in your code.\")\n}\n// attach the .equals method to Array's prototype to call it on any array\nArray.prototype.isEqualToArray = function (array: any[], keyPath?: string) {\n \n // if the other array is a falsy value, return\n if (!array) {\n return false\n }\n \n // compare lengths - can save a lot of time \n if (this.length != array.length) {\n return false\n }\n \n var i = 0\n const l = this.length\n for (; i < l; i++) {\n \n // Check if we have nested arrays\n if (this[i] instanceof Array && array[i] instanceof Array && !keyPath) {\n \n // recurse into the nested arrays\n if (!this[i].isEqualToArray(array[i])) {\n return false\n }\n \n }\n else if (keyPath && UIObject.valueForKeyPath(keyPath, this[i]) != UIObject.valueForKeyPath(keyPath, array[i])) {\n \n return false\n \n }\n else if (this[i] != array[i]) {\n \n // Warning - two different object instances will never be equal: {x:20} != {x:20}\n return false\n \n }\n \n }\n \n return true\n \n}\n\n// Hide method from for-in loops\nObject.defineProperty(Array.prototype, \"isEqualToArray\", { enumerable: false })\n\n\n\n\n\nif (\"forEach\" in Object.prototype == NO) {\n \n (Object.prototype as any).forEach = function (this: Object, callbackFunction: (value: any, key: string) => void) {\n const keys = Object.keys(this)\n keys.forEach(function (key, index, array) {\n callbackFunction(this[key], key)\n }.bind(this))\n }\n \n // Hide method from for-in loops\n Object.defineProperty(Object.prototype, \"forEach\", { enumerable: false })\n \n}\n\n\n// interface Object {\n//\n// forEach(callbackFunction: (value: any, key: string) => void): void;\n//\n// }\n\n\nif (\"allValues\" in Object.prototype == NO) {\n Object.defineProperty(Object.prototype, \"allValues\", {\n get: function (this: Object) {\n const values = []\n this.forEach(function (value: any) {\n values.push(value)\n })\n return values\n }\n })\n}\n\n\n// interface Object {\n//\n// readonly allValues: Array<any>;\n//\n// }\n\n\nif (\"allKeys\" in Object.prototype == NO) {\n Object.defineProperty(Object.prototype, \"allKeys\", {\n get: function (this: Object) {\n const values = Object.keys(this)\n return values\n }\n })\n}\n\n\n// interface Object {\n//\n// readonly allKeys: string[];\n//\n// }\n\n\nif (\"objectByCopyingValuesRecursivelyFromObject\" in Object.prototype == NO) {\n \n (Object.prototype as any).objectByCopyingValuesRecursivelyFromObject = function (this: Object, object: any) {\n \n \n function isAnObject(item: any) {\n return (item && typeof item === \"object\" && !Array.isArray(item))\n }\n \n function mergeRecursively(target: any, source: any) {\n \n const output = Object.assign({}, target)\n \n if (isAnObject(target) && isAnObject(source)) {\n \n Object.keys(source).forEach(function (key) {\n \n if (isAnObject(source[key])) {\n \n // if (!(key in target)) {\n \n // Object.assign(output, { [key]: source[key] });\n \n // }\n // else {\n \n output[key] = mergeRecursively(target[key], source[key])\n \n //}\n \n }\n else {\n \n Object.assign(output, { [key]: source[key] })\n \n }\n \n })\n \n }\n \n return output\n \n }\n \n const result = mergeRecursively(this, object)\n \n return result\n \n }\n \n // Hide method from for-in loops\n Object.defineProperty(Object.prototype, \"objectByCopyingValuesRecursivelyFromObject\", { enumerable: false })\n \n}\n\n\nif (\"asValueObject\" in Object.prototype == NO) {\n \n (Object.prototype as any).asValueObject = function () {\n \n const result = new UICoreExtensionValueObject(this)\n \n return result\n \n }\n \n // Hide method from for-in loops\n Object.defineProperty(Object.prototype, \"asValueObject\", { enumerable: false })\n \n}\n\n\n// interface Object {\n//\n// objectByCopyingValuesRecursivelyFromObject<T>(object: T): this & T;\n//\n// asValueObject(): this;\n//\n// }\n\nexport type Unpacked<T> =\n T extends (infer U)[]\n ? U\n : T extends (...args: any[]) => infer U\n ? U\n : T extends Promise<infer U>\n ? U\n : T\n\nexport type UnpackedObject<T> = {\n [P in keyof T]: Unpacked<T[P]>\n}\n\nexport function promisedProperties<ObjectType extends object>(object: ObjectType): UnpackedObject<ObjectType> {\n \n let promisedProperties = []\n const objectKeys = Object.keys(object)\n \n objectKeys.forEach((key) => promisedProperties.push(object[key]))\n \n // @ts-ignore\n return Promise.all(promisedProperties)\n .then((resolvedValues) => {\n return resolvedValues.reduce((resolvedObject, property, index) => {\n resolvedObject[objectKeys[index]] = property\n return resolvedObject\n }, object)\n })\n \n}\n\n// if (\"promisedProperties\" in Object.prototype == NO) {\n//\n// (Object.prototype as any).promisedProperties = function () {\n//\n// const result = promisedProperties(this);\n//\n// return result\n//\n// }\n//\n// // Hide method from for-in loops\n// Object.defineProperty(Object.prototype, \"promisedProperties\", { enumerable: false });\n//\n// }\n//\n//\n// interface Object {\n//\n// readonly promisedProperties: UnpackedObject<this>;\n//\n// }\n\n\nif (\"contains\" in String.prototype == NO) {\n \n (String.prototype as any).contains = function (this: String, string) {\n \n const result = (this.indexOf(string) != -1)\n return result\n \n }\n \n // Hide method from for-in loops\n Object.defineProperty(Object.prototype, \"contains\", { enumerable: false })\n \n}\n\n\n// interface String {\n//\n// contains(string): boolean;\n//\n// }\n\n\nif (\"capitalizedString\" in String.prototype == NO) {\n Object.defineProperty(Object.prototype, \"capitalizedString\", {\n get: function (this: String) {\n const result = this.charAt(0).toUpperCase() + this.slice(1).toLowerCase()\n return result\n }\n })\n}\n\n\n// interface String {\n//\n// readonly capitalizedString: string;\n//\n// }\n\n\nif (\"numericalValue\" in String.prototype == NO) {\n Object.defineProperty(String.prototype, \"numericalValue\", {\n get: function numericalValue(this: string) {\n const result = Number(this)\n return result\n }\n })\n}\n\n\n// interface String {\n//\n// readonly numericalValue: number;\n//\n// }\n\n\nif (\"isAString\" in String.prototype == NO) {\n \n (String.prototype as any).isAString = YES\n \n}\n\n\n// interface String {\n//\n// isAString: boolean;\n//\n// }\n\n\nif (\"isANumber\" in Number.prototype == NO) {\n \n (Number.prototype as any).isANumber = YES\n \n}\n\n\n// interface Number {\n//\n// isANumber: boolean;\n//\n// }\n\n\n\n\n\nif (\"integerValue\" in Number.prototype == NO) {\n Object.defineProperty(Number.prototype, \"integerValue\", {\n get: function (this: number) {\n const result = parseInt(\"\" + (Math.round(this) + 0.5))\n return result\n }\n })\n}\n\n\n// interface Number {\n//\n// readonly integerValue: number;\n//\n// }\n\n\n\nexport class PrimitiveNumber {\n \n // @ts-ignore\n static [Symbol.hasInstance](x) {\n return\n }\n \n}\n\n\nif (\"integerValue\" in Boolean.prototype == NO) {\n \n Object.defineProperty(Boolean.prototype, \"integerValue\", {\n get: function (this: boolean) {\n \n if (this == true) {\n \n return 1\n \n }\n \n return 0\n \n }\n })\n \n}\n\n\n// interface Boolean {\n//\n// readonly integerValue: number;\n//\n// }\n\n\nif (\"dateString\" in Date.prototype == NO) {\n \n Object.defineProperty(Date.prototype, \"dateString\", {\n get: function dateString(this: Date) {\n \n const result = (\"0\" + this.getDate()).slice(-2) + \"-\" + (\"0\" + (this.getMonth() + 1)).slice(-2) + \"-\" +\n this.getFullYear() + \" \" + (\"0\" + this.getHours()).slice(-2) + \":\" +\n (\"0\" + this.getMinutes()).slice(-2)\n \n return result\n \n }\n })\n \n \n \n}\n\n\n// interface Date {\n//\n// readonly dateString: string;\n//\n// }\n\n\n\n\n\n\n\n\n"],
5
5
  "mappings": "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",
6
6
  "names": ["promisedProperties"]
7
7
  }
@@ -1,6 +1,6 @@
1
1
  import { UICore } from "./UICore";
2
2
  import { UILanguageService } from "./UIInterfaces";
3
- export declare class UICoreValues {
3
+ export declare class UICore {
4
4
  static RootViewControllerClass: any;
5
5
  static main: UICore;
6
6
  static languageService: UILanguageService;
@@ -15,21 +15,21 @@ var __copyProps = (to, from, except, desc) => {
15
15
  return to;
16
16
  };
17
17
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
- var UICoreValues_exports = {};
19
- __export(UICoreValues_exports, {
20
- UICoreValues: () => UICoreValues
18
+ var UICore_exports = {};
19
+ __export(UICore_exports, {
20
+ UICore: () => UICore
21
21
  });
22
- module.exports = __toCommonJS(UICoreValues_exports);
22
+ module.exports = __toCommonJS(UICore_exports);
23
23
  var import_UIObject = require("./UIObject");
24
- class UICoreValues {
24
+ class UICore {
25
25
  }
26
- UICoreValues.languageService = import_UIObject.nil;
27
- UICoreValues.broadcastEventName = {
26
+ UICore.languageService = import_UIObject.nil;
27
+ UICore.broadcastEventName = {
28
28
  "RouteDidChange": "RouteDidChange",
29
29
  "WindowDidResize": "WindowDidResize"
30
30
  };
31
31
  // Annotate the CommonJS export names for ESM import in node:
32
32
  0 && (module.exports = {
33
- UICoreValues
33
+ UICore
34
34
  });
35
- //# sourceMappingURL=UICoreValues.js.map
35
+ //# sourceMappingURL=UICore.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../scripts/UICoreValues.ts"],
4
- "sourcesContent": ["import { UICore } from \"./UICore\"\nimport { UILanguageService } from \"./UIInterfaces\"\nimport { nil } from \"./UIObject\"\n\n\nexport class UICoreValues {\n \n static RootViewControllerClass: any\n static main: UICore\n \n static languageService: UILanguageService = nil\n \n static readonly broadcastEventName = {\n \n \"RouteDidChange\": \"RouteDidChange\",\n \"WindowDidResize\": \"WindowDidResize\"\n \n }\n \n \n}\n"],
3
+ "sources": ["../scripts/UICore.ts"],
4
+ "sourcesContent": ["import { UICore } from \"./UICore\"\nimport { UILanguageService } from \"./UIInterfaces\"\nimport { nil } from \"./UIObject\"\n\n\nexport class UICore {\n \n static RootViewControllerClass: any\n static main: UICore\n \n static languageService: UILanguageService = nil\n \n static readonly broadcastEventName = {\n \n \"RouteDidChange\": \"RouteDidChange\",\n \"WindowDidResize\": \"WindowDidResize\"\n \n }\n \n \n}\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,sBAAoB;AAGb,MAAM,aAAa;AAe1B;AAfa,aAKF,kBAAqC;AALnC,aAOO,qBAAqB;AAAA,EAEjC,kBAAkB;AAAA,EAClB,mBAAmB;AAEvB;",
6
6
  "names": []
7
7
  }
@@ -22,7 +22,7 @@ __export(UIDialogView_exports, {
22
22
  module.exports = __toCommonJS(UIDialogView_exports);
23
23
  var import_ClientCheckers = require("./ClientCheckers");
24
24
  var import_UIColor = require("./UIColor");
25
- var import_UICoreValues = require("./UICoreValues");
25
+ var import_UICore = require("./UICore");
26
26
  var import_UIObject = require("./UIObject");
27
27
  var import_UIView = require("./UIView");
28
28
  class UIDialogView extends import_UIView.UIView {
@@ -99,7 +99,7 @@ class UIDialogView extends import_UIView.UIView {
99
99
  this.isVisible = import_UIObject.YES;
100
100
  }
101
101
  showInRootView(animated) {
102
- this.showInView(import_UICoreValues.UICoreValues.main.rootViewController.view, animated);
102
+ this.showInView(import_UICore.UICore.main.rootViewController.view, animated);
103
103
  }
104
104
  dismiss(animated) {
105
105
  animated = animated && !import_ClientCheckers.IS_FIREFOX;
@@ -128,7 +128,7 @@ class UIDialogView extends import_UIView.UIView {
128
128
  }
129
129
  didReceiveBroadcastEvent(event) {
130
130
  super.didReceiveBroadcastEvent(event);
131
- if (event.name == import_UICoreValues.UICoreValues.broadcastEventName.WindowDidResize) {
131
+ if (event.name == import_UICore.UICore.broadcastEventName.WindowDidResize) {
132
132
  this.setNeedsLayout();
133
133
  }
134
134
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../scripts/UIDialogView.ts"],
4
- "sourcesContent": ["import { IS_FIREFOX } from \"./ClientCheckers\"\nimport { UIColor } from \"./UIColor\"\nimport { UICoreValues } from \"./UICoreValues\"\nimport { IS, nil, NO, YES } from \"./UIObject\"\nimport { UIView, UIViewBroadcastEvent } from \"./UIView\"\n\n\nexport class UIDialogView<ViewType extends UIView = UIView> extends UIView {\n \n _isAUIDialogView = YES\n \n _view: ViewType = nil\n \n _appearedAnimated: boolean\n \n animationDuration: number = 0.25\n \n _zIndex: number = 100\n \n isVisible: boolean = NO\n \n dismissesOnTapOutside = YES\n \n constructor(elementID?: string, viewHTMLElement?: HTMLElement) {\n \n \n super(elementID, viewHTMLElement)\n \n this.addTargetForControlEvent(\n UIView.controlEvent.PointerTap,\n function (this: UIDialogView, sender: UIView, event: Event) {\n \n this.didDetectTapOutside(sender, event)\n \n }.bind(this)\n )\n \n this.backgroundColor = UIColor.colorWithRGBA(0, 10, 25).colorWithAlpha(0.75) //CBColor.primaryContentColor.colorWithAlpha(0.75)\n \n this.zIndex = this._zIndex\n \n }\n \n \n \n didDetectTapOutside(sender: UIView, event: Event) {\n \n if (event.target == this.viewHTMLElement && this.dismissesOnTapOutside) {\n this.dismiss(this._appearedAnimated)\n }\n \n }\n \n \n set zIndex(zIndex: number) {\n \n this._zIndex = zIndex\n this.style.zIndex = \"\" + zIndex\n \n }\n \n get zIndex() {\n \n return this._zIndex\n \n }\n \n \n \n set view(view: ViewType) {\n \n this._view.removeFromSuperview()\n \n this._view = view\n \n this.addSubview(view)\n \n }\n \n \n get view() {\n \n return this._view\n \n }\n \n \n \n willAppear(animated: boolean = NO) {\n \n if (animated) {\n \n this.style.opacity = \"0\"\n \n }\n \n this.style.height = \"\"\n \n this._frame = null\n \n }\n \n \n animateAppearing() {\n \n this.style.opacity = \"1\"\n \n }\n \n animateDisappearing() {\n \n this.style.opacity = \"0\"\n \n }\n \n \n \n showInView(containerView: UIView, animated: boolean) {\n \n \n animated = (animated && !IS_FIREFOX)\n \n this._appearedAnimated = animated\n \n this.willAppear(animated)\n \n \n containerView.addSubview(this)\n \n if (animated) {\n \n this.layoutSubviews()\n \n UIView.animateViewOrViewsWithDurationDelayAndFunction(\n this,\n this.animationDuration,\n 0,\n undefined,\n function () {\n \n \n this.animateAppearing()\n \n \n }.bind(this),\n nil\n )\n \n \n }\n else {\n \n this.setNeedsLayout()\n \n }\n \n this.isVisible = YES\n \n }\n \n \n \n showInRootView(animated: boolean) {\n \n this.showInView(UICoreValues.main.rootViewController.view, animated)\n \n }\n \n \n \n dismiss(animated?: boolean) {\n \n \n animated = (animated && !IS_FIREFOX)\n \n if (animated == undefined) {\n \n animated = this._appearedAnimated\n \n }\n \n if (animated) {\n \n UIView.animateViewOrViewsWithDurationDelayAndFunction(\n this,\n this.animationDuration,\n 0,\n undefined,\n function () {\n \n this.animateDisappearing()\n \n }.bind(this),\n function () {\n \n if (this.isVisible == NO) {\n \n this.removeFromSuperview()\n \n }\n \n }.bind(this)\n )\n \n }\n else {\n \n this.removeFromSuperview()\n \n }\n \n this.isVisible = NO\n \n }\n \n \n \n \n \n didReceiveBroadcastEvent(event: UIViewBroadcastEvent) {\n \n super.didReceiveBroadcastEvent(event)\n \n if (event.name == UICoreValues.broadcastEventName.WindowDidResize) {\n \n this.setNeedsLayout()\n \n }\n \n }\n \n \n \n \n \n layoutSubviews() {\n \n \n if (!IS(this.view)) {\n \n return\n \n }\n \n //this.frame = this.superview.bounds;\n \n this.setPosition(0, 0, 0, 0, 0, \"100%\")\n this.setPosition(0, 0, 0, 0, UIView.pageHeight, \"100%\")\n \n const bounds = this.bounds\n \n const margin = 20\n \n //this.view.centerInContainer();\n \n this.view.style.position = \"relative\"\n \n // this.view.style.maxHeight = \"\" + (bounds.height - margin * 2).integerValue + \"px\";\n // this.view.style.maxWidth = \"\" + (bounds.width - margin * 2).integerValue + \"px\";\n \n \n \n \n // var viewIntrinsicRectangle = this.view.intrinsicContentSize();\n // this.view.frame = new UIRectangle((bounds.width - viewIntrinsicRectangle.width)*0.5, )\n \n super.layoutSubviews()\n \n }\n \n \n \n \n \n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { IS_FIREFOX } from \"./ClientCheckers\"\nimport { UIColor } from \"./UIColor\"\nimport { UICore } from \"./UICore\"\nimport { IS, nil, NO, YES } from \"./UIObject\"\nimport { UIView, UIViewBroadcastEvent } from \"./UIView\"\n\n\nexport class UIDialogView<ViewType extends UIView = UIView> extends UIView {\n \n _isAUIDialogView = YES\n \n _view: ViewType = nil\n \n _appearedAnimated: boolean\n \n animationDuration: number = 0.25\n \n _zIndex: number = 100\n \n isVisible: boolean = NO\n \n dismissesOnTapOutside = YES\n \n constructor(elementID?: string, viewHTMLElement?: HTMLElement) {\n \n \n super(elementID, viewHTMLElement)\n \n this.addTargetForControlEvent(\n UIView.controlEvent.PointerTap,\n function (this: UIDialogView, sender: UIView, event: Event) {\n \n this.didDetectTapOutside(sender, event)\n \n }.bind(this)\n )\n \n this.backgroundColor = UIColor.colorWithRGBA(0, 10, 25).colorWithAlpha(0.75) //CBColor.primaryContentColor.colorWithAlpha(0.75)\n \n this.zIndex = this._zIndex\n \n }\n \n \n \n didDetectTapOutside(sender: UIView, event: Event) {\n \n if (event.target == this.viewHTMLElement && this.dismissesOnTapOutside) {\n this.dismiss(this._appearedAnimated)\n }\n \n }\n \n \n set zIndex(zIndex: number) {\n \n this._zIndex = zIndex\n this.style.zIndex = \"\" + zIndex\n \n }\n \n get zIndex() {\n \n return this._zIndex\n \n }\n \n \n \n set view(view: ViewType) {\n \n this._view.removeFromSuperview()\n \n this._view = view\n \n this.addSubview(view)\n \n }\n \n \n get view() {\n \n return this._view\n \n }\n \n \n \n willAppear(animated: boolean = NO) {\n \n if (animated) {\n \n this.style.opacity = \"0\"\n \n }\n \n this.style.height = \"\"\n \n this._frame = null\n \n }\n \n \n animateAppearing() {\n \n this.style.opacity = \"1\"\n \n }\n \n animateDisappearing() {\n \n this.style.opacity = \"0\"\n \n }\n \n \n \n showInView(containerView: UIView, animated: boolean) {\n \n \n animated = (animated && !IS_FIREFOX)\n \n this._appearedAnimated = animated\n \n this.willAppear(animated)\n \n \n containerView.addSubview(this)\n \n if (animated) {\n \n this.layoutSubviews()\n \n UIView.animateViewOrViewsWithDurationDelayAndFunction(\n this,\n this.animationDuration,\n 0,\n undefined,\n function () {\n \n \n this.animateAppearing()\n \n \n }.bind(this),\n nil\n )\n \n \n }\n else {\n \n this.setNeedsLayout()\n \n }\n \n this.isVisible = YES\n \n }\n \n \n \n showInRootView(animated: boolean) {\n \n this.showInView(UICore.main.rootViewController.view, animated)\n \n }\n \n \n \n dismiss(animated?: boolean) {\n \n \n animated = (animated && !IS_FIREFOX)\n \n if (animated == undefined) {\n \n animated = this._appearedAnimated\n \n }\n \n if (animated) {\n \n UIView.animateViewOrViewsWithDurationDelayAndFunction(\n this,\n this.animationDuration,\n 0,\n undefined,\n function () {\n \n this.animateDisappearing()\n \n }.bind(this),\n function () {\n \n if (this.isVisible == NO) {\n \n this.removeFromSuperview()\n \n }\n \n }.bind(this)\n )\n \n }\n else {\n \n this.removeFromSuperview()\n \n }\n \n this.isVisible = NO\n \n }\n \n \n \n \n \n didReceiveBroadcastEvent(event: UIViewBroadcastEvent) {\n \n super.didReceiveBroadcastEvent(event)\n \n if (event.name == UICore.broadcastEventName.WindowDidResize) {\n \n this.setNeedsLayout()\n \n }\n \n }\n \n \n \n \n \n layoutSubviews() {\n \n \n if (!IS(this.view)) {\n \n return\n \n }\n \n //this.frame = this.superview.bounds;\n \n this.setPosition(0, 0, 0, 0, 0, \"100%\")\n this.setPosition(0, 0, 0, 0, UIView.pageHeight, \"100%\")\n \n const bounds = this.bounds\n \n const margin = 20\n \n //this.view.centerInContainer();\n \n this.view.style.position = \"relative\"\n \n // this.view.style.maxHeight = \"\" + (bounds.height - margin * 2).integerValue + \"px\";\n // this.view.style.maxWidth = \"\" + (bounds.width - margin * 2).integerValue + \"px\";\n \n \n \n \n // var viewIntrinsicRectangle = this.view.intrinsicContentSize();\n // this.view.frame = new UIRectangle((bounds.width - viewIntrinsicRectangle.width)*0.5, )\n \n super.layoutSubviews()\n \n }\n \n \n \n \n \n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -20,7 +20,7 @@ __export(UIImageView_exports, {
20
20
  UIImageView: () => UIImageView
21
21
  });
22
22
  module.exports = __toCommonJS(UIImageView_exports);
23
- var import_UICoreValues = require("./UICoreValues");
23
+ var import_UICore = require("./UICore");
24
24
  var import_UIObject = require("./UIObject");
25
25
  var import_UIRectangle = require("./UIRectangle");
26
26
  var import_UIView = require("./UIView");
@@ -101,8 +101,8 @@ const _UIImageView = class extends import_UIView.UIView {
101
101
  }.bind(this);
102
102
  }
103
103
  setImageSource(key, defaultString) {
104
- const languageName = import_UICoreValues.UICoreValues.languageService.currentLanguageKey;
105
- this.imageSource = import_UICoreValues.UICoreValues.languageService.stringForKey(key, languageName, defaultString, import_UIObject.nil);
104
+ const languageName = import_UICore.UICore.languageService.currentLanguageKey;
105
+ this.imageSource = import_UICore.UICore.languageService.stringForKey(key, languageName, defaultString, import_UIObject.nil);
106
106
  }
107
107
  didReceiveBroadcastEvent(event) {
108
108
  super.didReceiveBroadcastEvent(event);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../scripts/UIImageView.ts"],
4
- "sourcesContent": ["import { UICoreValues } from \"./UICoreValues\"\nimport { IS_NOT, nil, NO, YES } from \"./UIObject\"\nimport { UIRectangle } from \"./UIRectangle\"\nimport { UIView, UIViewBroadcastEvent } from \"./UIView\"\n\n\n\n\n\nexport class UIImageView extends UIView {\n \n \n //actionIndicator: UIActionIndicator;\n _sourceKey: string\n _defaultSource: string\n \n _fillMode: any\n \n _hiddenWhenEmpty = NO\n \n \n constructor(elementID?, viewHTMLElement = null) {\n \n super(elementID, viewHTMLElement, \"img\")\n \n \n //this.actionIndicator = new UIActionIndicator(elementID + \"ActionIndicator\");\n \n \n }\n \n \n \n \n static fillMode = {\n \n \"stretchToFill\": \"fill\",\n \"aspectFit\": \"contain\",\n \"aspectFill\": \"cover\",\n \"center\": \"none\",\n \"aspectFitIfLarger\": \"scale-down\"\n \n }\n \n \n \n \n \n get viewHTMLElement() {\n \n return super.viewHTMLElement as HTMLImageElement\n \n }\n \n \n \n \n \n static objectURLFromDataURL(dataURL: string) {\n \n // if (IS_NOT(dataURL)) {\n \n // return nil;\n \n // }\n \n // @ts-ignore\n const blob = dataURLtoBlob(dataURL)\n \n const objectURL = URL.createObjectURL(blob)\n \n return objectURL\n \n }\n \n \n \n \n static dataURL(url, callback) {\n const xhr = new XMLHttpRequest()\n xhr.open(\"get\", url)\n xhr.responseType = \"blob\"\n xhr.onload = function () {\n const fr = new FileReader()\n \n fr.onload = function () {\n callback(this.result)\n }\n \n fr.readAsDataURL(xhr.response) // async call\n }\n \n xhr.send()\n }\n \n \n \n static dataURLWithMaxSize(URLString: string, maxSize: number, completion: (resultURLString: string) => void) {\n \n const imageView = new UIImageView()\n imageView.imageSource = URLString\n \n imageView.viewHTMLElement.onload = function () {\n \n const originalSize = imageView.intrinsicContentSize()\n \n \n var multiplier = maxSize / Math.max(originalSize.height, originalSize.width)\n \n multiplier = Math.min(1, multiplier)\n \n \n const result = imageView.getDataURL((originalSize.height * multiplier).integerValue, (originalSize.width *\n multiplier).integerValue)\n \n completion(result)\n \n }\n \n }\n \n \n static dataURLWithSizes(\n URLString: string,\n height: number,\n width: number,\n completion: (resultURLString: string) => void\n ) {\n \n const imageView = new UIImageView()\n imageView.imageSource = URLString\n \n imageView.viewHTMLElement.onload = function () {\n \n const result = imageView.getDataURL(height, width)\n completion(result)\n \n }\n \n }\n \n \n getDataURL(height?: number, width?: number) {\n \n const img = this.viewHTMLElement\n \n // Create an empty canvas element\n const canvas = document.createElement(\"canvas\")\n canvas.width = width\n canvas.height = height\n \n // Copy the image contents to the canvas\n const ctx = canvas.getContext(\"2d\")\n ctx.drawImage(img, 0, 0, width, height)\n \n // Get the data-URL formatted image\n // Firefox supports PNG and JPEG. You could check img.src to\n // guess the original format, but be aware the using \"image/jpg\"\n // will re-encode the image.\n const dataURL = canvas.toDataURL(\"image/png\")\n \n return dataURL\n \n //return dataURL.replace(/^data:image\\/(png|jpg);base64,/, \"\");\n \n }\n \n \n \n \n get imageSource() {\n \n return this.viewHTMLElement.src\n \n }\n \n set imageSource(sourceString: string) {\n \n if (IS_NOT(sourceString)) {\n sourceString = \"\"\n }\n \n this.viewHTMLElement.src = sourceString\n \n if (this.hiddenWhenEmpty) {\n this.hidden = IS_NOT(this.imageSource)\n }\n \n if (!sourceString || !sourceString.length) {\n \n //this.actionIndicator.stop();\n this.hidden = YES\n \n return\n \n }\n else {\n \n this.hidden = NO\n \n }\n \n // this.superview.addSubview(this.actionIndicator);\n // this.actionIndicator.frame = this.frame;\n // this.actionIndicator.start();\n // this.actionIndicator.backgroundColor = UIColor.redColor\n \n // @ts-ignore\n this.viewHTMLElement.onload = function (this: UIImageView, event: Event) {\n \n this.superview.setNeedsLayout()\n \n //this.actionIndicator.removeFromSuperview();\n \n }.bind(this)\n \n }\n \n \n \n setImageSource(key: string, defaultString: string) {\n \n const languageName = UICoreValues.languageService.currentLanguageKey\n this.imageSource = UICoreValues.languageService.stringForKey(key, languageName, defaultString, nil)\n \n }\n \n \n \n didReceiveBroadcastEvent(event: UIViewBroadcastEvent) {\n \n super.didReceiveBroadcastEvent(event)\n \n if (event.name == UIView.broadcastEventName.LanguageChanged || event.name ==\n UIView.broadcastEventName.AddedToViewTree) {\n \n this._setImageSourceFromKeyIfPossible()\n \n }\n \n }\n \n \n willMoveToSuperview(superview: UIView) {\n \n super.willMoveToSuperview(superview)\n \n this._setImageSourceFromKeyIfPossible()\n \n }\n \n _setImageSourceFromKeyIfPossible() {\n \n if (this._sourceKey && this._defaultSource) {\n \n this.setImageSource(this._sourceKey, this._defaultSource)\n \n }\n \n }\n \n \n \n get fillMode() {\n \n \n return this._fillMode\n \n }\n \n set fillMode(fillMode) {\n \n this._fillMode = fillMode;\n \n (this.style as any).objectFit = fillMode\n \n }\n \n \n get hiddenWhenEmpty() {\n return this._hiddenWhenEmpty\n }\n \n set hiddenWhenEmpty(hiddenWhenEmpty: boolean) {\n this._hiddenWhenEmpty = hiddenWhenEmpty\n if (hiddenWhenEmpty) {\n this.hidden = IS_NOT(this.imageSource)\n }\n }\n \n \n \n \n \n didMoveToSuperview(superview: UIView) {\n \n super.didMoveToSuperview(superview)\n \n \n \n \n \n }\n \n \n \n \n \n layoutSubviews() {\n \n super.layoutSubviews()\n \n \n \n }\n \n \n \n \n intrinsicContentSize() {\n \n \n const result = new UIRectangle(0, 0, this.viewHTMLElement.naturalHeight, this.viewHTMLElement.naturalWidth)\n \n return result\n \n \n }\n \n intrinsicContentSizeWithConstraints(constrainingHeight = 0, constrainingWidth = 0) {\n \n const heightRatio = constrainingHeight / this.viewHTMLElement.naturalHeight\n \n const widthRatio = constrainingWidth / this.viewHTMLElement.naturalWidth\n \n const multiplier = Math.max(heightRatio, widthRatio)\n \n const result = new UIRectangle(0, 0, this.viewHTMLElement.naturalHeight *\n multiplier, this.viewHTMLElement.naturalWidth * multiplier)\n \n return result\n \n \n }\n \n \n \n \n \n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { UICore } from \"./UICore\"\nimport { IS_NOT, nil, NO, YES } from \"./UIObject\"\nimport { UIRectangle } from \"./UIRectangle\"\nimport { UIView, UIViewBroadcastEvent } from \"./UIView\"\n\n\n\n\n\nexport class UIImageView extends UIView {\n \n \n //actionIndicator: UIActionIndicator;\n _sourceKey: string\n _defaultSource: string\n \n _fillMode: any\n \n _hiddenWhenEmpty = NO\n \n \n constructor(elementID?, viewHTMLElement = null) {\n \n super(elementID, viewHTMLElement, \"img\")\n \n \n //this.actionIndicator = new UIActionIndicator(elementID + \"ActionIndicator\");\n \n \n }\n \n \n \n \n static fillMode = {\n \n \"stretchToFill\": \"fill\",\n \"aspectFit\": \"contain\",\n \"aspectFill\": \"cover\",\n \"center\": \"none\",\n \"aspectFitIfLarger\": \"scale-down\"\n \n }\n \n \n \n \n \n get viewHTMLElement() {\n \n return super.viewHTMLElement as HTMLImageElement\n \n }\n \n \n \n \n \n static objectURLFromDataURL(dataURL: string) {\n \n // if (IS_NOT(dataURL)) {\n \n // return nil;\n \n // }\n \n // @ts-ignore\n const blob = dataURLtoBlob(dataURL)\n \n const objectURL = URL.createObjectURL(blob)\n \n return objectURL\n \n }\n \n \n \n \n static dataURL(url, callback) {\n const xhr = new XMLHttpRequest()\n xhr.open(\"get\", url)\n xhr.responseType = \"blob\"\n xhr.onload = function () {\n const fr = new FileReader()\n \n fr.onload = function () {\n callback(this.result)\n }\n \n fr.readAsDataURL(xhr.response) // async call\n }\n \n xhr.send()\n }\n \n \n \n static dataURLWithMaxSize(URLString: string, maxSize: number, completion: (resultURLString: string) => void) {\n \n const imageView = new UIImageView()\n imageView.imageSource = URLString\n \n imageView.viewHTMLElement.onload = function () {\n \n const originalSize = imageView.intrinsicContentSize()\n \n \n var multiplier = maxSize / Math.max(originalSize.height, originalSize.width)\n \n multiplier = Math.min(1, multiplier)\n \n \n const result = imageView.getDataURL((originalSize.height * multiplier).integerValue, (originalSize.width *\n multiplier).integerValue)\n \n completion(result)\n \n }\n \n }\n \n \n static dataURLWithSizes(\n URLString: string,\n height: number,\n width: number,\n completion: (resultURLString: string) => void\n ) {\n \n const imageView = new UIImageView()\n imageView.imageSource = URLString\n \n imageView.viewHTMLElement.onload = function () {\n \n const result = imageView.getDataURL(height, width)\n completion(result)\n \n }\n \n }\n \n \n getDataURL(height?: number, width?: number) {\n \n const img = this.viewHTMLElement\n \n // Create an empty canvas element\n const canvas = document.createElement(\"canvas\")\n canvas.width = width\n canvas.height = height\n \n // Copy the image contents to the canvas\n const ctx = canvas.getContext(\"2d\")\n ctx.drawImage(img, 0, 0, width, height)\n \n // Get the data-URL formatted image\n // Firefox supports PNG and JPEG. You could check img.src to\n // guess the original format, but be aware the using \"image/jpg\"\n // will re-encode the image.\n const dataURL = canvas.toDataURL(\"image/png\")\n \n return dataURL\n \n //return dataURL.replace(/^data:image\\/(png|jpg);base64,/, \"\");\n \n }\n \n \n \n \n get imageSource() {\n \n return this.viewHTMLElement.src\n \n }\n \n set imageSource(sourceString: string) {\n \n if (IS_NOT(sourceString)) {\n sourceString = \"\"\n }\n \n this.viewHTMLElement.src = sourceString\n \n if (this.hiddenWhenEmpty) {\n this.hidden = IS_NOT(this.imageSource)\n }\n \n if (!sourceString || !sourceString.length) {\n \n //this.actionIndicator.stop();\n this.hidden = YES\n \n return\n \n }\n else {\n \n this.hidden = NO\n \n }\n \n // this.superview.addSubview(this.actionIndicator);\n // this.actionIndicator.frame = this.frame;\n // this.actionIndicator.start();\n // this.actionIndicator.backgroundColor = UIColor.redColor\n \n // @ts-ignore\n this.viewHTMLElement.onload = function (this: UIImageView, event: Event) {\n \n this.superview.setNeedsLayout()\n \n //this.actionIndicator.removeFromSuperview();\n \n }.bind(this)\n \n }\n \n \n \n setImageSource(key: string, defaultString: string) {\n \n const languageName = UICore.languageService.currentLanguageKey\n this.imageSource = UICore.languageService.stringForKey(key, languageName, defaultString, nil)\n \n }\n \n \n \n didReceiveBroadcastEvent(event: UIViewBroadcastEvent) {\n \n super.didReceiveBroadcastEvent(event)\n \n if (event.name == UIView.broadcastEventName.LanguageChanged || event.name ==\n UIView.broadcastEventName.AddedToViewTree) {\n \n this._setImageSourceFromKeyIfPossible()\n \n }\n \n }\n \n \n willMoveToSuperview(superview: UIView) {\n \n super.willMoveToSuperview(superview)\n \n this._setImageSourceFromKeyIfPossible()\n \n }\n \n _setImageSourceFromKeyIfPossible() {\n \n if (this._sourceKey && this._defaultSource) {\n \n this.setImageSource(this._sourceKey, this._defaultSource)\n \n }\n \n }\n \n \n \n get fillMode() {\n \n \n return this._fillMode\n \n }\n \n set fillMode(fillMode) {\n \n this._fillMode = fillMode;\n \n (this.style as any).objectFit = fillMode\n \n }\n \n \n get hiddenWhenEmpty() {\n return this._hiddenWhenEmpty\n }\n \n set hiddenWhenEmpty(hiddenWhenEmpty: boolean) {\n this._hiddenWhenEmpty = hiddenWhenEmpty\n if (hiddenWhenEmpty) {\n this.hidden = IS_NOT(this.imageSource)\n }\n }\n \n \n \n \n \n didMoveToSuperview(superview: UIView) {\n \n super.didMoveToSuperview(superview)\n \n \n \n \n \n }\n \n \n \n \n \n layoutSubviews() {\n \n super.layoutSubviews()\n \n \n \n }\n \n \n \n \n intrinsicContentSize() {\n \n \n const result = new UIRectangle(0, 0, this.viewHTMLElement.naturalHeight, this.viewHTMLElement.naturalWidth)\n \n return result\n \n \n }\n \n intrinsicContentSizeWithConstraints(constrainingHeight = 0, constrainingWidth = 0) {\n \n const heightRatio = constrainingHeight / this.viewHTMLElement.naturalHeight\n \n const widthRatio = constrainingWidth / this.viewHTMLElement.naturalWidth\n \n const multiplier = Math.max(heightRatio, widthRatio)\n \n const result = new UIRectangle(0, 0, this.viewHTMLElement.naturalHeight *\n multiplier, this.viewHTMLElement.naturalWidth * multiplier)\n \n return result\n \n \n }\n \n \n \n \n \n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../scripts/UIInterfaces.ts"],
4
- "sourcesContent": ["\nexport interface UILanguageService {\n \n updateCurrentLanguageKey();\n \n currentLanguageKey: string;\n \n stringForKey(\n key: string,\n languageName: string,\n defaultString: string,\n parameters: { [x: string]: string | UILocalizedTextObject; }\n ): string | undefined;\n \n stringForCurrentLanguage(localizedTextObject: UILocalizedTextObject);\n \n \n \n}\n\n\nexport interface UILocalizedTextObject {\n \n [key: string]: string;\n \n}\n"],
4
+ "sourcesContent": ["export interface UILanguageService {\n \n updateCurrentLanguageKey();\n \n currentLanguageKey: string;\n \n stringForKey(\n key: string,\n languageName: string,\n defaultString: string,\n parameters: { [x: string]: string | UILocalizedTextObject; }\n ): string | undefined;\n \n stringForCurrentLanguage(localizedTextObject: UILocalizedTextObject);\n \n \n \n}\n\n\nexport interface UILocalizedTextObject {\n \n [key: string]: string;\n \n}\n"],
5
5
  "mappings": ";;;;;;;;;;;;;AAAA;AAAA;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../scripts/UIKeyValueStringFilter.ts"],
4
- "sourcesContent": ["import { IS, IS_NOT, NO, UIObject, YES } from \"./UIObject\"\n// @ts-ignore\nimport UIKeyValueStringFilterWebWorker from \"./UIKeyValueStringFilterWebWorker.worker.js\"\n\n\n\n\n\nexport class UIKeyValueStringFilter extends UIObject {\n \n \n static _sharedWebWorkerHolder = { webWorker: new UIKeyValueStringFilterWebWorker() }\n \n static _instanceNumber = -1\n \n \n _instanceNumber: number\n \n _isThreadClosed = NO\n \n private _webWorkerHolder = UIKeyValueStringFilter._sharedWebWorkerHolder\n \n constructor(useSeparateWebWorkerHolder = NO) {\n \n \n super()\n \n if (useSeparateWebWorkerHolder) {\n \n this._webWorkerHolder = { webWorker: new UIKeyValueStringFilterWebWorker() }\n \n }\n \n UIKeyValueStringFilter._instanceNumber = UIKeyValueStringFilter._instanceNumber + 1\n this._instanceNumber = UIKeyValueStringFilter._instanceNumber\n \n if (IS_NOT(this._webWorkerHolder.webWorker.onmessage)) {\n \n this._webWorkerHolder.webWorker.onmessage = message => {\n \n this.isWorkerBusy = NO\n this.postNextMessageIfNeeded()\n \n const key = \"\" + message.data.identifier + message.data.instanceIdentifier\n \n const completionFunction = this.completionFunctions[key]\n \n if (IS(completionFunction)) {\n \n //console.log(\"Filtering took \" + (Date.now() - startTime) + \" ms\");\n \n completionFunction(message.data.filteredData, message.data.filteredIndexes, message.data.identifier)\n \n }\n \n delete this.completionFunctions[key]\n \n var asd = 1\n \n }\n \n }\n \n \n \n \n \n }\n \n \n \n \n \n get instanceIdentifier() {\n \n return this._instanceNumber\n \n }\n \n \n get completionFunctions() {\n \n const key = \"UICore_completionFunctions\"\n var result: {\n \n [x: string]: (filteredData: string[], filteredIndexes: number[], identifier: any) => void;\n \n } = this._webWorkerHolder[key]\n \n if (IS_NOT(result)) {\n \n result = {}\n this._webWorkerHolder[key] = result\n \n }\n \n return result\n \n }\n \n get messagesToPost() {\n \n const key = \"UICore_messagesToPost\"\n var result: any[] = this._webWorkerHolder[key]\n \n if (IS_NOT(result)) {\n \n result = []\n this._webWorkerHolder[key] = result\n \n }\n \n return result\n \n }\n \n \n set isWorkerBusy(isWorkerBusy: boolean) {\n \n this._webWorkerHolder[\"UICore_isWorking\"] = isWorkerBusy\n \n }\n \n get isWorkerBusy() {\n \n return IS(this._webWorkerHolder[\"UICore_isWorking\"])\n \n }\n \n \n postNextMessageIfNeeded() {\n \n if (this.messagesToPost.length && IS_NOT(this.isWorkerBusy)) {\n \n this._webWorkerHolder.webWorker.postMessage(this.messagesToPost.firstElement)\n this.messagesToPost.removeElementAtIndex(0)\n \n this.isWorkerBusy = YES\n \n }\n \n }\n \n \n \n \n filterData(\n filteringString: string,\n data: any[],\n excludedData: string[],\n dataKeyPath: string,\n identifier: any,\n completion: (filteredData: string[], filteredIndexes: number[], identifier: any) => void\n ) {\n \n \n if (this._isThreadClosed) {\n \n return\n \n }\n \n \n \n const instanceIdentifier = this.instanceIdentifier\n \n const key = \"\" + identifier + instanceIdentifier\n \n this.completionFunctions[key] = completion\n \n \n try {\n \n this.messagesToPost.push({\n \n \"filteringString\": filteringString,\n \"data\": data,\n \"excludedData\": excludedData,\n \"dataKeyPath\": dataKeyPath,\n \"identifier\": identifier,\n \"instanceIdentifier\": instanceIdentifier\n \n })\n \n this.postNextMessageIfNeeded()\n \n } catch (exception) {\n \n completion([], [], identifier)\n \n }\n \n \n \n \n \n }\n \n \n \n \n \n closeThread() {\n \n this._isThreadClosed = YES\n \n if (this._webWorkerHolder != UIKeyValueStringFilter._sharedWebWorkerHolder) {\n \n this._webWorkerHolder.webWorker.terminate()\n \n }\n \n \n \n }\n \n \n \n \n \n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"],
4
+ "sourcesContent": ["import { IS, IS_NOT, NO, UIObject, YES } from \"./UIObject\"\n// @ts-ignore\nimport UIKeyValueStringFilterWebWorker from \"./UIKeyValueStringFilterWebWorker.worker.js\"\n\n\n\n\n\nexport class UIKeyValueStringFilter extends UIObject {\n \n \n static _sharedWebWorkerHolder = { webWorker: new UIKeyValueStringFilterWebWorker() }\n \n static _instanceNumber = -1\n \n \n _instanceNumber: number\n \n _isThreadClosed = NO\n \n private _webWorkerHolder = UIKeyValueStringFilter._sharedWebWorkerHolder\n \n constructor(useSeparateWebWorkerHolder = NO) {\n \n \n super()\n \n if (useSeparateWebWorkerHolder) {\n \n this._webWorkerHolder = { webWorker: new UIKeyValueStringFilterWebWorker() }\n \n }\n \n UIKeyValueStringFilter._instanceNumber = UIKeyValueStringFilter._instanceNumber + 1\n this._instanceNumber = UIKeyValueStringFilter._instanceNumber\n \n if (IS_NOT(this._webWorkerHolder.webWorker.onmessage)) {\n \n this._webWorkerHolder.webWorker.onmessage = message => {\n \n this.isWorkerBusy = NO\n this.postNextMessageIfNeeded()\n \n const key = \"\" + message.data.identifier + message.data.instanceIdentifier\n \n const completionFunction = this.completionFunctions[key]\n \n if (IS(completionFunction)) {\n \n //console.log(\"Filtering took \" + (Date.now() - startTime) + \" ms\");\n \n completionFunction(message.data.filteredData, message.data.filteredIndexes, message.data.identifier)\n \n }\n \n delete this.completionFunctions[key]\n \n var asd = 1\n \n }\n \n }\n \n \n \n \n \n }\n \n \n \n \n \n get instanceIdentifier() {\n \n return this._instanceNumber\n \n }\n \n \n get completionFunctions() {\n \n const key = \"UICore_completionFunctions\"\n var result: {\n \n [x: string]: (filteredData: string[], filteredIndexes: number[], identifier: any) => void;\n \n } = this._webWorkerHolder[key]\n \n if (IS_NOT(result)) {\n \n result = {}\n this._webWorkerHolder[key] = result\n \n }\n \n return result\n \n }\n \n get messagesToPost() {\n \n const key = \"UICore_messagesToPost\"\n var result: any[] = this._webWorkerHolder[key]\n \n if (IS_NOT(result)) {\n \n result = []\n this._webWorkerHolder[key] = result\n \n }\n \n return result\n \n }\n \n \n set isWorkerBusy(isWorkerBusy: boolean) {\n \n this._webWorkerHolder[\"UICore_isWorking\"] = isWorkerBusy\n \n }\n \n get isWorkerBusy() {\n \n return IS(this._webWorkerHolder[\"UICore_isWorking\"])\n \n }\n \n \n postNextMessageIfNeeded() {\n \n if (this.messagesToPost.length && IS_NOT(this.isWorkerBusy)) {\n \n this._webWorkerHolder.webWorker.postMessage(this.messagesToPost.firstElement)\n this.messagesToPost.removeElementAtIndex(0)\n \n this.isWorkerBusy = YES\n \n }\n \n }\n \n \n \n \n filterData(\n filteringString: string,\n data: any[],\n excludedData: string[],\n dataKeyPath: string,\n identifier: any,\n completion: (filteredData: string[], filteredIndexes: number[], identifier: any) => void\n ) {\n \n \n if (this._isThreadClosed) {\n \n return\n \n }\n \n \n \n const instanceIdentifier = this.instanceIdentifier\n \n const key = \"\" + identifier + instanceIdentifier\n \n this.completionFunctions[key] = completion\n \n \n try {\n \n this.messagesToPost.push({\n \n \"filteringString\": filteringString,\n \"data\": data,\n \"excludedData\": excludedData,\n \"dataKeyPath\": dataKeyPath,\n \"identifier\": identifier,\n \"instanceIdentifier\": instanceIdentifier\n \n })\n \n this.postNextMessageIfNeeded()\n \n } catch (exception) {\n \n completion([], [], identifier)\n \n }\n \n \n \n \n \n }\n \n \n \n \n \n closeThread() {\n \n this._isThreadClosed = YES\n \n if (this._webWorkerHolder != UIKeyValueStringFilter._sharedWebWorkerHolder) {\n \n this._webWorkerHolder.webWorker.terminate()\n \n }\n \n \n \n }\n \n \n \n \n \n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAA8C;AAE9C,oDAA4C;AAMrC,MAAM,0BAAN,cAAqC,yBAAS;AAAA,EAcjD,YAAY,6BAA6B,oBAAI;AAGzC,UAAM;AAPV,2BAAkB;AAElB,SAAQ,mBAAmB,wBAAuB;AAO9C,QAAI,4BAA4B;AAE5B,WAAK,mBAAmB,EAAE,WAAW,IAAI,8CAAAA,QAAgC,EAAE;AAAA,IAE/E;AAEA,4BAAuB,kBAAkB,wBAAuB,kBAAkB;AAClF,SAAK,kBAAkB,wBAAuB;AAE9C,YAAI,wBAAO,KAAK,iBAAiB,UAAU,SAAS,GAAG;AAEnD,WAAK,iBAAiB,UAAU,YAAY,aAAW;AAEnD,aAAK,eAAe;AACpB,aAAK,wBAAwB;AAE7B,cAAM,MAAM,KAAK,QAAQ,KAAK,aAAa,QAAQ,KAAK;AAExD,cAAM,qBAAqB,KAAK,oBAAoB;AAEpD,gBAAI,oBAAG,kBAAkB,GAAG;AAIxB,6BAAmB,QAAQ,KAAK,cAAc,QAAQ,KAAK,iBAAiB,QAAQ,KAAK,UAAU;AAAA,QAEvG;AAEA,eAAO,KAAK,oBAAoB;AAEhC,YAAI,MAAM;AAAA,MAEd;AAAA,IAEJ;AAAA,EAMJ;AAAA,EAMA,IAAI,qBAAqB;AAErB,WAAO,KAAK;AAAA,EAEhB;AAAA,EAGA,IAAI,sBAAsB;AAEtB,UAAM,MAAM;AACZ,QAAI,SAIA,KAAK,iBAAiB;AAE1B,YAAI,wBAAO,MAAM,GAAG;AAEhB,eAAS,CAAC;AACV,WAAK,iBAAiB,OAAO;AAAA,IAEjC;AAEA,WAAO;AAAA,EAEX;AAAA,EAEA,IAAI,iBAAiB;AAEjB,UAAM,MAAM;AACZ,QAAI,SAAgB,KAAK,iBAAiB;AAE1C,YAAI,wBAAO,MAAM,GAAG;AAEhB,eAAS,CAAC;AACV,WAAK,iBAAiB,OAAO;AAAA,IAEjC;AAEA,WAAO;AAAA,EAEX;AAAA,EAGA,IAAI,aAAa,cAAuB;AAEpC,SAAK,iBAAiB,sBAAsB;AAAA,EAEhD;AAAA,EAEA,IAAI,eAAe;AAEf,eAAO,oBAAG,KAAK,iBAAiB,mBAAmB;AAAA,EAEvD;AAAA,EAGA,0BAA0B;AAEtB,QAAI,KAAK,eAAe,cAAU,wBAAO,KAAK,YAAY,GAAG;AAEzD,WAAK,iBAAiB,UAAU,YAAY,KAAK,eAAe,YAAY;AAC5E,WAAK,eAAe,qBAAqB,CAAC;AAE1C,WAAK,eAAe;AAAA,IAExB;AAAA,EAEJ;AAAA,EAKA,WACI,iBACA,MACA,cACA,aACA,YACA,YACF;AAGE,QAAI,KAAK,iBAAiB;AAEtB;AAAA,IAEJ;AAIA,UAAM,qBAAqB,KAAK;AAEhC,UAAM,MAAM,KAAK,aAAa;AAE9B,SAAK,oBAAoB,OAAO;AAGhC,QAAI;AAEA,WAAK,eAAe,KAAK;AAAA,QAErB,mBAAmB;AAAA,QACnB,QAAQ;AAAA,QACR,gBAAgB;AAAA,QAChB,eAAe;AAAA,QACf,cAAc;AAAA,QACd,sBAAsB;AAAA,MAE1B,CAAC;AAED,WAAK,wBAAwB;AAAA,IAEjC,SAAS,WAAP;AAEE,iBAAW,CAAC,GAAG,CAAC,GAAG,UAAU;AAAA,IAEjC;AAAA,EAMJ;AAAA,EAMA,cAAc;AAEV,SAAK,kBAAkB;AAEvB,QAAI,KAAK,oBAAoB,wBAAuB,wBAAwB;AAExE,WAAK,iBAAiB,UAAU,UAAU;AAAA,IAE9C;AAAA,EAIJ;AAMJ;AApNO,IAAM,yBAAN;AAAM,uBAGF,yBAAyB,EAAE,WAAW,IAAI,8CAAAA,QAAgC,EAAE;AAH1E,uBAKF,kBAAkB;",
6
6
  "names": ["UIKeyValueStringFilterWebWorker"]
7
7
  }
@@ -11,7 +11,12 @@ if ("contains" in String.prototype == false) {
11
11
  };
12
12
  }
13
13
  onmessage = function(event) {
14
- var workerResult = filterKeyValuePathData(event.data.filteringString, event.data.data, event.data.excludedData, event.data.dataKeyPath);
14
+ var workerResult = filterKeyValuePathData(
15
+ event.data.filteringString,
16
+ event.data.data,
17
+ event.data.excludedData,
18
+ event.data.dataKeyPath
19
+ );
15
20
  workerResult.identifier = event.data.identifier;
16
21
  workerResult.instanceIdentifier = event.data.instanceIdentifier;
17
22
  postMessage(workerResult);