@magic-xpa/gui 4.800.0-dev480.94 → 4.801.0-dev000.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/{esm2015/index.js → esm2020/index.mjs} +0 -0
  2. package/{esm2015/magic-xpa-gui.js → esm2020/magic-xpa-gui.mjs} +0 -0
  3. package/esm2020/src/Commands.mjs +186 -0
  4. package/esm2020/src/Events.mjs +420 -0
  5. package/esm2020/src/EventsProcessor.mjs +67 -0
  6. package/esm2020/src/FocusManager.mjs +34 -0
  7. package/{esm2015/src/GuiConstants.js → esm2020/src/GuiConstants.mjs} +0 -0
  8. package/{esm2015/src/GuiEnums.js → esm2020/src/GuiEnums.mjs} +126 -127
  9. package/{esm2015/src/GuiEnvironment.js → esm2020/src/GuiEnvironment.mjs} +0 -0
  10. package/{esm2015/src/IFlowMonitorQueue.js → esm2020/src/IFlowMonitorQueue.mjs} +2 -1
  11. package/esm2020/src/Manager.mjs +192 -0
  12. package/{esm2015/src/UIBridge.js → esm2020/src/UIBridge.mjs} +0 -0
  13. package/{esm2015/src/env/IEnvironment.js → esm2020/src/env/IEnvironment.mjs} +2 -1
  14. package/{esm2015/src/gui/ControlBase.js → esm2020/src/gui/ControlBase.mjs} +0 -0
  15. package/{esm2015/src/gui/GuiMgControl.js → esm2020/src/gui/GuiMgControl.mjs} +0 -0
  16. package/{esm2015/src/gui/GuiMgForm.js → esm2020/src/gui/GuiMgForm.mjs} +0 -0
  17. package/{esm2015/src/gui/KeyboardItem.js → esm2020/src/gui/KeyboardItem.mjs} +0 -0
  18. package/{esm2015/src/gui/LastFocusedVal.js → esm2020/src/gui/LastFocusedVal.mjs} +0 -0
  19. package/{esm2015/src/gui/MgValue.js → esm2020/src/gui/MgValue.mjs} +0 -0
  20. package/{esm2015/src/gui/PropParentInterface.js → esm2020/src/gui/PropParentInterface.mjs} +1 -0
  21. package/{esm2015/src/gui/low/DialogHandler.js → esm2020/src/gui/low/DialogHandler.mjs} +0 -0
  22. package/{esm2015/src/gui/low/GuiCommand.js → esm2020/src/gui/low/GuiCommand.mjs} +0 -0
  23. package/{esm2015/src/gui/low/GuiCommandQueue.js → esm2020/src/gui/low/GuiCommandQueue.mjs} +0 -0
  24. package/esm2020/src/gui/low/GuiInteractive.mjs +545 -0
  25. package/esm2020/src/gui/low/Style.mjs +47 -0
  26. package/esm2020/src/management/RuntimeContextBase.mjs +52 -0
  27. package/{esm2015/src/management/data/BlobType.js → esm2020/src/management/data/BlobType.mjs} +0 -0
  28. package/esm2020/src/management/data/DcValues.mjs +214 -0
  29. package/esm2020/src/management/data/DcValuesBuilderBase.mjs +97 -0
  30. package/{esm2015/src/management/data/FieldDef.js → esm2020/src/management/data/FieldDef.mjs} +0 -0
  31. package/{esm2015/src/management/data/FieldsTable.js → esm2020/src/management/data/FieldsTable.mjs} +0 -0
  32. package/esm2020/src/management/data/GuiDataViewBase.mjs +90 -0
  33. package/esm2020/src/management/data/GuiFieldBase.mjs +82 -0
  34. package/{esm2015/src/management/data/IRecord.js → esm2020/src/management/data/IRecord.mjs} +1 -0
  35. package/{esm2015/src/management/data/IReferencedObject.js → esm2020/src/management/data/IReferencedObject.mjs} +1 -0
  36. package/{esm2015/src/management/data/NUM_TYPE.js → esm2020/src/management/data/NUM_TYPE.mjs} +0 -0
  37. package/esm2020/src/management/data/ObjectReferenceBase.mjs +48 -0
  38. package/{esm2015/src/management/data/ObjectReferencesCollection.js → esm2020/src/management/data/ObjectReferencesCollection.mjs} +0 -0
  39. package/esm2020/src/management/data/RecordUtils.mjs +361 -0
  40. package/{esm2015/src/management/data/VectorType.js → esm2020/src/management/data/VectorType.mjs} +0 -0
  41. package/{esm2015/src/management/data/VectorTypeBase.js → esm2020/src/management/data/VectorTypeBase.mjs} +0 -0
  42. package/{esm2015/src/management/events/IActionManager.js → esm2020/src/management/events/IActionManager.mjs} +1 -0
  43. package/esm2020/src/management/events/IGuiEventsManager.mjs +2 -0
  44. package/{esm2015/src/management/exp/ExpressionInterface.js → esm2020/src/management/exp/ExpressionInterface.mjs} +2 -1
  45. package/esm2020/src/management/exp/GuiExpressionEvaluator.mjs +333 -0
  46. package/{esm2015/src/management/gui/ControlTable.js → esm2020/src/management/gui/ControlTable.mjs} +0 -0
  47. package/esm2020/src/management/gui/DisplayConvertor.mjs +1706 -0
  48. package/esm2020/src/management/gui/FieldValidator.mjs +1507 -0
  49. package/esm2020/src/management/gui/GuiControlPropertyAdapter.mjs +22 -0
  50. package/{esm2015/src/management/gui/GuiFormPropertyAdapter.js → esm2020/src/management/gui/GuiFormPropertyAdapter.mjs} +0 -0
  51. package/{esm2015/src/management/gui/HebrewDate.js → esm2020/src/management/gui/HebrewDate.mjs} +0 -0
  52. package/{esm2015/src/management/gui/Helps.js → esm2020/src/management/gui/Helps.mjs} +0 -0
  53. package/esm2020/src/management/gui/MgControlBase.mjs +1873 -0
  54. package/esm2020/src/management/gui/MgFormBase.mjs +748 -0
  55. package/esm2020/src/management/gui/PIC.mjs +1178 -0
  56. package/esm2020/src/management/gui/PropDefaults.mjs +230 -0
  57. package/{esm2015/src/management/gui/PropInterface.js → esm2020/src/management/gui/PropInterface.mjs} +2 -4
  58. package/esm2020/src/management/gui/PropTable.mjs +221 -0
  59. package/esm2020/src/management/gui/Property.mjs +1382 -0
  60. package/{esm2015/src/management/gui/ValidationDetails.js → esm2020/src/management/gui/ValidationDetails.mjs} +0 -0
  61. package/{esm2015/src/management/gui/ValidationDetailsBase.js → esm2020/src/management/gui/ValidationDetailsBase.mjs} +0 -0
  62. package/{esm2015/src/management/gui/WrongFormatException.js → esm2020/src/management/gui/WrongFormatException.mjs} +0 -0
  63. package/{esm2015/src/management/tasks/GuiDataCollection.js → esm2020/src/management/tasks/GuiDataCollection.mjs} +0 -0
  64. package/esm2020/src/management/tasks/GuiTaskBase.mjs +502 -0
  65. package/{esm2015/src/management/tasks/IMGDataTable.js → esm2020/src/management/tasks/IMGDataTable.mjs} +1 -0
  66. package/{esm2015/src/management/tasks/ITask.js → esm2020/src/management/tasks/ITask.mjs} +1 -0
  67. package/esm2020/src/management/tasks/MgTimer.mjs +21 -0
  68. package/esm2020/src/management/tasks/TaskDefinitionId.mjs +54 -0
  69. package/esm2020/src/management/tasks/TaskDefinitionIdTableSaxHandler.mjs +41 -0
  70. package/{esm2015/src/util/AuthenticationDialogHandler.js → esm2020/src/util/AuthenticationDialogHandler.mjs} +0 -0
  71. package/{esm2015/src/util/MemoryUtil.js → esm2020/src/util/MemoryUtil.mjs} +0 -0
  72. package/{esm2015/src/util/ObjectReference.js → esm2020/src/util/ObjectReference.mjs} +0 -0
  73. package/esm2020/src/util/ProcessLauncher.mjs +32 -0
  74. package/esm2020/src/util/UsernamePasswordCredentials.mjs +52 -0
  75. package/fesm2015/{magic-xpa-gui.js → magic-xpa-gui.mjs} +305 -365
  76. package/fesm2015/magic-xpa-gui.mjs.map +1 -0
  77. package/fesm2020/magic-xpa-gui.mjs +17805 -0
  78. package/fesm2020/magic-xpa-gui.mjs.map +1 -0
  79. package/package.json +27 -14
  80. package/src/Commands.d.ts +1 -0
  81. package/src/Events.d.ts +2 -2
  82. package/src/EventsProcessor.d.ts +1 -1
  83. package/src/GuiEnums.d.ts +125 -126
  84. package/src/IFlowMonitorQueue.d.ts +1 -1
  85. package/src/Manager.d.ts +2 -3
  86. package/src/env/IEnvironment.d.ts +1 -0
  87. package/src/gui/low/GuiInteractive.d.ts +3 -1
  88. package/src/gui/low/Style.d.ts +0 -3
  89. package/src/management/RuntimeContextBase.d.ts +2 -0
  90. package/src/management/data/DcValues.d.ts +1 -1
  91. package/src/management/data/DcValuesBuilderBase.d.ts +1 -1
  92. package/src/management/data/RecordUtils.d.ts +0 -3
  93. package/src/management/events/IGuiEventsManager.d.ts +5 -5
  94. package/src/management/exp/ExpressionInterface.d.ts +1 -0
  95. package/src/management/exp/GuiExpressionEvaluator.d.ts +2 -2
  96. package/src/management/gui/DisplayConvertor.d.ts +6 -6
  97. package/src/management/gui/GuiControlPropertyAdapter.d.ts +6 -6
  98. package/src/management/gui/MgControlBase.d.ts +4 -5
  99. package/src/management/gui/MgFormBase.d.ts +1 -1
  100. package/src/management/gui/PropInterface.d.ts +2 -4
  101. package/src/management/gui/PropTable.d.ts +1 -1
  102. package/src/management/gui/Property.d.ts +3 -3
  103. package/src/management/tasks/GuiTaskBase.d.ts +3 -8
  104. package/src/management/tasks/TaskDefinitionId.d.ts +1 -0
  105. package/src/util/ProcessLauncher.d.ts +1 -3
  106. package/bundles/magic-xpa-gui.umd.js +0 -19459
  107. package/bundles/magic-xpa-gui.umd.js.map +0 -1
  108. package/bundles/magic-xpa-gui.umd.min.js +0 -16
  109. package/bundles/magic-xpa-gui.umd.min.js.map +0 -1
  110. package/esm2015/src/Commands.js +0 -185
  111. package/esm2015/src/Events.js +0 -420
  112. package/esm2015/src/EventsProcessor.js +0 -68
  113. package/esm2015/src/FocusManager.js +0 -41
  114. package/esm2015/src/Manager.js +0 -197
  115. package/esm2015/src/gui/low/GuiInteractive.js +0 -539
  116. package/esm2015/src/gui/low/Style.js +0 -50
  117. package/esm2015/src/management/RuntimeContextBase.js +0 -50
  118. package/esm2015/src/management/data/DcValues.js +0 -214
  119. package/esm2015/src/management/data/DcValuesBuilderBase.js +0 -97
  120. package/esm2015/src/management/data/GuiDataViewBase.js +0 -90
  121. package/esm2015/src/management/data/GuiFieldBase.js +0 -85
  122. package/esm2015/src/management/data/ObjectReferenceBase.js +0 -48
  123. package/esm2015/src/management/data/RecordUtils.js +0 -447
  124. package/esm2015/src/management/events/IGuiEventsManager.js +0 -1
  125. package/esm2015/src/management/exp/GuiExpressionEvaluator.js +0 -333
  126. package/esm2015/src/management/gui/DisplayConvertor.js +0 -1706
  127. package/esm2015/src/management/gui/FieldValidator.js +0 -1507
  128. package/esm2015/src/management/gui/GuiControlPropertyAdapter.js +0 -4
  129. package/esm2015/src/management/gui/MgControlBase.js +0 -1979
  130. package/esm2015/src/management/gui/MgFormBase.js +0 -763
  131. package/esm2015/src/management/gui/PIC.js +0 -1176
  132. package/esm2015/src/management/gui/PropDefaults.js +0 -232
  133. package/esm2015/src/management/gui/PropTable.js +0 -224
  134. package/esm2015/src/management/gui/Property.js +0 -1409
  135. package/esm2015/src/management/tasks/GuiTaskBase.js +0 -533
  136. package/esm2015/src/management/tasks/MgTimer.js +0 -21
  137. package/esm2015/src/management/tasks/TaskDefinitionId.js +0 -47
  138. package/esm2015/src/management/tasks/TaskDefinitionIdTableSaxHandler.js +0 -41
  139. package/esm2015/src/util/ProcessLauncher.js +0 -32
  140. package/esm2015/src/util/UsernamePasswordCredentials.js +0 -52
  141. package/fesm2015/magic-xpa-gui.js.map +0 -1
@@ -0,0 +1,47 @@
1
+ export class Styles {
2
+ }
3
+ Styles.PROP_STYLE_BUTTON_PUSH = 0x00000001;
4
+ Styles.PROP_STYLE_BUTTON_IMAGE = 0x00000002;
5
+ Styles.PROP_STYLE_BUTTON_HYPERTEXT = 0x00000004;
6
+ Styles.PROP_STYLE_BUTTON_TEXT_ON_IMAGE = 0x00000008;
7
+ Styles.PROP_STYLE_HOR_RIGHT = 0x00000010;
8
+ Styles.PROP_STYLE_RIGHT_TO_LEFT = 0x00000020;
9
+ Styles.PROP_STYLE_HORIZONTAL_SCROLL = 0x00000040;
10
+ Styles.PROP_STYLE_VERTICAL_SCROLL = 0x00000080;
11
+ Styles.PROP_STYLE_TITLE = 0x00000100;
12
+ Styles.PROP_STYLE_CLOSE = 0x00000200;
13
+ Styles.PROP_STYLE_MIN = 0x00000400;
14
+ Styles.PROP_STYLE_MAX = 0x00000800;
15
+ Styles.PROP_STYLE_BORDER = 0x00001000;
16
+ Styles.PROP_STYLE_BORDER_STYLE_THIN = 0x00002000;
17
+ Styles.PROP_STYLE_BORDER_STYLE_THICK = 0x00004000;
18
+ Styles.PROP_STYLE_READ_ONLY = 0x00008000;
19
+ Styles.PROP_STYLE_APPEARANCE_CHECK = 0x00010000;
20
+ Styles.PROP_STYLE_APPEARANCE_BUTTON = 0x00020000;
21
+ Styles.PROP_STYLE_WORD_WRAP = 0x00040000;
22
+ Styles.PROP_STYLE_STYLE_FLAT = 0x00080000;
23
+ Styles.PROP_STYLE_TAB_SIDE_TOP = 0x04000000;
24
+ Styles.PROP_STYLE_TAB_SIDE_BOTTOM = 0x08000000;
25
+ Styles.PROP_STYLE_NO_BACKGROUND = 0x10000000;
26
+ Styles.PROP_STYLE_SHOW_LINES = 0x20000000;
27
+ Styles.PROP_STYLE_HORIZONTAL = 0x40000000;
28
+ Styles.PROP_STYLE_VERTICAL = 0x80000000;
29
+ Styles.MSGBOX_BUTTON_OK = 0x00000000;
30
+ Styles.MSGBOX_BUTTON_OK_CANCEL = 0x00000001;
31
+ Styles.MSGBOX_BUTTON_ABORT_RETRY_IGNORE = 0x00000002;
32
+ Styles.MSGBOX_BUTTON_YES_NO_CANCEL = 0x00000003;
33
+ Styles.MSGBOX_BUTTON_YES_NO = 0x00000004;
34
+ Styles.MSGBOX_BUTTON_RETRY_CANCEL = 0x00000005;
35
+ Styles.MSGBOX_ICON_ERROR = 0x00000010;
36
+ Styles.MSGBOX_ICON_QUESTION = 0x00000020;
37
+ Styles.MSGBOX_ICON_EXCLAMATION = 0x00000030;
38
+ Styles.MSGBOX_ICON_INFORMATION = 0x00000040;
39
+ Styles.MSGBOX_ICON_WARNING = Styles.MSGBOX_ICON_EXCLAMATION;
40
+ Styles.MSGBOX_RESULT_OK = 1;
41
+ Styles.MSGBOX_RESULT_CANCEL = 2;
42
+ Styles.MSGBOX_RESULT_ABORT = 3;
43
+ Styles.MSGBOX_RESULT_RETRY = 4;
44
+ Styles.MSGBOX_RESULT_IGNORE = 5;
45
+ Styles.MSGBOX_RESULT_YES = 6;
46
+ Styles.MSGBOX_RESULT_NO = 7;
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3R5bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvc3JjL2d1aS9sb3cvU3R5bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFRLE1BQU07O0FBSVQsNkJBQXNCLEdBQVcsVUFBVSxDQUFDO0FBQzdDLDhCQUF1QixHQUFXLFVBQVUsQ0FBQztBQUM3QyxrQ0FBMkIsR0FBVyxVQUFVLENBQUM7QUFDakQsc0NBQStCLEdBQVcsVUFBVSxDQUFDO0FBRXJELDJCQUFvQixHQUFXLFVBQVUsQ0FBQztBQUMxQywrQkFBd0IsR0FBVyxVQUFVLENBQUM7QUFDOUMsbUNBQTRCLEdBQVcsVUFBVSxDQUFDO0FBQ2xELGlDQUEwQixHQUFXLFVBQVUsQ0FBQztBQUNoRCx1QkFBZ0IsR0FBVyxVQUFVLENBQUM7QUFDdEMsdUJBQWdCLEdBQVcsVUFBVSxDQUFDO0FBQ3RDLHFCQUFjLEdBQVcsVUFBVSxDQUFDO0FBQ3BDLHFCQUFjLEdBQVcsVUFBVSxDQUFDO0FBQ3BDLHdCQUFpQixHQUFXLFVBQVUsQ0FBQztBQUN2QyxtQ0FBNEIsR0FBVyxVQUFVLENBQUM7QUFDbEQsb0NBQTZCLEdBQVcsVUFBVSxDQUFDO0FBQ25ELDJCQUFvQixHQUFXLFVBQVUsQ0FBQztBQUMxQyxrQ0FBMkIsR0FBVyxVQUFVLENBQUM7QUFDakQsbUNBQTRCLEdBQVcsVUFBVSxDQUFDO0FBQ2xELDJCQUFvQixHQUFXLFVBQVUsQ0FBQztBQUMxQyw0QkFBcUIsR0FBVyxVQUFVLENBQUM7QUFDM0MsOEJBQXVCLEdBQVcsVUFBVSxDQUFDO0FBQzdDLGlDQUEwQixHQUFXLFVBQVUsQ0FBQztBQUNoRCwrQkFBd0IsR0FBVyxVQUFVLENBQUM7QUFDOUMsNEJBQXFCLEdBQVcsVUFBVSxDQUFDO0FBQzNDLDRCQUFxQixHQUFXLFVBQVUsQ0FBQztBQUMzQywwQkFBbUIsR0FBVyxVQUFVLENBQUM7QUFJekMsdUJBQWdCLEdBQVcsVUFBVSxDQUFDO0FBQ3RDLDhCQUF1QixHQUFXLFVBQVUsQ0FBQztBQUM3Qyx1Q0FBZ0MsR0FBVyxVQUFVLENBQUM7QUFDdEQsa0NBQTJCLEdBQVcsVUFBVSxDQUFDO0FBQ2pELDJCQUFvQixHQUFXLFVBQVUsQ0FBQztBQUMxQyxpQ0FBMEIsR0FBVyxVQUFVLENBQUM7QUFFaEQsd0JBQWlCLEdBQVcsVUFBVSxDQUFDO0FBQ3ZDLDJCQUFvQixHQUFXLFVBQVUsQ0FBQztBQUMxQyw4QkFBdUIsR0FBVyxVQUFVLENBQUM7QUFDN0MsOEJBQXVCLEdBQVcsVUFBVSxDQUFDO0FBQzlDLDBCQUFtQixHQUFXLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQztBQUk3RCx1QkFBZ0IsR0FBRyxDQUFDLENBQUM7QUFDckIsMkJBQW9CLEdBQUcsQ0FBQyxDQUFDO0FBQ3pCLDBCQUFtQixHQUFHLENBQUMsQ0FBQztBQUN4QiwwQkFBbUIsR0FBRyxDQUFDLENBQUM7QUFDeEIsMkJBQW9CLEdBQUcsQ0FBQyxDQUFDO0FBQ3pCLHdCQUFpQixHQUFHLENBQUMsQ0FBQztBQUN0Qix1QkFBZ0IsR0FBRyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgIFN0eWxlc1xyXG57XHJcbiAgLy8gc3R5bGVzIHRoYXQgY2FsbCBmcm9tIHN0eWxlMnN0eWxlXHJcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICBzdGF0aWMgIFBST1BfU1RZTEVfQlVUVE9OX1BVU0g6IG51bWJlciA9IDB4MDAwMDAwMDE7XHJcbiAgc3RhdGljICBQUk9QX1NUWUxFX0JVVFRPTl9JTUFHRTogbnVtYmVyID0gMHgwMDAwMDAwMjtcclxuICBzdGF0aWMgIFBST1BfU1RZTEVfQlVUVE9OX0hZUEVSVEVYVDogbnVtYmVyID0gMHgwMDAwMDAwNDtcclxuICBzdGF0aWMgIFBST1BfU1RZTEVfQlVUVE9OX1RFWFRfT05fSU1BR0U6IG51bWJlciA9IDB4MDAwMDAwMDg7XHJcblxyXG4gIHN0YXRpYyAgUFJPUF9TVFlMRV9IT1JfUklHSFQ6IG51bWJlciA9IDB4MDAwMDAwMTA7XHJcbiAgc3RhdGljICBQUk9QX1NUWUxFX1JJR0hUX1RPX0xFRlQ6IG51bWJlciA9IDB4MDAwMDAwMjA7XHJcbiAgc3RhdGljICBQUk9QX1NUWUxFX0hPUklaT05UQUxfU0NST0xMOiBudW1iZXIgPSAweDAwMDAwMDQwO1xyXG4gIHN0YXRpYyAgUFJPUF9TVFlMRV9WRVJUSUNBTF9TQ1JPTEw6IG51bWJlciA9IDB4MDAwMDAwODA7XHJcbiAgc3RhdGljICBQUk9QX1NUWUxFX1RJVExFOiBudW1iZXIgPSAweDAwMDAwMTAwO1xyXG4gIHN0YXRpYyAgUFJPUF9TVFlMRV9DTE9TRTogbnVtYmVyID0gMHgwMDAwMDIwMDtcclxuICBzdGF0aWMgIFBST1BfU1RZTEVfTUlOOiBudW1iZXIgPSAweDAwMDAwNDAwO1xyXG4gIHN0YXRpYyAgUFJPUF9TVFlMRV9NQVg6IG51bWJlciA9IDB4MDAwMDA4MDA7XHJcbiAgc3RhdGljICBQUk9QX1NUWUxFX0JPUkRFUjogbnVtYmVyID0gMHgwMDAwMTAwMDtcclxuICBzdGF0aWMgIFBST1BfU1RZTEVfQk9SREVSX1NUWUxFX1RISU46IG51bWJlciA9IDB4MDAwMDIwMDA7XHJcbiAgc3RhdGljICBQUk9QX1NUWUxFX0JPUkRFUl9TVFlMRV9USElDSzogbnVtYmVyID0gMHgwMDAwNDAwMDtcclxuICBzdGF0aWMgIFBST1BfU1RZTEVfUkVBRF9PTkxZOiBudW1iZXIgPSAweDAwMDA4MDAwO1xyXG4gIHN0YXRpYyAgUFJPUF9TVFlMRV9BUFBFQVJBTkNFX0NIRUNLOiBudW1iZXIgPSAweDAwMDEwMDAwO1xyXG4gIHN0YXRpYyAgUFJPUF9TVFlMRV9BUFBFQVJBTkNFX0JVVFRPTjogbnVtYmVyID0gMHgwMDAyMDAwMDtcclxuICBzdGF0aWMgIFBST1BfU1RZTEVfV09SRF9XUkFQOiBudW1iZXIgPSAweDAwMDQwMDAwO1xyXG4gIHN0YXRpYyAgUFJPUF9TVFlMRV9TVFlMRV9GTEFUOiBudW1iZXIgPSAweDAwMDgwMDAwO1xyXG4gIHN0YXRpYyAgUFJPUF9TVFlMRV9UQUJfU0lERV9UT1A6IG51bWJlciA9IDB4MDQwMDAwMDA7XHJcbiAgc3RhdGljICBQUk9QX1NUWUxFX1RBQl9TSURFX0JPVFRPTTogbnVtYmVyID0gMHgwODAwMDAwMDtcclxuICBzdGF0aWMgIFBST1BfU1RZTEVfTk9fQkFDS0dST1VORDogbnVtYmVyID0gMHgxMDAwMDAwMDtcclxuICBzdGF0aWMgIFBST1BfU1RZTEVfU0hPV19MSU5FUzogbnVtYmVyID0gMHgyMDAwMDAwMDtcclxuICBzdGF0aWMgIFBST1BfU1RZTEVfSE9SSVpPTlRBTDogbnVtYmVyID0gMHg0MDAwMDAwMDtcclxuICBzdGF0aWMgIFBST1BfU1RZTEVfVkVSVElDQUw6IG51bWJlciA9IDB4ODAwMDAwMDA7XHJcblxyXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAvLyBjb25maXJtYXRpb24gYm94XHJcbiAgc3RhdGljICBNU0dCT1hfQlVUVE9OX09LOiBudW1iZXIgPSAweDAwMDAwMDAwO1xyXG4gIHN0YXRpYyAgTVNHQk9YX0JVVFRPTl9PS19DQU5DRUw6IG51bWJlciA9IDB4MDAwMDAwMDE7XHJcbiAgc3RhdGljICBNU0dCT1hfQlVUVE9OX0FCT1JUX1JFVFJZX0lHTk9SRTogbnVtYmVyID0gMHgwMDAwMDAwMjtcclxuICBzdGF0aWMgIE1TR0JPWF9CVVRUT05fWUVTX05PX0NBTkNFTDogbnVtYmVyID0gMHgwMDAwMDAwMztcclxuICBzdGF0aWMgIE1TR0JPWF9CVVRUT05fWUVTX05POiBudW1iZXIgPSAweDAwMDAwMDA0O1xyXG4gIHN0YXRpYyAgTVNHQk9YX0JVVFRPTl9SRVRSWV9DQU5DRUw6IG51bWJlciA9IDB4MDAwMDAwMDU7XHJcblxyXG4gIHN0YXRpYyAgTVNHQk9YX0lDT05fRVJST1I6IG51bWJlciA9IDB4MDAwMDAwMTA7XHJcbiAgc3RhdGljICBNU0dCT1hfSUNPTl9RVUVTVElPTjogbnVtYmVyID0gMHgwMDAwMDAyMDtcclxuICBzdGF0aWMgIE1TR0JPWF9JQ09OX0VYQ0xBTUFUSU9OOiBudW1iZXIgPSAweDAwMDAwMDMwO1xyXG4gIHN0YXRpYyAgTVNHQk9YX0lDT05fSU5GT1JNQVRJT046IG51bWJlciA9IDB4MDAwMDAwNDA7XHJcbiAgc3RhdGljIE1TR0JPWF9JQ09OX1dBUk5JTkc6IG51bWJlciA9IFN0eWxlcy5NU0dCT1hfSUNPTl9FWENMQU1BVElPTjtcclxuXHJcblxyXG4gIC8vIG1lc3NhZ2UgYm94IHJlc3VsdFxyXG4gIHN0YXRpYyBNU0dCT1hfUkVTVUxUX09LID0gMTtcclxuICBzdGF0aWMgTVNHQk9YX1JFU1VMVF9DQU5DRUwgPSAyO1xyXG4gIHN0YXRpYyBNU0dCT1hfUkVTVUxUX0FCT1JUID0gMztcclxuICBzdGF0aWMgTVNHQk9YX1JFU1VMVF9SRVRSWSA9IDQ7XHJcbiAgc3RhdGljIE1TR0JPWF9SRVNVTFRfSUdOT1JFID0gNTtcclxuICBzdGF0aWMgTVNHQk9YX1JFU1VMVF9ZRVMgPSA2O1xyXG4gIHN0YXRpYyBNU0dCT1hfUkVTVUxUX05PID0gNztcclxuXHJcblxyXG59XHJcbiJdfQ==
@@ -0,0 +1,52 @@
1
+ import { XmlParser } from "@magic-xpa/utils";
2
+ import { Manager } from "../Manager";
3
+ import { ApplicationException, NString } from "@magic-xpa/mscorelib";
4
+ export class RuntimeContextBase {
5
+ constructor() {
6
+ this._insertMode = false;
7
+ this._lastCoordinates = new Array(4);
8
+ this.ContextID = '\0';
9
+ this.Parser = null;
10
+ this.FrameForm = null;
11
+ this.LastClickedCtrlName = null;
12
+ this.LastClickedMenuUid = 0;
13
+ this.RemovedContextFromServer = false;
14
+ this.RemovingContextFromServer = false;
15
+ this.CurrentClickedCtrl = null;
16
+ this.CurrentClickedRadio = null;
17
+ this.DefaultStatusMsg = null;
18
+ this.LastClickCoordinatesAreInPixels = false;
19
+ }
20
+ Init(contextID) {
21
+ this.ContextID = contextID;
22
+ this.LastClickedCtrlName = "";
23
+ this._insertMode = true;
24
+ Manager.SetCurrentContextID(contextID);
25
+ this.Parser = new XmlParser();
26
+ }
27
+ SaveLastClickInfo(controlName, clientX, clientY, offsetX, offsetY, isInPixels) {
28
+ this._lastCoordinates[0] = offsetX;
29
+ this._lastCoordinates[1] = offsetY;
30
+ this._lastCoordinates[2] = clientX;
31
+ this._lastCoordinates[3] = clientY;
32
+ this.LastClickCoordinatesAreInPixels = isInPixels;
33
+ this.LastClickedCtrlName = "";
34
+ if (!NString.IsNullOrEmpty(controlName)) {
35
+ this.LastClickedCtrlName = controlName;
36
+ }
37
+ }
38
+ GetClickProp(index) {
39
+ if (index >= 0 && index < 4)
40
+ return this._lastCoordinates[index];
41
+ throw new ApplicationException("in RuntimeContextBase.getClickProp() illegal index: " + index);
42
+ }
43
+ IsInsertMode() {
44
+ return this._insertMode;
45
+ }
46
+ ToggleInsertMode() {
47
+ this._insertMode = !this._insertMode;
48
+ }
49
+ }
50
+ RuntimeContextBase.noContextId = null;
51
+ RuntimeContextBase.Instance = new RuntimeContextBase();
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUnVudGltZUNvbnRleHRCYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3VpL3NyYy9tYW5hZ2VtZW50L1J1bnRpbWVDb250ZXh0QmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFHM0MsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLFlBQVksQ0FBQztBQUNuQyxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsT0FBTyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFbkUsTUFBTSxPQUFPLGtCQUFrQjtJQXNCN0I7UUFyQlEsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0IscUJBQWdCLEdBQWEsSUFBSSxLQUFLLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFDMUQsY0FBUyxHQUFXLElBQUksQ0FBQztRQUN6QixXQUFNLEdBQWMsSUFBSSxDQUFDO1FBQ3pCLGNBQVMsR0FBZSxJQUFJLENBQUM7UUFDN0Isd0JBQW1CLEdBQVcsSUFBSSxDQUFDO1FBQ25DLHVCQUFrQixHQUFXLENBQUMsQ0FBQztRQUUvQiw2QkFBd0IsR0FBWSxLQUFLLENBQUM7UUFDMUMsOEJBQXlCLEdBQVksS0FBSyxDQUFDO1FBSTNDLHVCQUFrQixHQUFrQixJQUFJLENBQUM7UUFFekMsd0JBQW1CLEdBQWtCLElBQUksQ0FBQztRQUMxQyxxQkFBZ0IsR0FBVyxJQUFJLENBQUM7UUFDaEMsb0NBQStCLEdBQVksS0FBSyxDQUFDO0lBSXpCLENBQUM7SUFDekIsSUFBSSxDQUFDLFNBQWlCO1FBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsT0FBTyxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsV0FBbUIsRUFBRSxPQUFlLEVBQUUsT0FBZSxFQUFFLE9BQWUsRUFBRSxPQUFlLEVBQUUsVUFBbUI7UUFDNUgsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQztRQUNuQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDO1FBQ25DLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUM7UUFDbkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQztRQUVuQyxJQUFJLENBQUMsK0JBQStCLEdBQUcsVUFBVSxDQUFDO1FBRWxELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDdkMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFdBQVcsQ0FBQztTQUN4QztJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsS0FBYTtRQUN4QixJQUFJLEtBQUssSUFBSSxDQUFDLElBQUksS0FBSyxHQUFHLENBQUM7WUFDekIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdEMsTUFBTSxJQUFJLG9CQUFvQixDQUFDLHNEQUFzRCxHQUFHLEtBQUssQ0FBQyxDQUFDO0lBQ2pHLENBQUM7SUFHRCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFHRCxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUN2QyxDQUFDOztBQXBETSw4QkFBVyxHQUFXLElBQUksQ0FBQztBQVkzQiwyQkFBUSxHQUF1QixJQUFJLGtCQUFrQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1htbFBhcnNlcn0gZnJvbSBcIkBtYWdpYy14cGEvdXRpbHNcIjtcclxuaW1wb3J0IHtNZ0Zvcm1CYXNlfSBmcm9tIFwiLi9ndWkvTWdGb3JtQmFzZVwiO1xyXG5pbXBvcnQge01nQ29udHJvbEJhc2V9IGZyb20gXCIuL2d1aS9NZ0NvbnRyb2xCYXNlXCI7XHJcbmltcG9ydCB7TWFuYWdlcn0gZnJvbSBcIi4uL01hbmFnZXJcIjtcclxuaW1wb3J0IHtBcHBsaWNhdGlvbkV4Y2VwdGlvbiwgTlN0cmluZ30gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgUnVudGltZUNvbnRleHRCYXNlIHtcclxuICBwcml2YXRlIF9pbnNlcnRNb2RlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfbGFzdENvb3JkaW5hdGVzOiBudW1iZXJbXSA9IG5ldyBBcnJheTxudW1iZXI+KDQpO1xyXG4gIENvbnRleHRJRDogc3RyaW5nID0gJ1xcMCc7XHJcbiAgUGFyc2VyOiBYbWxQYXJzZXIgPSBudWxsOyAvLyB4bWwgcGFyc2VyXHJcbiAgRnJhbWVGb3JtOiBNZ0Zvcm1CYXNlID0gbnVsbDsgLy8gZm9ybSBvZiB0aGUgTURJL1NESSBmcmFtZVxyXG4gIExhc3RDbGlja2VkQ3RybE5hbWU6IHN0cmluZyA9IG51bGw7XHJcbiAgTGFzdENsaWNrZWRNZW51VWlkOiBudW1iZXIgPSAwOyAvLyBwcm9ncmFtIG1lbnUgdWlkIGlmIGV4ZWN1dGVkIGZyb20gbWVudVxyXG4gIHN0YXRpYyBub0NvbnRleHRJZDogc3RyaW5nID0gbnVsbDtcclxuICBSZW1vdmVkQ29udGV4dEZyb21TZXJ2ZXI6IGJvb2xlYW4gPSBmYWxzZTsgLy9zZXQgd2hlbiByZXEuICdDb250ZXh0IFJlbW92ZScgc2VudCB0byBzZXJ2ZXIuXHJcbiAgUmVtb3ZpbmdDb250ZXh0RnJvbVNlcnZlcjogYm9vbGVhbiA9IGZhbHNlOyAvL3NldCB3aGVuIGV2ZW50ICdDb250ZXh0IFJlbW92ZSdyYWlzZWRcclxuICAvLyBDdXJyZW50Q2xpY2tlZEN0cmwgLSBhbHdheXMgcG9pbnRzIHRvIHRoZSBjdXJyZW50IGNsaWNrZWRDdHJsLiBJbml0aWFsbHkgbnVsbCwgYnV0IG9uY2UgY2xpY2tlZCBvbiBhbnlcclxuICAvLyBjb250cm9sLCBpdCBhbHdheXMgcG9pbnRzIHRvIHRoaXMgY2xpY2tlZCBjdHJsLiBBbmQsIGlzIHJlc2V0IGJhY2sgdG8gbnVsbCBvbmNlIHdlIGhhdmUgc3VjY2Vzc2Z1bGx5XHJcbiAgLy8gcGFya2VkIG9uIHRoZSBwYXJrYWJsZSBjb250cm9sLlxyXG4gIEN1cnJlbnRDbGlja2VkQ3RybDogTWdDb250cm9sQmFzZSA9IG51bGw7XHJcblxyXG4gIEN1cnJlbnRDbGlja2VkUmFkaW86IE1nQ29udHJvbEJhc2UgPSBudWxsO1xyXG4gIERlZmF1bHRTdGF0dXNNc2c6IHN0cmluZyA9IG51bGw7XHJcbiAgTGFzdENsaWNrQ29vcmRpbmF0ZXNBcmVJblBpeGVsczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBzdGF0aWMgSW5zdGFuY2U6IFJ1bnRpbWVDb250ZXh0QmFzZSA9IG5ldyBSdW50aW1lQ29udGV4dEJhc2UoKTtcclxuXHJcbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHsgfVxyXG4gIEluaXQoY29udGV4dElEOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuQ29udGV4dElEID0gY29udGV4dElEO1xyXG4gICAgdGhpcy5MYXN0Q2xpY2tlZEN0cmxOYW1lID0gXCJcIjtcclxuICAgIHRoaXMuX2luc2VydE1vZGUgPSB0cnVlO1xyXG4gICAgTWFuYWdlci5TZXRDdXJyZW50Q29udGV4dElEKGNvbnRleHRJRCk7XHJcbiAgICB0aGlzLlBhcnNlciA9IG5ldyBYbWxQYXJzZXIoKTtcclxuICB9XHJcblxyXG4gIFNhdmVMYXN0Q2xpY2tJbmZvKGNvbnRyb2xOYW1lOiBzdHJpbmcsIGNsaWVudFg6IG51bWJlciwgY2xpZW50WTogbnVtYmVyLCBvZmZzZXRYOiBudW1iZXIsIG9mZnNldFk6IG51bWJlciwgaXNJblBpeGVsczogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5fbGFzdENvb3JkaW5hdGVzWzBdID0gb2Zmc2V0WDsgLy8gR2l2ZXMgdGhlIFggbG9jYXRpb24gb2YgdGhlIGxhc3QgY2xpY2ssIHJlbGF0aXZlIHRvIHRoZSB3aW5kb3dcclxuICAgIHRoaXMuX2xhc3RDb29yZGluYXRlc1sxXSA9IG9mZnNldFk7IC8vIEdpdmVzIHRoZSBZIGxvY2F0aW9uIG9mIHRoZSBsYXN0IGNsaWNrLCByZWxhdGl2ZSB0byB0aGUgd2luZG93XHJcbiAgICB0aGlzLl9sYXN0Q29vcmRpbmF0ZXNbMl0gPSBjbGllbnRYOyAvLyBHaXZlcyB0aGUgWCBsb2NhdGlvbiBvZiB0aGUgbGFzdCBjbGljaywgcmVsYXRpdmUgdG8gdGhlIGNvbnRyb2wgd2l0aGluIHdoaWNoIHRoZSBjbGljayBvY2N1cnJlZFxyXG4gICAgdGhpcy5fbGFzdENvb3JkaW5hdGVzWzNdID0gY2xpZW50WTsgLy8gR2l2ZXMgdGhlIFkgbG9jYXRpb24gb2YgdGhlIGxhc3QgY2xpY2ssIHJlbGF0aXZlIHRvIHRoZSBjb250cm9sIHdpdGhpbiB3aGljaCB0aGUgY2xpY2sgb2NjdXJyZWRcclxuXHJcbiAgICB0aGlzLkxhc3RDbGlja0Nvb3JkaW5hdGVzQXJlSW5QaXhlbHMgPSBpc0luUGl4ZWxzO1xyXG5cclxuICAgIHRoaXMuTGFzdENsaWNrZWRDdHJsTmFtZSA9IFwiXCI7IC8vIGlzIGVtcHR5IHN0cmluZ1xyXG4gICAgaWYgKCFOU3RyaW5nLklzTnVsbE9yRW1wdHkoY29udHJvbE5hbWUpKSB7XHJcbiAgICAgIHRoaXMuTGFzdENsaWNrZWRDdHJsTmFtZSA9IGNvbnRyb2xOYW1lO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgR2V0Q2xpY2tQcm9wKGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgaWYgKGluZGV4ID49IDAgJiYgaW5kZXggPCA0KVxyXG4gICAgICByZXR1cm4gdGhpcy5fbGFzdENvb3JkaW5hdGVzW2luZGV4XTtcclxuXHJcbiAgICB0aHJvdyBuZXcgQXBwbGljYXRpb25FeGNlcHRpb24oXCJpbiBSdW50aW1lQ29udGV4dEJhc2UuZ2V0Q2xpY2tQcm9wKCkgaWxsZWdhbCBpbmRleDogXCIgKyBpbmRleCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+IHJldHVybiB0aGUgSW5zZXJ0TW9kZSA8L3N1bW1hcnk+XHJcbiAgSXNJbnNlcnRNb2RlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2luc2VydE1vZGU7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+IHRvZ2dsZSB0aGUgX2luc2VydE1vZGUgKGJldHdlZW4gaW5zZXJ0IGFuZCBvdmVyd3JpdGUpLiA8L3N1bW1hcnk+XHJcbiAgVG9nZ2xlSW5zZXJ0TW9kZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2luc2VydE1vZGUgPSAhdGhpcy5faW5zZXJ0TW9kZTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,214 @@
1
+ import { GuiConstants } from "../../GuiConstants";
2
+ import { StorageAttribute, StrUtil } from "@magic-xpa/utils";
3
+ import { NUM_TYPE } from "./NUM_TYPE";
4
+ import { ApplicationException, NString } from "@magic-xpa/mscorelib";
5
+ import { VectorType } from "./VectorType";
6
+ export const EMPTY_DCREF = -2;
7
+ export const NOT_FOUND = GuiConstants.DEFAULT_VALUE_INT;
8
+ export class DcValues {
9
+ constructor(empty) {
10
+ this._id = 0;
11
+ this._type = StorageAttribute.NONE;
12
+ this._refCount = 0;
13
+ this._nullFlags = null;
14
+ this._isNumericType = false;
15
+ this._numVals = null;
16
+ this._linkVals = null;
17
+ this._dispVals = null;
18
+ if (empty) {
19
+ this._id = EMPTY_DCREF;
20
+ }
21
+ this._isNumericType = false;
22
+ }
23
+ get HasReferences() {
24
+ return this._refCount > 0;
25
+ }
26
+ GetAttr() {
27
+ return this._type;
28
+ }
29
+ setType(type) {
30
+ this._type = type;
31
+ if (this._type === StorageAttribute.MEMO)
32
+ this._type = StorageAttribute.ALPHA;
33
+ if (this._type === StorageAttribute.NUMERIC || this._type === StorageAttribute.DATE ||
34
+ this._type === StorageAttribute.TIME) {
35
+ this._isNumericType = true;
36
+ }
37
+ }
38
+ SetID(newId) {
39
+ this._id = newId;
40
+ }
41
+ SetDisplayValues(displayValues) {
42
+ if (displayValues !== null)
43
+ this._dispVals = displayValues.slice();
44
+ else
45
+ this._dispVals = null;
46
+ }
47
+ SetLinkValues(linkValues) {
48
+ if (linkValues !== null)
49
+ this._linkVals = linkValues.slice();
50
+ else
51
+ this._linkVals = null;
52
+ this.setNumericVals();
53
+ }
54
+ setNullFlags(nullFlags) {
55
+ if (nullFlags !== null)
56
+ this._nullFlags = nullFlags.slice();
57
+ else
58
+ this._nullFlags = null;
59
+ }
60
+ setNumericVals() {
61
+ if (this._isNumericType && this._linkVals !== null) {
62
+ this._numVals = new Array(this._linkVals.length);
63
+ for (let i = 0; i < this._linkVals.length; i = i + 1) {
64
+ this._numVals[i] = new NUM_TYPE(this._linkVals[i]);
65
+ }
66
+ }
67
+ else {
68
+ this._numVals = null;
69
+ }
70
+ }
71
+ getId() {
72
+ return this._id;
73
+ }
74
+ getDispVals() {
75
+ return this._dispVals;
76
+ }
77
+ GetLinkVals() {
78
+ return this._linkVals;
79
+ }
80
+ getIndexOf(mgVal, isVectorValue, isNull, extraVals, extraNums, splitCommaSeperatedVals) {
81
+ let result = NOT_FOUND;
82
+ let tmpMgVal;
83
+ let ctrlNumVal;
84
+ let trimmedVal;
85
+ let vals = null;
86
+ let nums = null;
87
+ let offset = 0;
88
+ let firstFitMatchIdx;
89
+ let firstFitMatchLength = -1;
90
+ let minLength = -1;
91
+ let compStr = "";
92
+ let indice = null;
93
+ let values = null;
94
+ if (isNull) {
95
+ let i = 0;
96
+ indice = [
97
+ NOT_FOUND
98
+ ];
99
+ for (i = 0; this._nullFlags !== null && i < this._nullFlags.length; i++) {
100
+ if (this._nullFlags[i]) {
101
+ indice[0] = i;
102
+ break;
103
+ }
104
+ }
105
+ return indice;
106
+ }
107
+ if (!isVectorValue) {
108
+ if (splitCommaSeperatedVals) {
109
+ values = mgVal.split(',');
110
+ }
111
+ else {
112
+ values = [
113
+ mgVal
114
+ ];
115
+ }
116
+ }
117
+ else {
118
+ let vectorType = new VectorType(mgVal);
119
+ values = vectorType.GetCellValues();
120
+ }
121
+ indice = new Array(values.length);
122
+ for (let iCtr = 0; iCtr < values.length; iCtr = iCtr + 1) {
123
+ result = NOT_FOUND;
124
+ firstFitMatchIdx = NOT_FOUND;
125
+ tmpMgVal = values[iCtr];
126
+ if (this._isNumericType || extraNums !== null) {
127
+ ctrlNumVal = new NUM_TYPE(tmpMgVal);
128
+ trimmedVal = tmpMgVal;
129
+ }
130
+ else {
131
+ ctrlNumVal = null;
132
+ trimmedVal = StrUtil.rtrim(tmpMgVal);
133
+ }
134
+ for (let i = 0; i < 2 && result === NOT_FOUND; i++) {
135
+ switch (i) {
136
+ case 0:
137
+ vals = extraVals;
138
+ nums = extraNums;
139
+ offset = 0;
140
+ break;
141
+ case 1:
142
+ default:
143
+ if (this._isNumericType || nums != null)
144
+ offset = (nums == null ? 0 : nums.length);
145
+ else
146
+ offset = (vals == null ? 0 : vals.length);
147
+ vals = this._linkVals;
148
+ nums = this._numVals;
149
+ break;
150
+ }
151
+ if (vals != null) {
152
+ for (let j = 0; j < vals.length && result === NOT_FOUND; j++) {
153
+ if (this._isNumericType || nums != null) {
154
+ if (NUM_TYPE.num_cmp(ctrlNumVal, nums[j]) === 0 || tmpMgVal === vals[j] ||
155
+ tmpMgVal === vals[j]) {
156
+ result = j + offset;
157
+ break;
158
+ }
159
+ }
160
+ else {
161
+ if (vals[j] === tmpMgVal || trimmedVal.length > 0 && StrUtil.rtrim(vals[j]) === trimmedVal) {
162
+ result = j + offset;
163
+ break;
164
+ }
165
+ if (trimmedVal.length === 0 && StrUtil.rtrim(vals[j]).length === 0) {
166
+ result = j + offset;
167
+ break;
168
+ }
169
+ if (result === NOT_FOUND && trimmedVal.length > 0) {
170
+ minLength = Math.min(trimmedVal.length, vals[j].length);
171
+ compStr = trimmedVal.substr(0, minLength);
172
+ if (compStr.length > 0 && vals[j].startsWith(compStr)) {
173
+ if (minLength > firstFitMatchLength) {
174
+ firstFitMatchIdx = j + offset;
175
+ firstFitMatchLength = minLength;
176
+ }
177
+ }
178
+ }
179
+ }
180
+ }
181
+ }
182
+ }
183
+ if (result === NOT_FOUND)
184
+ result = firstFitMatchIdx;
185
+ indice[iCtr] = result;
186
+ }
187
+ return indice;
188
+ }
189
+ getLinkValue(idx) {
190
+ let lnkVal = null;
191
+ if (this._linkVals !== null) {
192
+ lnkVal = this._linkVals[idx];
193
+ }
194
+ return lnkVal;
195
+ }
196
+ isNull(idx) {
197
+ if (this._nullFlags == null)
198
+ return false;
199
+ return this._nullFlags[idx];
200
+ }
201
+ AddReference() {
202
+ this._refCount++;
203
+ }
204
+ RemoveReference() {
205
+ this._refCount--;
206
+ if (this._refCount < 0) {
207
+ throw new ApplicationException("in dcVals.decrease() references count is less than zero");
208
+ }
209
+ }
210
+ ToString() {
211
+ return NString.Format("{{DCValues 0x{0:X8}, {1} refs}}", this._id, this._refCount);
212
+ }
213
+ }
214
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGNWYWx1ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvc3JjL21hbmFnZW1lbnQvZGF0YS9EY1ZhbHVlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFDLGdCQUFnQixFQUFFLE9BQU8sRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzNELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFDcEMsT0FBTyxFQUFDLG9CQUFvQixFQUFFLE9BQU8sRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25FLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFHeEMsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFXLENBQUMsQ0FBQyxDQUFDO0FBQ3RDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBVyxZQUFZLENBQUMsaUJBQWlCLENBQUM7QUFHaEUsTUFBTSxPQUFPLFFBQVE7SUFxQm5CLFlBQVksS0FBYztRQWxCbEIsUUFBRyxHQUFXLENBQUMsQ0FBQztRQUNoQixVQUFLLEdBQXFCLGdCQUFnQixDQUFDLElBQUksQ0FBQztRQUNoRCxjQUFTLEdBQVcsQ0FBQyxDQUFDO1FBQ3RCLGVBQVUsR0FBYyxJQUFJLENBQUM7UUFDN0IsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFDaEMsYUFBUSxHQUFlLElBQUksQ0FBQztRQUM1QixjQUFTLEdBQWEsSUFBSSxDQUFDO1FBQzNCLGNBQVMsR0FBYSxJQUFJLENBQUM7UUFZakMsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsR0FBRyxHQUFHLFdBQVcsQ0FBQztTQUN4QjtRQUNELElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQzlCLENBQUM7SUFkRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxTQUFTLEdBQUcs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QyxTQUFTLEdBQUcsQ0FBQyxFQUFFO1lBQ3RCLE1BQU0sSUFBSSxvQkFBb0IsQ0FBQyx5REFBeUQsQ0FBQyxDQUFDO1NBQzNGO0lBQ0gsQ0FBQztJQUtELFFBQVE7UUFDTixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsaUNBQWlDLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDckYsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJUmVmZXJlbmNlZE9iamVjdH0gZnJvbSBcIi4vSVJlZmVyZW5jZWRPYmplY3RcIjtcclxuaW1wb3J0IHtHdWlDb25zdGFudHN9IGZyb20gXCIuLi8uLi9HdWlDb25zdGFudHNcIjtcclxuaW1wb3J0IHtTdG9yYWdlQXR0cmlidXRlLCBTdHJVdGlsfSBmcm9tIFwiQG1hZ2ljLXhwYS91dGlsc1wiO1xyXG5pbXBvcnQge05VTV9UWVBFfSBmcm9tIFwiLi9OVU1fVFlQRVwiO1xyXG5pbXBvcnQge0FwcGxpY2F0aW9uRXhjZXB0aW9uLCBOU3RyaW5nfSBmcm9tIFwiQG1hZ2ljLXhwYS9tc2NvcmVsaWJcIjtcclxuaW1wb3J0IHtWZWN0b3JUeXBlfSBmcm9tIFwiLi9WZWN0b3JUeXBlXCI7XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IEVNUFRZX0RDUkVGOiBudW1iZXIgPSAtMjtcclxuZXhwb3J0IGNvbnN0IE5PVF9GT1VORDogbnVtYmVyID0gR3VpQ29uc3RhbnRzLkRFRkFVTFRfVkFMVUVfSU5UO1xyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBEY1ZhbHVlcyBpbXBsZW1lbnRzIElSZWZlcmVuY2VkT2JqZWN0IHtcclxuXHJcblxyXG4gIHByaXZhdGUgX2lkOiBudW1iZXIgPSAwO1xyXG4gIHByaXZhdGUgX3R5cGU6IFN0b3JhZ2VBdHRyaWJ1dGUgPSBTdG9yYWdlQXR0cmlidXRlLk5PTkU7IC8vIEFscGhhIHwgTnVtZXJpYyB8IERhdGUgfCBUaW1lIHwgTG9naWNhbFxyXG4gIHByaXZhdGUgX3JlZkNvdW50OiBudW1iZXIgPSAwOyAvLyByZWZlcmVuY2VzIGNvdW50ZXJcclxuICBwcml2YXRlIF9udWxsRmxhZ3M6IGJvb2xlYW5bXSA9IG51bGw7IC8vIGxpbmtlZCBudWxsIHZhbHVlIGZsYWdzXHJcbiAgcHJpdmF0ZSBfaXNOdW1lcmljVHlwZTogYm9vbGVhbiA9IGZhbHNlOyAvLyB0cnVlIGlmIHRoZSB0eXBlIGlzIG9uZSBvZjogbnVtZXJpYywgZGF0ZSwgdGltZVxyXG4gIHByaXZhdGUgX251bVZhbHM6IE5VTV9UWVBFW10gPSBudWxsOyAvLyBudW1lcmljIGxpbmtlZCB2YWx1ZXNcclxuICBwcml2YXRlIF9saW5rVmFsczogc3RyaW5nW10gPSBudWxsOyAvLyBsaW5rZWQgdmFsdWVzXHJcbiAgcHJpdmF0ZSBfZGlzcFZhbHM6IHN0cmluZ1tdID0gbnVsbDsgLy8gZGlzcGxheSB2YWx1ZXNcclxuXHJcbiAgZ2V0IEhhc1JlZmVyZW5jZXMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVmQ291bnQgPiAwO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vL1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiZW1wdHlcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImlzVmVjdG9yXCI+PC9wYXJhbT5cclxuICBjb25zdHJ1Y3RvcihlbXB0eTogYm9vbGVhbikge1xyXG4gICAgaWYgKGVtcHR5KSB7XHJcbiAgICAgIHRoaXMuX2lkID0gRU1QVFlfRENSRUY7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9pc051bWVyaWNUeXBlID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIFJldHVybnMgdGhlIGF0dHIgb2YgRGNWYWx1ZXNcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIEdldEF0dHIoKTogU3RvcmFnZUF0dHJpYnV0ZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdHlwZTtcclxuICB9XHJcblxyXG4gIHNldFR5cGUodHlwZTogU3RvcmFnZUF0dHJpYnV0ZSk6IHZvaWQge1xyXG4gICAgdGhpcy5fdHlwZSA9IHR5cGU7XHJcbiAgICBpZiAodGhpcy5fdHlwZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5NRU1PKVxyXG4gICAgICB0aGlzLl90eXBlID0gU3RvcmFnZUF0dHJpYnV0ZS5BTFBIQTtcclxuICAgIGlmICh0aGlzLl90eXBlID09PSBTdG9yYWdlQXR0cmlidXRlLk5VTUVSSUMgfHwgdGhpcy5fdHlwZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5EQVRFIHx8XHJcbiAgICAgIHRoaXMuX3R5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuVElNRSkge1xyXG4gICAgICB0aGlzLl9pc051bWVyaWNUeXBlID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIFNldElEKG5ld0lkOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuX2lkID0gbmV3SWQ7XHJcbiAgfVxyXG5cclxuICBTZXREaXNwbGF5VmFsdWVzKGRpc3BsYXlWYWx1ZXM6IHN0cmluZ1tdKTogdm9pZCB7XHJcbiAgICBpZiAoZGlzcGxheVZhbHVlcyAhPT0gbnVsbClcclxuICAgICAgdGhpcy5fZGlzcFZhbHMgPSBkaXNwbGF5VmFsdWVzLnNsaWNlKCk7XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMuX2Rpc3BWYWxzID0gbnVsbDtcclxuICB9XHJcblxyXG4gIFNldExpbmtWYWx1ZXMobGlua1ZhbHVlczogc3RyaW5nW10pOiB2b2lkIHtcclxuICAgIGlmIChsaW5rVmFsdWVzICE9PSBudWxsKVxyXG4gICAgICB0aGlzLl9saW5rVmFscyA9IGxpbmtWYWx1ZXMuc2xpY2UoKTtcclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5fbGlua1ZhbHMgPSBudWxsO1xyXG5cclxuICAgIHRoaXMuc2V0TnVtZXJpY1ZhbHMoKTtcclxuICB9XHJcblxyXG4gIHNldE51bGxGbGFncyhudWxsRmxhZ3M6IGJvb2xlYW5bXSk6IHZvaWQge1xyXG4gICAgaWYgKG51bGxGbGFncyAhPT0gbnVsbClcclxuICAgICAgdGhpcy5fbnVsbEZsYWdzID0gbnVsbEZsYWdzLnNsaWNlKCk7XHJcblxyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLl9udWxsRmxhZ3MgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXROdW1lcmljVmFscygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9pc051bWVyaWNUeXBlICYmIHRoaXMuX2xpbmtWYWxzICE9PSBudWxsKSB7XHJcbiAgICAgIHRoaXMuX251bVZhbHMgPSBuZXcgQXJyYXk8TlVNX1RZUEU+KHRoaXMuX2xpbmtWYWxzLmxlbmd0aCk7XHJcbiAgICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCB0aGlzLl9saW5rVmFscy5sZW5ndGg7IGkgPSBpICsgMSkge1xyXG4gICAgICAgIHRoaXMuX251bVZhbHNbaV0gPSBuZXcgTlVNX1RZUEUodGhpcy5fbGlua1ZhbHNbaV0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5fbnVtVmFscyA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyB0aGUgaWQgb2YgdGhpcyBkY1ZhbHMgb2JqZWN0XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBnZXRJZCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lkO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybiB0aGUgZGlzcGxheSB2YWx1ZXNcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldERpc3BWYWxzKCk6IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiB0aGlzLl9kaXNwVmFscztcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gcmV0dXJuIExpbmsgZmllbGQgdmFsdWVzLlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgR2V0TGlua1ZhbHMoKTogc3RyaW5nW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xpbmtWYWxzO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgdGhlIGFycmF5IG9mIGluZGljZSBmb3IgYW4gaXRlbSBpbiB0aGUgbGlzdCBieSBjb21wYXJpbmcgdGhlIG1nVmFsIHRvIHRoZSBsaW5rZWQgdmFsdWUgb3IgKC0xKSBpZiBub25lIHdhc1xyXG4gIC8vLyAgIGZvdW5kXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcIm1nVmFsXCI+dGhlIGludGVybmFsIHZhbHVlIHRvIGxvb2sgZm9yIDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJpc1ZlY3RvclZhbHVlXCI+RGVub3RlcyB3aGV0aGVyIHRoZSB2YWx1ZSBpbiBtZ1ZhbCBzaG91bGQgYmUgdHJlYXRlZCBhcyBhIHZlY3RvciAodHJ1ZSkgb3Igbm90IChmYWxzZSkuPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImlzTnVsbFwiPnRydWUgaWYgdGhlIHZhbHVlIHRvIGxvb2sgZm9yIGlzIG51bGwgPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImV4dHJhVmFsc1wiPkFkZGl0aW9uYWwgdmFsdWVzLCBwcmVwZW5kZWQgdG8gdGhlIHNlYXJjaGVkIHZhbHVlcy48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImV4dHJhTnVtc1wiPkFkZGl0aW9uYWwgbnVtZXJpYyB2YWx1ZXMgdG8gYmUgcHJlcGVuZGVkIHRvIHRoZSBzZWFyY2hlZCB2YWx1ZXMuPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInNwbGl0Q29tbWFTZXBlcmF0ZWRWYWxzXCI+dG8gc3BsaXQgdGhlIHZhbCBvbiBjb21tYSBvciBub3QgPC9wYXJhbT5cclxuICBnZXRJbmRleE9mKG1nVmFsOiBzdHJpbmcsIGlzVmVjdG9yVmFsdWU6IGJvb2xlYW4sIGlzTnVsbDogYm9vbGVhbiwgZXh0cmFWYWxzOiBzdHJpbmdbXSwgZXh0cmFOdW1zOiBOVU1fVFlQRVtdLCBzcGxpdENvbW1hU2VwZXJhdGVkVmFsczogYm9vbGVhbik6IG51bWJlcltdIHtcclxuICAgIGxldCByZXN1bHQ6IG51bWJlciA9IE5PVF9GT1VORDtcclxuXHJcbiAgICBsZXQgdG1wTWdWYWw6IHN0cmluZztcclxuICAgIGxldCBjdHJsTnVtVmFsOiBOVU1fVFlQRTtcclxuICAgIGxldCB0cmltbWVkVmFsOiBzdHJpbmc7XHJcbiAgICBsZXQgdmFsczogc3RyaW5nW10gPSBudWxsO1xyXG4gICAgbGV0IG51bXM6IE5VTV9UWVBFW10gPSBudWxsO1xyXG4gICAgbGV0IG9mZnNldDogbnVtYmVyID0gMDtcclxuICAgIGxldCBmaXJzdEZpdE1hdGNoSWR4O1xyXG4gICAgbGV0IGZpcnN0Rml0TWF0Y2hMZW5ndGg6IG51bWJlciA9IC0xO1xyXG4gICAgbGV0IG1pbkxlbmd0aDogbnVtYmVyID0gLTE7XHJcbiAgICBsZXQgY29tcFN0cjogc3RyaW5nID0gXCJcIjtcclxuICAgIGxldCBpbmRpY2U6IG51bWJlcltdID0gbnVsbDtcclxuICAgIGxldCB2YWx1ZXM6IHN0cmluZ1tdID0gbnVsbDtcclxuXHJcbiAgICBpZiAoaXNOdWxsKSB7XHJcbiAgICAgIGxldCBpOiBudW1iZXIgPSAwO1xyXG4gICAgICBpbmRpY2UgPSBbXHJcbiAgICAgICAgTk9UX0ZPVU5EXHJcbiAgICAgIF07XHJcbiAgICAgIGZvciAoaSA9IDA7IHRoaXMuX251bGxGbGFncyAhPT0gbnVsbCAmJiBpIDwgdGhpcy5fbnVsbEZsYWdzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX251bGxGbGFnc1tpXSkge1xyXG4gICAgICAgICAgaW5kaWNlWzBdID0gaTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIGluZGljZTtcclxuICAgIH1cclxuICAgIGlmICghaXNWZWN0b3JWYWx1ZSkge1xyXG4gICAgICAvLyBzcGxpdCB0aGUgY29tbWEgc2VwYXJhdGVkIHZhbHVlcztcclxuICAgICAgaWYgKHNwbGl0Q29tbWFTZXBlcmF0ZWRWYWxzKSB7XHJcbiAgICAgICAgdmFsdWVzID0gbWdWYWwuc3BsaXQoJywnKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB2YWx1ZXMgPSBbXHJcbiAgICAgICAgICBtZ1ZhbFxyXG4gICAgICAgIF07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBsZXQgdmVjdG9yVHlwZTogVmVjdG9yVHlwZSA9IG5ldyBWZWN0b3JUeXBlKG1nVmFsKTtcclxuICAgICAgdmFsdWVzID0gdmVjdG9yVHlwZS5HZXRDZWxsVmFsdWVzKCk7XHJcbiAgICB9XHJcbiAgICBpbmRpY2UgPSBuZXcgQXJyYXk8bnVtYmVyPih2YWx1ZXMubGVuZ3RoKTtcclxuXHJcbiAgICBmb3IgKGxldCBpQ3RyOiBudW1iZXIgPSAwOyBpQ3RyIDwgdmFsdWVzLmxlbmd0aDsgaUN0ciA9IGlDdHIgKyAxKSB7XHJcbiAgICAgIHJlc3VsdCA9IE5PVF9GT1VORDtcclxuICAgICAgZmlyc3RGaXRNYXRjaElkeCA9IE5PVF9GT1VORDtcclxuXHJcbiAgICAgIHRtcE1nVmFsID0gdmFsdWVzW2lDdHJdO1xyXG5cclxuICAgICAgaWYgKHRoaXMuX2lzTnVtZXJpY1R5cGUgfHwgZXh0cmFOdW1zICE9PSBudWxsKSB7XHJcbiAgICAgICAgICBjdHJsTnVtVmFsID0gbmV3IE5VTV9UWVBFKHRtcE1nVmFsKTtcclxuICAgICAgICB0cmltbWVkVmFsID0gdG1wTWdWYWw7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgY3RybE51bVZhbCA9IG51bGw7XHJcbiAgICAgICAgdHJpbW1lZFZhbCA9IFN0clV0aWwucnRyaW0odG1wTWdWYWwpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBSdW4gdHdvIHBhc3Nlcy4gRmlyc3Qgb25lIG9uIGV4dHJhIHZhbHVlcywgc2Vjb25kIG9uZSBvbiB2YWx1ZXMgYmVsb25naW5nIHRvIHRoaXMgb2JqZWN0XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMiAmJiByZXN1bHQgPT09IE5PVF9GT1VORDsgaSsrKSB7XHJcbiAgICAgICAgc3dpdGNoIChpKSB7XHJcbiAgICAgICAgICBjYXNlIDA6XHJcbiAgICAgICAgICAgIHZhbHMgPSBleHRyYVZhbHM7XHJcbiAgICAgICAgICAgIG51bXMgPSBleHRyYU51bXM7XHJcbiAgICAgICAgICAgIG9mZnNldCA9IDA7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgIGNhc2UgMTpcclxuICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9pc051bWVyaWNUeXBlIHx8IG51bXMgIT0gbnVsbClcclxuICAgICAgICAgICAgICBvZmZzZXQgPSAobnVtcyA9PSBudWxsID8gMCA6IG51bXMubGVuZ3RoKTtcclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgIG9mZnNldCA9ICh2YWxzID09IG51bGwgPyAwIDogdmFscy5sZW5ndGgpO1xyXG4gICAgICAgICAgICB2YWxzID0gdGhpcy5fbGlua1ZhbHM7XHJcbiAgICAgICAgICAgIG51bXMgPSB0aGlzLl9udW1WYWxzO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh2YWxzICE9IG51bGwpIHtcclxuICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdmFscy5sZW5ndGggJiYgcmVzdWx0ID09PSBOT1RfRk9VTkQ7IGorKykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5faXNOdW1lcmljVHlwZSB8fCBudW1zICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICBpZiAoTlVNX1RZUEUubnVtX2NtcChjdHJsTnVtVmFsLCBudW1zW2pdKSA9PT0gMCB8fCB0bXBNZ1ZhbCA9PT0gdmFsc1tqXSB8fFxyXG4gICAgICAgICAgICAgICAgdG1wTWdWYWwgPT09IHZhbHNbal0pIHtcclxuICAgICAgICAgICAgICAgIC8vIHRoZSBudW1lcmljIHR5cGUgaXMgZm91bmQgZXhhY3RseVxyXG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gaiArIG9mZnNldDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICBpZiAodmFsc1tqXSA9PT0gdG1wTWdWYWwgfHwgdHJpbW1lZFZhbC5sZW5ndGggPiAwICYmIFN0clV0aWwucnRyaW0odmFsc1tqXSkgPT09IHRyaW1tZWRWYWwpIHtcclxuICAgICAgICAgICAgICAgIHJlc3VsdCA9IGogKyBvZmZzZXQ7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgIC8vIElmIE1hZ2ljIHNlbnQgdXMgYSBibGFuayB2YWx1ZSwgYW5kIHN1Y2ggYSB2YWx1ZSBleGlzdHMgaW4gdGhlIFwibm9uIERDIHJhbmdlXCIgc2VsZWN0IGl0LlxyXG4gICAgICAgICAgICAgIC8vIFFDUiAjIDc1MTAzNyAtIHNlYXJjaCBmb3IgYmxhbmsgdmFsdWVzIGV2ZW4gaW4gdGhlIGxpbmtlZCB2YWx1ZXMgYXJyYXkgb2YgdGhlIGRhdGEgY29udHJvbFxyXG4gICAgICAgICAgICAgIGlmICh0cmltbWVkVmFsLmxlbmd0aCA9PT0gMCAmJiBTdHJVdGlsLnJ0cmltKHZhbHNbal0pLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gaiArIG9mZnNldDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgLy8gc2F2ZSB0aGUgZmlyc3QgZml0dGluZyByZXN1bHRcclxuICAgICAgICAgICAgICAvLyBmaXhlZCBidWcjOiA5MzUwMTUsIHRoZSBjb21wYXJpc29uIHdpbGwgYmUgYWNjb3JkaW5nIHRvIHRoZSBtaW4gbGVuZ3RoIG9mIHRoZSBkYXRhICYgdGhlIG9wdGlvbnNcclxuICAgICAgICAgICAgICBpZiAocmVzdWx0ID09PSBOT1RfRk9VTkQgJiYgdHJpbW1lZFZhbC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICBtaW5MZW5ndGggPSBNYXRoLm1pbih0cmltbWVkVmFsLmxlbmd0aCwgdmFsc1tqXS5sZW5ndGgpO1xyXG4gICAgICAgICAgICAgICAgY29tcFN0ciA9IHRyaW1tZWRWYWwuc3Vic3RyKDAsIG1pbkxlbmd0aCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoY29tcFN0ci5sZW5ndGggPiAwICYmIHZhbHNbal0uc3RhcnRzV2l0aChjb21wU3RyKSkge1xyXG4gICAgICAgICAgICAgICAgICAvLyBpZiB0aGVyZSBpcyBhIG1pbiBsZW5ndGggbWF0Y2gsIGNoZWNrIGlmIGl0IGlzIHRoZSBmaXJzdCBmaXQgbWF0Y2guXHJcbiAgICAgICAgICAgICAgICAgIC8vIGVnOiBpZiBsaXN0IGhhcyBhLGFhYSxhYWFhYSBhbmQgZmllbGQgdmFsdWUgaXMgJ2FhJyB0aGVuIGZpcnN0IGZpdCBtYXRjaCBpcyAnYWFhJy5cclxuICAgICAgICAgICAgICAgICAgLy8gaWYgbGlzdCBpcyBhLGFhYWFhLGFhYSBhbmQgZmllbGQgdmFsdWUgaXMgJ2FhJyB0aGVuIGZpcnN0IGZpdCBtYXRjaCBpcyAnYWFhYWEnLlxyXG4gICAgICAgICAgICAgICAgICAvLyBpZiBmaXJzdCBmaXQgbm90IGZvdW5kLCB0aGVuIGNsb3Nlc3QgbWF0Y2ggaXMgdXNlZCAoZWctIGlmIGZpZWxkIHZhbHVlIGlzXHJcbiAgICAgICAgICAgICAgICAgIC8vICdhYWFhYWFhYWEnIGluIGJvdGggdGhlIGFib3ZlIGxpc3QsIGNsb3Nlc3QgbWF0Y2ggd291bGQgYmUgJ2FhYWFhJykuXHJcbiAgICAgICAgICAgICAgICAgIGlmIChtaW5MZW5ndGggPiBmaXJzdEZpdE1hdGNoTGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZmlyc3RGaXRNYXRjaElkeCA9IGogKyBvZmZzZXQ7XHJcbiAgICAgICAgICAgICAgICAgICAgZmlyc3RGaXRNYXRjaExlbmd0aCA9IG1pbkxlbmd0aDtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHJlc3VsdCA9PT0gTk9UX0ZPVU5EKVxyXG4gICAgICAgIHJlc3VsdCA9IGZpcnN0Rml0TWF0Y2hJZHg7XHJcblxyXG4gICAgICAvLyBzdG9yZSBpbmRpY2UgZm91bmQgaW4gaW50ZWdlciBhcnJheS5cclxuICAgICAgaW5kaWNlW2lDdHJdID0gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBpbmRpY2U7XHJcbiAgfVxyXG5cclxuLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGdldHMgdGhlIHZhbHVlIG9mIGEgc3BlY2lmaWMgbGluayBpdGVtXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImlkeFwiPnRoZSBpbmRleCBvZiB0aGUgbGluayB2YWx1ZSAoMCA9IGZpcnN0IGl0ZW0pIDwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPiBNYWdpYyB2YWx1ZSBvZiB0aGUgaXRlbSA8L3JldHVybnM+XHJcbiAgZ2V0TGlua1ZhbHVlKGlkeDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGxldCBsbmtWYWw6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gICAgaWYgKHRoaXMuX2xpbmtWYWxzICE9PSBudWxsKSB7XHJcbiAgICAgIGxua1ZhbCA9IHRoaXMuX2xpbmtWYWxzW2lkeF07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGxua1ZhbDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm5zIHRydWUsIGlmIHZhbHVlIGF0IGluZGV4IGlkeCBpcyBudWxsXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInRoZVwiPmluZGV4IG9mIGFuIGl0ZW0gaW4gdGhlIGxpc3QgPC9wYXJhbT5cclxuICBpc051bGwoaWR4OiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLl9udWxsRmxhZ3MgPT0gbnVsbClcclxuICAgIC8vIGhhcHBlbnMgZm9yIG5vbi1EQyBjaG9pY2UgY29udHJvbHNcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgIHJldHVybiB0aGlzLl9udWxsRmxhZ3NbaWR4XTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBpbmNyZWFzZSB0aGUgcmVmZXJlbmNlcyBjb3VudCBieSAxXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBBZGRSZWZlcmVuY2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9yZWZDb3VudCsrO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGRlY3JlYXNlIHRoZSByZWZlcmVuY2VzIGNvdW50IGJ5IDFcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIFJlbW92ZVJlZmVyZW5jZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3JlZkNvdW50LS07XHJcbiAgICBpZiAodGhpcy5fcmVmQ291bnQgPCAwKSB7XHJcbiAgICAgIHRocm93IG5ldyBBcHBsaWNhdGlvbkV4Y2VwdGlvbihcImluIGRjVmFscy5kZWNyZWFzZSgpIHJlZmVyZW5jZXMgY291bnQgaXMgbGVzcyB0aGFuIHplcm9cIik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyB0cnVlIGlmIHRoZSByZWZlcmVuY2VzIGNvdW50IGlzIHplcm9cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIFRvU3RyaW5nKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gTlN0cmluZy5Gb3JtYXQoXCJ7e0RDVmFsdWVzIDB4ezA6WDh9LCB7MX0gcmVmc319XCIsIHRoaXMuX2lkLCB0aGlzLl9yZWZDb3VudCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,97 @@
1
+ import { DcValues } from './DcValues';
2
+ import { List, NNumber, NumberStyles, StringBuilder } from '@magic-xpa/mscorelib';
3
+ import { Base64, StorageAttribute } from '@magic-xpa/utils';
4
+ import { RecordUtils } from './RecordUtils';
5
+ import { GuiEnvironment } from '../../GuiEnvironment';
6
+ export class DcValuesBuilderBase {
7
+ CreateDcValues() {
8
+ return new DcValues(false);
9
+ }
10
+ SetId(dcValues, newId) {
11
+ dcValues.SetID(newId);
12
+ }
13
+ SetType(dcValues, type) {
14
+ dcValues.setType(type);
15
+ }
16
+ SetDisplayValues(dcValues, displayValues) {
17
+ dcValues.SetDisplayValues(displayValues);
18
+ }
19
+ SetLinkValues(dcValues, linkValues) {
20
+ dcValues.SetLinkValues(linkValues);
21
+ }
22
+ SetNullFlags(dcValues, nullFlagsStringOrNullFlags) {
23
+ if (arguments.length === 2 && (dcValues === null || dcValues instanceof DcValues) && (nullFlagsStringOrNullFlags === null || nullFlagsStringOrNullFlags.constructor === String)) {
24
+ this.SetNullFlags_0(dcValues, nullFlagsStringOrNullFlags);
25
+ return;
26
+ }
27
+ this.SetNullFlags_1(dcValues, nullFlagsStringOrNullFlags);
28
+ }
29
+ SetNullFlags_0(dcValues, nullFlagsString) {
30
+ let nullFlags = this.ParseNullFlags(nullFlagsString);
31
+ dcValues.setNullFlags(nullFlags);
32
+ }
33
+ SetNullFlags_1(dcValues, nullFlags) {
34
+ dcValues.setNullFlags(nullFlags);
35
+ }
36
+ ParseValues(valueStr, dataType, useHex) {
37
+ let snumber;
38
+ let tmpValue = null;
39
+ let buffer = new List();
40
+ let array;
41
+ let len;
42
+ let nextIdx;
43
+ let endIdx;
44
+ let suffixBuf = null;
45
+ switch (dataType) {
46
+ case StorageAttribute.NUMERIC:
47
+ case StorageAttribute.DATE:
48
+ case StorageAttribute.TIME:
49
+ if (useHex)
50
+ len = GuiEnvironment.Environment.GetSignificantNumSize() * 2;
51
+ else
52
+ len = Math.floor((GuiEnvironment.Environment.GetSignificantNumSize() + 2) / 3) * 4;
53
+ break;
54
+ case StorageAttribute.BOOLEAN:
55
+ len = 1;
56
+ break;
57
+ default:
58
+ len = 0;
59
+ break;
60
+ }
61
+ nextIdx = 0;
62
+ while (nextIdx < valueStr.length) {
63
+ if (dataType === StorageAttribute.ALPHA || dataType === StorageAttribute.UNICODE ||
64
+ dataType === StorageAttribute.BLOB || dataType === StorageAttribute.BLOB_VECTOR) {
65
+ snumber = valueStr.substr(nextIdx, 4);
66
+ len = NNumber.Parse(snumber, NumberStyles.HexNumber);
67
+ nextIdx += 4;
68
+ }
69
+ if (len >= 0x8000) {
70
+ suffixBuf = new StringBuilder();
71
+ len -= 0x8000;
72
+ nextIdx += RecordUtils.getSpannedField(valueStr, len, nextIdx, dataType, suffixBuf, useHex);
73
+ buffer.push(suffixBuf.ToString());
74
+ }
75
+ else {
76
+ endIdx = nextIdx + len;
77
+ if (useHex)
78
+ tmpValue = valueStr.substr(nextIdx, (endIdx) - (nextIdx));
79
+ else
80
+ tmpValue = Base64.decodeToHex(valueStr.substr(nextIdx, (endIdx) - (nextIdx)));
81
+ buffer.push(tmpValue);
82
+ nextIdx = endIdx;
83
+ }
84
+ }
85
+ return buffer.ToArray();
86
+ }
87
+ ParseNullFlags(nullFlagsString) {
88
+ let array = new Array(nullFlagsString.length);
89
+ for (let i = 0; i < nullFlagsString.length; i = i + 1) {
90
+ array[i] = (nullFlagsString.charAt(i) !== '0');
91
+ }
92
+ return array;
93
+ }
94
+ constructor() {
95
+ }
96
+ }
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGNWYWx1ZXNCdWlsZGVyQmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2d1aS9zcmMvbWFuYWdlbWVudC9kYXRhL0RjVmFsdWVzQnVpbGRlckJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUNwQyxPQUFPLEVBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEYsT0FBTyxFQUFDLE1BQU0sRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzFELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBdUJwRCxNQUFNLE9BQWdCLG1CQUFtQjtJQUl2QyxjQUFjO1FBQ1osT0FBTyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQWtCLEVBQUUsS0FBYTtRQUNyQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxPQUFPLENBQUMsUUFBa0IsRUFBRSxJQUFzQjtRQUNoRCxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxRQUFrQixFQUFFLGFBQXVCO1FBQzFELFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsYUFBYSxDQUFDLFFBQWtCLEVBQUUsVUFBb0I7UUFDcEQsUUFBUSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBSUQsWUFBWSxDQUFDLFFBQWtCLEVBQUUsMEJBQStCO1FBQzlELElBQUksU0FB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RSxDQUFDLENBQUM7YUFDbkM7aUJBQ0k7Z0JBQ0gsTUFBTSxHQUFHLE9BQU8sR0FBRyxHQUFHLENBQUM7Z0JBQ3ZCLElBQUksTUFBTTtvQkFDUixRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7O29CQUUxRCxRQUFRLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUtoRixNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN0QixPQUFPLEdBQUcsTUFBTSxDQUFDO2FBQ2xCO1NBQ0Y7UUFHRCxPQUFPLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsY0FBYyxDQUFDLGVBQXVCO1FBQ3BDLElBQUksS0FBSyxHQUFjLElBQUksS0FBSyxDQUFVLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsRSxLQUFLLElBQUksQ0FBQyxHQUFXLENBQUMsRUFBRSxDQUFDLEdBQUcsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUM3RCxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBUSxDQUFDO1NBQ3ZEO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQ7SUFDQSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RjVmFsdWVzfSBmcm9tICcuL0RjVmFsdWVzJztcclxuaW1wb3J0IHtMaXN0LCBOTnVtYmVyLCBOdW1iZXJTdHlsZXMsIFN0cmluZ0J1aWxkZXJ9IGZyb20gJ0BtYWdpYy14cGEvbXNjb3JlbGliJztcclxuaW1wb3J0IHtCYXNlNjQsIFN0b3JhZ2VBdHRyaWJ1dGV9IGZyb20gJ0BtYWdpYy14cGEvdXRpbHMnO1xyXG5pbXBvcnQge1JlY29yZFV0aWxzfSBmcm9tICcuL1JlY29yZFV0aWxzJztcclxuaW1wb3J0IHtHdWlFbnZpcm9ubWVudH0gZnJvbSAnLi4vLi4vR3VpRW52aXJvbm1lbnQnO1xyXG5cclxuLy8vIDxzdW1tYXJ5PlxyXG4vLy8gQmFzZSBjbGFzcyBmb3IgRGNWYWx1ZXMgYnVpbGRlci4gVGhlIGNsYXNzIGlzIGFic3RyYWN0IGFuZCwgdGh1cywgbXVzdCBiZSBpbmhlcml0ZWQuXHJcbi8vLyBUaGUgaW5oZXJpdGluZyBjbGFzcywgd2hpY2ggd2lsbCB1c3VhbGx5IGJlIGluIGFub3RoZXIgcGFja2FnZSwgd2lsbCBub3QgYmUgYWJsZSB0byBtb2RpZnlcclxuLy8vIGEgRGNWYWx1ZXMgb2JqZWN0IGRpcmVjdGx5LCBzaW5jZSBhbGwgaXRzIHNldHRlciBtZXRob2RzIGFyZSAnaW50ZXJuYWwnLiBUaGlzIGNsYXNzIHdpbGxcclxuLy8vIHByb3ZpZGUgdGhlIHNldHRlciBtZXRob2RzIGZvciB0aGUgaW5oZXJpdGluZyBidWlsZGVyLlxyXG4vLy8gPHBhcmE+SGVyZSdzIGEgdXNhZ2UgZXhhbXBsZTpcclxuLy8vIDxleGFtcGxlPlxyXG4vLy8gY2xhc3MgTXlDb25jcmV0ZUJ1aWxkZXIgOiBEY1ZhbHVlc0J1aWxkZXJCYXNlXHJcbi8vLyB7XHJcbi8vLyAgIHB1YmxpYyBvdmVycmlkZSBEY1ZhbHVlcyBCdWlsZCgpXHJcbi8vLyAgIHtcclxuLy8vICAgICAgdmFyIGRjVmFsdWVzID0gYmFzZS5DcmVhdGVEY1ZhbHVlcyhmYWxzZSk7XHJcbi8vLyAgICAgIFNldElkKG5ld0lkKTtcclxuLy8vICAgICAgU2V0VHlwZSh0aGVUeXBlKTtcclxuLy8vICAgICAgU2V0RGlzcGxheVZhbHVlcyh0aGVEaXNwbGF5VmFsdWVzKTtcclxuLy8vICAgICAgLi4uXHJcbi8vLyAgICAgIHJldHVybiBkY1ZhbHVlcztcclxuLy8vICAgfVxyXG4vLy8gfVxyXG4vLy8gPC9leGFtcGxlPlxyXG4vLy8gPC9zdW1tYXJ5PlxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGNWYWx1ZXNCdWlsZGVyQmFzZSB7XHJcblxyXG4gIGFic3RyYWN0IEJ1aWxkKCk6IERjVmFsdWVzO1xyXG5cclxuICBDcmVhdGVEY1ZhbHVlcygpOiBEY1ZhbHVlcyB7XHJcbiAgICByZXR1cm4gbmV3IERjVmFsdWVzKGZhbHNlKTtcclxuICB9XHJcblxyXG4gIFNldElkKGRjVmFsdWVzOiBEY1ZhbHVlcywgbmV3SWQ6IG51bWJlcik6IHZvaWQge1xyXG4gICAgZGNWYWx1ZXMuU2V0SUQobmV3SWQpO1xyXG4gIH1cclxuXHJcbiAgU2V0VHlwZShkY1ZhbHVlczogRGNWYWx1ZXMsIHR5cGU6IFN0b3JhZ2VBdHRyaWJ1dGUpOiB2b2lkIHtcclxuICAgIGRjVmFsdWVzLnNldFR5cGUodHlwZSk7XHJcbiAgfVxyXG5cclxuICBTZXREaXNwbGF5VmFsdWVzKGRjVmFsdWVzOiBEY1ZhbHVlcywgZGlzcGxheVZhbHVlczogc3RyaW5nW10pOiB2b2lkIHtcclxuICAgIGRjVmFsdWVzLlNldERpc3BsYXlWYWx1ZXMoZGlzcGxheVZhbHVlcyk7XHJcbiAgfVxyXG5cclxuICBTZXRMaW5rVmFsdWVzKGRjVmFsdWVzOiBEY1ZhbHVlcywgbGlua1ZhbHVlczogc3RyaW5nW10pOiB2b2lkIHtcclxuICAgIGRjVmFsdWVzLlNldExpbmtWYWx1ZXMobGlua1ZhbHVlcyk7XHJcbiAgfVxyXG5cclxuICBTZXROdWxsRmxhZ3MoZGNWYWx1ZXM6IERjVmFsdWVzLCBudWxsRmxhZ3NTdHJpbmc6IHN0cmluZyk6IHZvaWQ7XHJcbiAgU2V0TnVsbEZsYWdzKGRjVmFsdWVzOiBEY1ZhbHVlcywgbnVsbEZsYWdzOiBib29sZWFuW10pOiB2b2lkO1xyXG4gIFNldE51bGxGbGFncyhkY1ZhbHVlczogRGNWYWx1ZXMsIG51bGxGbGFnc1N0cmluZ09yTnVsbEZsYWdzOiBhbnkpOiB2b2lkIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAyICYmIChkY1ZhbHVlcyA9PT0gbnVsbCB8fCBkY1ZhbHVlcyBpbnN0YW5jZW9mIERjVmFsdWVzKSAmJiAobnVsbEZsYWdzU3RyaW5nT3JOdWxsRmxhZ3MgPT09IG51bGwgfHwgbnVsbEZsYWdzU3RyaW5nT3JOdWxsRmxhZ3MuY29uc3RydWN0b3IgPT09IFN0cmluZykpIHtcclxuICAgICAgdGhpcy5TZXROdWxsRmxhZ3NfMChkY1ZhbHVlcywgbnVsbEZsYWdzU3RyaW5nT3JOdWxsRmxhZ3MpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLlNldE51bGxGbGFnc18xKGRjVmFsdWVzLCBudWxsRmxhZ3NTdHJpbmdPck51bGxGbGFncyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIFNldE51bGxGbGFnc18wKGRjVmFsdWVzOiBEY1ZhbHVlcywgbnVsbEZsYWdzU3RyaW5nOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGxldCBudWxsRmxhZ3M6IGJvb2xlYW5bXSA9IHRoaXMuUGFyc2VOdWxsRmxhZ3MobnVsbEZsYWdzU3RyaW5nKTtcclxuICAgIGRjVmFsdWVzLnNldE51bGxGbGFncyhudWxsRmxhZ3MpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBTZXROdWxsRmxhZ3NfMShkY1ZhbHVlczogRGNWYWx1ZXMsIG51bGxGbGFnczogYm9vbGVhbltdKTogdm9pZCB7XHJcbiAgICBkY1ZhbHVlcy5zZXROdWxsRmxhZ3MobnVsbEZsYWdzKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gUGFyc2UgYSBzZXJpYWxpemVkIHZhbHVlcyBzdHJpbmcgYXMgYW4gYXJyYXkgb2YgdmFsdWVzLlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwidmFsdWVTdHJcIj5UaGlzIGlzIHN0cmluZyBvZiB0aGUgY29uY2F0ZW5hdGVkIHZhbHVlcywgd2l0aCBlYWNoIHZhbHVlIHByZWNlZGVkIHdpdGggYSBoZXggbnVtYmVyIGRlbm90aW5nIGl0cyBsZW5ndGguPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJkYXRhVHlwZVwiPlRoZSBkYXRhIHR5cGUgb2YgdGhlIHZhbHVlcy48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInVzZUhleFwiPjwvcGFyYW0+XHJcbiAgcHJvdGVjdGVkIFBhcnNlVmFsdWVzKHZhbHVlU3RyOiBzdHJpbmcsIGRhdGFUeXBlOiBTdG9yYWdlQXR0cmlidXRlLCB1c2VIZXg6IGJvb2xlYW4pOiBzdHJpbmdbXSB7XHJcblxyXG4gICAgbGV0IHNudW1iZXI6IHN0cmluZztcclxuICAgIGxldCB0bXBWYWx1ZTogc3RyaW5nID0gbnVsbDtcclxuICAgIGxldCBidWZmZXI6IExpc3Q8c3RyaW5nPiA9IG5ldyBMaXN0PHN0cmluZz4oKTtcclxuICAgIGxldCBhcnJheTogc3RyaW5nW107XHJcbiAgICBsZXQgbGVuOiBudW1iZXI7XHJcbiAgICBsZXQgbmV4dElkeDogbnVtYmVyO1xyXG4gICAgbGV0IGVuZElkeDogbnVtYmVyO1xyXG4gICAgbGV0IHN1ZmZpeEJ1ZjogU3RyaW5nQnVpbGRlciA9IG51bGw7XHJcblxyXG4gICAgc3dpdGNoIChkYXRhVHlwZSkge1xyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuTlVNRVJJQzpcclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLkRBVEU6XHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5USU1FOlxyXG4gICAgICAgIGlmICh1c2VIZXgpXHJcbiAgICAgICAgICBsZW4gPSBHdWlFbnZpcm9ubWVudC5FbnZpcm9ubWVudC5HZXRTaWduaWZpY2FudE51bVNpemUoKSAqIDI7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgbGVuID0gTWF0aC5mbG9vcigoR3VpRW52aXJvbm1lbnQuRW52aXJvbm1lbnQuR2V0U2lnbmlmaWNhbnROdW1TaXplKCkgKyAyKSAvIDMpICogNDtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5CT09MRUFOOlxyXG4gICAgICAgIGxlbiA9IDE7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGxlbiA9IDA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcblxyXG4gICAgbmV4dElkeCA9IDA7XHJcbiAgICB3aGlsZSAobmV4dElkeCA8IHZhbHVlU3RyLmxlbmd0aCkge1xyXG4gICAgICAvLyBjb21wdXRlIHRoZSBsZW5ndGggb2YgYW4gYWxwaGEgZGF0YVxyXG4gICAgICBpZiAoZGF0YVR5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQUxQSEEgfHwgZGF0YVR5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuVU5JQ09ERSB8fFxyXG4gICAgICAgIGRhdGFUeXBlID09PSBTdG9yYWdlQXR0cmlidXRlLkJMT0IgfHwgZGF0YVR5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQkxPQl9WRUNUT1IpIHtcclxuICAgICAgICBzbnVtYmVyID0gdmFsdWVTdHIuc3Vic3RyKG5leHRJZHgsIDQpO1xyXG4gICAgICAgIGxlbiA9IE5OdW1iZXIuUGFyc2Uoc251bWJlciwgTnVtYmVyU3R5bGVzLkhleE51bWJlcik7XHJcbiAgICAgICAgbmV4dElkeCArPSA0O1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBjaGVjayBpZiB0aGUgZGF0YSBpcyBzcGFubmVkXHJcbiAgICAgIGlmIChsZW4gPj0gMHg4MDAwKSB7XHJcbiAgICAgICAgc3VmZml4QnVmID0gbmV3IFN0cmluZ0J1aWxkZXIoKTtcclxuICAgICAgICBsZW4gLT0gMHg4MDAwO1xyXG4gICAgICAgIC8vIG5leHQgc2VnbWVudCBtYXkgYWxzbyBiZSBzcGFubmVkXHJcbiAgICAgICAgbmV4dElkeCArPSBSZWNvcmRVdGlscy5nZXRTcGFubmVkRmllbGQodmFsdWVTdHIsIGxlbiwgbmV4dElkeCwgZGF0YVR5cGUsIHN1ZmZpeEJ1ZiwgdXNlSGV4KTtcclxuICAgICAgICBidWZmZXIucHVzaChzdWZmaXhCdWYuVG9TdHJpbmcoKSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgZW5kSWR4ID0gbmV4dElkeCArIGxlbjtcclxuICAgICAgICBpZiAodXNlSGV4KVxyXG4gICAgICAgICAgdG1wVmFsdWUgPSB2YWx1ZVN0ci5zdWJzdHIobmV4dElkeCwgKGVuZElkeCkgLSAobmV4dElkeCkpO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIHRtcFZhbHVlID0gQmFzZTY0LmRlY29kZVRvSGV4KHZhbHVlU3RyLnN1YnN0cihuZXh0SWR4LCAoZW5kSWR4KSAtIChuZXh0SWR4KSkpO1xyXG4gICAgICAgIC8vIHRoZSBmb2xsb3dpbmcgdHdvIGxpbmVzIGFyZSByZWR1bmRhbnQgc2luY2UgdGhlIG1ha2VQcmludGFibGUoKSBpcyBjYWxsZWRcclxuICAgICAgICAvLyBpbiB0aGUgZ3VpTWFuYWdlciB3aGVuIGJ1aWxkaW5nIHRoZSBvcHRpb25zXHJcbiAgICAgICAgLyppZiAoZGF0YVR5cGUgPT0gREFUQV9UWVBFX0FMUEhBKVxyXG4gICAgICAgICAgICAgdG1wVmFsdWUgPSBndWlNYW5hZ2VyLm1ha2VQcmludGFibGUodG1wVmFsdWUpOyovXHJcbiAgICAgICAgYnVmZmVyLnB1c2godG1wVmFsdWUpO1xyXG4gICAgICAgIG5leHRJZHggPSBlbmRJZHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyB2ZWN0b3IgdG8gYXJyYXlcclxuICAgIHJldHVybiBidWZmZXIuVG9BcnJheSgpO1xyXG4gIH1cclxuXHJcbiAgUGFyc2VOdWxsRmxhZ3MobnVsbEZsYWdzU3RyaW5nOiBzdHJpbmcpOiBib29sZWFuW10ge1xyXG4gICAgbGV0IGFycmF5OiBib29sZWFuW10gPSBuZXcgQXJyYXk8Ym9vbGVhbj4obnVsbEZsYWdzU3RyaW5nLmxlbmd0aCk7XHJcbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgbnVsbEZsYWdzU3RyaW5nLmxlbmd0aDsgaSA9IGkgKyAxKSB7XHJcbiAgICAgIGFycmF5W2ldID0gKG51bGxGbGFnc1N0cmluZy5jaGFyQXQoaSkgIT09ICcwJy8qJzAnKi8pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFycmF5O1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,90 @@
1
+ import { Dictionary, List, RefParam } from "@magic-xpa/mscorelib";
2
+ import { DcValues, EMPTY_DCREF } from "./DcValues";
3
+ import { Events } from "../../Events";
4
+ import { StorageAttribute } from "@magic-xpa/utils";
5
+ import { PIC } from "../gui/PIC";
6
+ import { DisplayConvertor } from "../gui/DisplayConvertor";
7
+ import { Commands } from "../../Commands";
8
+ import { CommandType } from "../../GuiEnums";
9
+ export class GuiDataViewBase {
10
+ constructor() {
11
+ this._dcValsCollection = new Dictionary();
12
+ this._emptyDataview = false;
13
+ this._fieldsTab = null;
14
+ this._task = null;
15
+ this._emptyChoice = new DcValues(true);
16
+ this._emptyChoiceForVectors = new DcValues(true);
17
+ }
18
+ getField(id) {
19
+ if (this._fieldsTab != null)
20
+ return this._fieldsTab.getField(id);
21
+ Events.WriteExceptionToLog("in DataView.getFieldDef(int): There is no fieldsTab object");
22
+ return null;
23
+ }
24
+ isEmptyDataview() {
25
+ return this._emptyDataview;
26
+ }
27
+ setEmptyDataview(emptyDataview) {
28
+ this._emptyDataview = emptyDataview;
29
+ Commands.addBoolWithLine(CommandType.SET_EMPTY_DATAVIEW, this._task.getForm(), 0, emptyDataview);
30
+ }
31
+ getTask() {
32
+ return this._task;
33
+ }
34
+ getDcValues(dcId) {
35
+ if (dcId === EMPTY_DCREF)
36
+ return this.getEmptyChoice();
37
+ let dcValues;
38
+ let dcv = new RefParam(dcValues);
39
+ this._dcValsCollection.TryGetValue(dcId.toString(), dcv);
40
+ return dcv.value;
41
+ }
42
+ getEmptyChoice() {
43
+ return this._emptyChoice;
44
+ }
45
+ getEmptyChoiceForVectors() {
46
+ return this._emptyChoiceForVectors;
47
+ }
48
+ GetFieldsTab() {
49
+ return this._fieldsTab;
50
+ }
51
+ GetRouteParams() {
52
+ let params = new List();
53
+ for (let i = 0; i < this._fieldsTab.getSize(); i++) {
54
+ let field = this._fieldsTab.getField(i);
55
+ let val;
56
+ if (field.IsExposedRouteParam && !field.isNull()) {
57
+ switch (field.getType()) {
58
+ case StorageAttribute.ALPHA:
59
+ case StorageAttribute.UNICODE:
60
+ {
61
+ val = field.getDispValue();
62
+ if (field.isNull())
63
+ val = field.getNullDisplay();
64
+ params.push(val.trim());
65
+ }
66
+ break;
67
+ case StorageAttribute.BOOLEAN:
68
+ {
69
+ if (field.isNull())
70
+ params.push(false);
71
+ else
72
+ params.push(field.getDispValue().charAt(0) === '1' ? true : false);
73
+ }
74
+ break;
75
+ case StorageAttribute.NUMERIC: {
76
+ val = field.getDispValue();
77
+ if (field.isNull())
78
+ val = field.getNullDisplay();
79
+ let pic = new PIC(field.getPicture(), field.getType(), this.getTask().getCompIdx());
80
+ val = DisplayConvertor.Instance.mg2disp(val, "", pic, true, 0, false);
81
+ params.push(val);
82
+ break;
83
+ }
84
+ }
85
+ }
86
+ }
87
+ return (params.length > 0) ? params : null;
88
+ }
89
+ }
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3VpRGF0YVZpZXdCYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3VpL3NyYy9tYW5hZ2VtZW50L2RhdGEvR3VpRGF0YVZpZXdCYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxRQUFRLEVBQUUsV0FBVyxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBS2pELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFFcEMsT0FBTyxFQUFDLGdCQUFnQixFQUFZLE1BQU0sa0JBQWtCLENBQUM7QUFDN0QsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUMvQixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBSzNDLE1BQU0sT0FBZ0IsZUFBZTtJQUFyQztRQUVFLHNCQUFpQixHQUF5QixJQUFJLFVBQVUsRUFBWSxDQUFDO1FBQzdELG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBQ3hDLGVBQVUsR0FBZ0IsSUFBSSxDQUFDO1FBQy9CLFVBQUssR0FBZ0IsSUFBSSxDQUFDO1FBR2xCLGlCQUFZLEdBQWEsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUMsMkJBQXNCLEdBQWEsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFtSGhFLENBQUM7SUFyR0MsUUFBUSxDQUFDLEVBQVU7UUFDakIsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUk7WUFDekIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMs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O3dCQUMvQixJQUFJLEdBQUcsR0FBUSxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO3dCQUN6RixHQUFHLEdBQUcsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO3dCQUN0RSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO3dCQUNqQixNQUFNO3FCQUNQO2lCQUNGO2FBQ0Y7U0FDRjtRQUNELE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUM3QyxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpY3Rpb25hcnksIExpc3QsIFJlZlBhcmFtfSBmcm9tIFwiQG1hZ2ljLXhwYS9tc2NvcmVsaWJcIjtcclxuaW1wb3J0IHtEY1ZhbHVlcywgRU1QVFlfRENSRUZ9IGZyb20gXCIuL0RjVmFsdWVzXCI7XHJcbmltcG9ydCB7RmllbGRzVGFibGV9IGZyb20gXCIuL0ZpZWxkc1RhYmxlXCI7XHJcbmltcG9ydCB7R3VpVGFza0Jhc2V9IGZyb20gXCIuLi90YXNrcy9HdWlUYXNrQmFzZVwiO1xyXG5pbXBvcnQge0ZpZWxkRGVmfSBmcm9tIFwiLi9GaWVsZERlZlwiO1xyXG5pbXBvcnQge0lUYXNrfSBmcm9tIFwiLi4vdGFza3MvSVRhc2tcIjtcclxuaW1wb3J0IHtFdmVudHN9IGZyb20gXCIuLi8uLi9FdmVudHNcIjtcclxuXHJcbmltcG9ydCB7U3RvcmFnZUF0dHJpYnV0ZSwgWG1sUGFyc2VyfSBmcm9tIFwiQG1hZ2ljLXhwYS91dGlsc1wiO1xyXG5pbXBvcnQge1BJQ30gZnJvbSBcIi4uL2d1aS9QSUNcIjtcclxuaW1wb3J0IHtEaXNwbGF5Q29udmVydG9yfSBmcm9tIFwiLi4vZ3VpL0Rpc3BsYXlDb252ZXJ0b3JcIjtcclxuaW1wb3J0IHtDb21tYW5kc30gZnJvbSBcIi4uLy4uL0NvbW1hbmRzXCI7XHJcbmltcG9ydCB7Q29tbWFuZFR5cGV9IGZyb20gXCIuLi8uLi9HdWlFbnVtc1wiO1xyXG5cclxuLy8vIDxzdW1tYXJ5PlxyXG4vLy8gZnVuY3Rpb25hbGl0eSByZXF1aXJlZCBieSB0aGUgR1VJIG5hbWVzcGFjZSBmcm9tIHRoZSBEYXRhVmlld0Jhc2UgY2xhc3MuXHJcbi8vLyA8L3N1bW1hcnk+XHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBHdWlEYXRhVmlld0Jhc2Uge1xyXG5cclxuICBfZGNWYWxzQ29sbGVjdGlvbjogRGljdGlvbmFyeTxEY1ZhbHVlcz4gPSBuZXcgRGljdGlvbmFyeTxEY1ZhbHVlcz4oKTtcclxuICBwcml2YXRlIF9lbXB0eURhdGF2aWV3OiBib29sZWFuID0gZmFsc2U7IC8vIEluZGljYXRlcyB0aGUgdGFzayBpcyBpbiBFbXB0eSBEYXRhdmlld1xyXG4gIF9maWVsZHNUYWI6IEZpZWxkc1RhYmxlID0gbnVsbDsgLy8gPGR2aGVhZGVyPiAuLi48L2R2aGVhZGVyPiB0YWdcclxuICBfdGFzazogR3VpVGFza0Jhc2UgPSBudWxsOyAvLyBjb250YWluZXIgdGFza1xyXG5cclxuICAvLyBkdW1teSBEY1ZhbHVlcyBmb3IgdXNlIHdpdGggbm9uLURDIGNob2ljZSBjb250cm9sc1xyXG4gIHByaXZhdGUgX2VtcHR5Q2hvaWNlOiBEY1ZhbHVlcyA9IG5ldyBEY1ZhbHVlcyh0cnVlKTtcclxuICBwcml2YXRlIF9lbXB0eUNob2ljZUZvclZlY3RvcnM6IERjVmFsdWVzID0gbmV3IERjVmFsdWVzKHRydWUpO1xyXG5cclxuXHJcbiAgYWJzdHJhY3QgSW5pdCgpOiB2b2lkO1xyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcGFyc2UgdGhlIERWSEVBREVSIHRhZ1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgYWJzdHJhY3QgZmlsbEhlYWRlckRhdGEocGFyc2VyOiBYbWxQYXJzZXIpOiB2b2lkO1xyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgZ2V0IGEgZmllbGQgYnkgaXRzIGlkXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImlkXCI+ZmllbGQgaWQgPC9wYXJhbT5cclxuICBnZXRGaWVsZChpZDogbnVtYmVyKTogRmllbGREZWYge1xyXG4gICAgaWYgKHRoaXMuX2ZpZWxkc1RhYiAhPSBudWxsKVxyXG4gICAgICByZXR1cm4gdGhpcy5fZmllbGRzVGFiLmdldEZpZWxkKGlkKTtcclxuXHJcbiAgICBFdmVudHMuV3JpdGVFeGNlcHRpb25Ub0xvZyhcImluIERhdGFWaWV3LmdldEZpZWxkRGVmKGludCk6IFRoZXJlIGlzIG5vIGZpZWxkc1RhYiBvYmplY3RcIik7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIC8vLyA8cmV0dXJucz4gdGhlIGVtcHR5RGF0YXZpZXc8L3JldHVybnM+XHJcbiAgaXNFbXB0eURhdGF2aWV3KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2VtcHR5RGF0YXZpZXc7XHJcbiAgfVxyXG5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImVtcHR5RGF0YXZpZXdcIj50aGUgZW1wdHlEYXRhdmlldyB0byBzZXQ8L3BhcmFtPlxyXG4gIHNldEVtcHR5RGF0YXZpZXcoZW1wdHlEYXRhdmlldzogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5fZW1wdHlEYXRhdmlldyA9IGVtcHR5RGF0YXZpZXc7XHJcbiAgICBDb21tYW5kcy5hZGRCb29sV2l0aExpbmUoQ29tbWFuZFR5cGUuU0VUX0VNUFRZX0RBVEFWSUVXLCB0aGlzLl90YXNrLmdldEZvcm0oKSwgMCwgZW1wdHlEYXRhdmlldyk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJuIGEgcmVmZXJlbmNlIHRvIHRoZSB0YXNrIG9mIHRoaXMgZGF0YXZpZXdcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldFRhc2soKTogSVRhc2sge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Rhc2s7XHJcbiAgfVxyXG5cclxuLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGdldCBkY1ZhbHVlcyBvYmplY3QgYnkgaXRzIGlkXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImRjSWRcIj5pZCBvZiBhIGRhdGEgY29udHJvbCB2YWx1ZXMgPC9wYXJhbT5cclxuICBnZXREY1ZhbHVlcyhkY0lkOiBudW1iZXIpOiBEY1ZhbHVlcyB7XHJcbiAgICBpZiAoZGNJZCA9PT0gRU1QVFlfRENSRUYpXHJcbiAgICAgIHJldHVybiB0aGlzLmdldEVtcHR5Q2hvaWNlKCk7XHJcblxyXG4gICAgbGV0IGRjVmFsdWVzOiBEY1ZhbHVlcztcclxuICAgIGxldCBkY3Y6IFJlZlBhcmFtPERjVmFsdWVzPiA9IG5ldyBSZWZQYXJhbTxEY1ZhbHVlcz4oZGNWYWx1ZXMpO1xyXG4gICAgdGhpcy5fZGNWYWxzQ29sbGVjdGlvbi5UcnlHZXRWYWx1ZShkY0lkLnRvU3RyaW5nKCksIGRjdik7XHJcbiAgICByZXR1cm4gZGN2LnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxyZXR1cm5zPmR1bW15IERjVmFsdWVzIGZvciB1c2Ugd2l0aCBub24tREMgY2hvaWNlIGNvbnRyb2xzPC9yZXR1cm5zPlxyXG4gIGdldEVtcHR5Q2hvaWNlKCk6IERjVmFsdWVzIHtcclxuICAgIHJldHVybiB0aGlzLl9lbXB0eUNob2ljZTtcclxuICB9XHJcblxyXG5cclxuICBnZXRFbXB0eUNob2ljZUZvclZlY3RvcnMoKTogRGNWYWx1ZXMge1xyXG4gICAgcmV0dXJuIHRoaXMuX2VtcHR5Q2hvaWNlRm9yVmVjdG9ycztcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBnZXQgZmllbGRzIHRhYmxlICg8ZHZoZWFkZXI+KSBvZiB0aGUgKChEYXRhVmlldylkYXRhVmlldylcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIEdldEZpZWxkc1RhYigpOiBGaWVsZHNUYWJsZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmllbGRzVGFiO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGdldCByb3V0ZSBwYXJhbXNcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIEdldFJvdXRlUGFyYW1zKCk6IExpc3Q8YW55PiB7XHJcbiAgICBsZXQgcGFyYW1zOiBMaXN0IDwgYW55ID4gPSBuZXcgTGlzdCgpO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9maWVsZHNUYWIuZ2V0U2l6ZSgpOyBpKyspIHtcclxuXHJcbiAgICAgIGxldCBmaWVsZDogYW55ID0gdGhpcy5fZmllbGRzVGFiLmdldEZpZWxkKGkpO1xyXG4gICAgICBsZXQgdmFsOiBhbnk7XHJcbiAgICAgIGlmIChmaWVsZC5Jc0V4cG9zZWRSb3V0ZVBhcmFtICYmICFmaWVsZC5pc051bGwoKSkge1xyXG4gICAgICAgIHN3aXRjaCAoZmllbGQuZ2V0VHlwZSgpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5BTFBIQTpcclxuICAgICAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5VTklDT0RFOiB7XHJcbiAgICAgICAgICAgIHZhbCA9IGZpZWxkLmdldERpc3BWYWx1ZSgpO1xyXG4gICAgICAgICAgICBpZiAoZmllbGQuaXNOdWxsKCkpXHJcbiAgICAgICAgICAgICAgdmFsID0gZmllbGQuZ2V0TnVsbERpc3BsYXkoKTtcclxuICAgICAgICAgICAgcGFyYW1zLnB1c2goPHN0cmluZz52YWwudHJpbSgpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLkJPT0xFQU46IHtcclxuICAgICAgICAgICAgaWYgKGZpZWxkLmlzTnVsbCgpKVxyXG4gICAgICAgICAgICAgIHBhcmFtcy5wdXNoKGZhbHNlKTtcclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgIHBhcmFtcy5wdXNoKGZpZWxkLmdldERpc3BWYWx1ZSgpLmNoYXJBdCgwKSA9PT0gJzEnID8gdHJ1ZSA6IGZhbHNlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLk5VTUVSSUM6IHtcclxuICAgICAgICAgICAgdmFsID0gZmllbGQuZ2V0RGlzcFZhbHVlKCk7XHJcbiAgICAgICAgICAgIGlmIChmaWVsZC5pc051bGwoKSlcclxuICAgICAgICAgICAgICB2YWwgPSBmaWVsZC5nZXROdWxsRGlzcGxheSgpO1xyXG4gICAgICAgICAgICBsZXQgcGljOiBQSUMgPSBuZXcgUElDKGZpZWxkLmdldFBpY3R1cmUoKSwgZmllbGQuZ2V0VHlwZSgpLCB0aGlzLmdldFRhc2soKS5nZXRDb21wSWR4KCkpO1xyXG4gICAgICAgICAgICB2YWwgPSBEaXNwbGF5Q29udmVydG9yLkluc3RhbmNlLm1nMmRpc3AodmFsLCBcIlwiLCBwaWMsIHRydWUsIDAsIGZhbHNlKTtcclxuICAgICAgICAgICAgcGFyYW1zLnB1c2godmFsKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gKHBhcmFtcy5sZW5ndGggPiAwKSA/IHBhcmFtcyA6IG51bGw7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=