@gnwebsoft/ui 4.0.0 → 4.0.1

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 (54) hide show
  1. package/dist/chunk-246MYJX6.js +479 -0
  2. package/dist/chunk-CE4CSA36.cjs +2262 -0
  3. package/dist/chunk-DJSMLHFO.js +140 -0
  4. package/dist/chunk-GHW77WIM.cjs +72 -0
  5. package/dist/chunk-L3QQX3BK.js +1596 -0
  6. package/dist/chunk-MULSVYFT.js +72 -0
  7. package/dist/chunk-MVPLBJRK.cjs +1 -1
  8. package/dist/chunk-NC3JINIM.cjs +1596 -0
  9. package/dist/chunk-R45OPW5A.js +2262 -0
  10. package/dist/chunk-UEBN47RB.cjs +140 -0
  11. package/dist/chunk-YUVXLOSA.cjs +479 -0
  12. package/dist/core/index.cjs +121 -0
  13. package/dist/core/index.js +121 -0
  14. package/dist/hooks/index.cjs +3 -3
  15. package/dist/hooks/index.js +1 -1
  16. package/dist/index.cjs +81 -7
  17. package/dist/index.js +126 -52
  18. package/dist/types/index.cjs +3 -3
  19. package/dist/types/index.js +1 -1
  20. package/dist/utils/index.cjs +3 -25
  21. package/dist/utils/index.js +3 -25
  22. package/dist/wrappers/index.cjs +4 -4
  23. package/dist/wrappers/index.js +16 -16
  24. package/package.json +22 -17
  25. package/dist/AsyncSelectPayload-B9-6l33R.d.cts +0 -10
  26. package/dist/AsyncSelectPayload-B9-6l33R.d.ts +0 -10
  27. package/dist/chunk-3OPVOWQK.js +0 -140
  28. package/dist/chunk-AEOF2TUF.cjs +0 -2273
  29. package/dist/chunk-ALHC7RLK.js +0 -575
  30. package/dist/chunk-BRRLB22L.js +0 -72
  31. package/dist/chunk-CHZU4PZB.js +0 -2273
  32. package/dist/chunk-EBRUE2WR.cjs +0 -493
  33. package/dist/chunk-HEHPKM4B.cjs +0 -140
  34. package/dist/chunk-K2EJ4YKO.cjs +0 -72
  35. package/dist/chunk-U6SDYCWF.js +0 -493
  36. package/dist/chunk-XY4U6A77.cjs +0 -575
  37. package/dist/components/index.cjs +0 -25
  38. package/dist/components/index.d.cts +0 -752
  39. package/dist/components/index.d.ts +0 -752
  40. package/dist/components/index.js +0 -25
  41. package/dist/enhanced-CDTkKUlj.d.ts +0 -134
  42. package/dist/enhanced-ZQoS03Cd.d.cts +0 -134
  43. package/dist/events-BcHVCLBz.d.cts +0 -77
  44. package/dist/events-BcHVCLBz.d.ts +0 -77
  45. package/dist/hooks/index.d.cts +0 -96
  46. package/dist/hooks/index.d.ts +0 -96
  47. package/dist/index.d.cts +0 -16
  48. package/dist/index.d.ts +0 -16
  49. package/dist/types/index.d.cts +0 -820
  50. package/dist/types/index.d.ts +0 -820
  51. package/dist/utils/index.d.cts +0 -683
  52. package/dist/utils/index.d.ts +0 -683
  53. package/dist/wrappers/index.d.cts +0 -1753
  54. package/dist/wrappers/index.d.ts +0 -1753
@@ -12,7 +12,7 @@
12
12
 
13
13
 
14
14
 
15
- var _chunkK2EJ4YKOcjs = require('../chunk-K2EJ4YKO.cjs');
15
+ var _chunkGHW77WIMcjs = require('../chunk-GHW77WIM.cjs');
16
16
 
17
17
 
18
18
 
@@ -27,5 +27,5 @@ var _chunkK2EJ4YKOcjs = require('../chunk-K2EJ4YKO.cjs');
27
27
 
28
28
 
29
29
 
30
- exports.brand = _chunkK2EJ4YKOcjs.brand; exports.createEventValueExtractor = _chunkK2EJ4YKOcjs.createEventValueExtractor; exports.extractEventValue = _chunkK2EJ4YKOcjs.extractEventValue; exports.isFormChangeEvent = _chunkK2EJ4YKOcjs.isFormChangeEvent; exports.isFormData = _chunkK2EJ4YKOcjs.isFormData; exports.isInputChangeEvent = _chunkK2EJ4YKOcjs.isInputChangeEvent; exports.isJsonArray = _chunkK2EJ4YKOcjs.isJsonArray; exports.isJsonObject = _chunkK2EJ4YKOcjs.isJsonObject; exports.isRequestBody = _chunkK2EJ4YKOcjs.isRequestBody; exports.isSelectChangeEvent = _chunkK2EJ4YKOcjs.isSelectChangeEvent; exports.typedEntries = _chunkK2EJ4YKOcjs.typedEntries; exports.typedKeys = _chunkK2EJ4YKOcjs.typedKeys; exports.typedValues = _chunkK2EJ4YKOcjs.typedValues;
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvbGlicy9HTldlYlNvZnQuVUkvcGFja2FnZXMvdWkvZGlzdC90eXBlcy9pbmRleC5janMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNGLHlEQUE4QjtBQUM5QjtBQUNFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Ysd3ZCQUFDIiwiZmlsZSI6Ii9idWlsZHMvbGlicy9HTldlYlNvZnQuVUkvcGFja2FnZXMvdWkvZGlzdC90eXBlcy9pbmRleC5janMifQ==
30
+ exports.brand = _chunkGHW77WIMcjs.brand; exports.createEventValueExtractor = _chunkGHW77WIMcjs.createEventValueExtractor; exports.extractEventValue = _chunkGHW77WIMcjs.extractEventValue; exports.isFormChangeEvent = _chunkGHW77WIMcjs.isFormChangeEvent; exports.isFormData = _chunkGHW77WIMcjs.isFormData; exports.isInputChangeEvent = _chunkGHW77WIMcjs.isInputChangeEvent; exports.isJsonArray = _chunkGHW77WIMcjs.isJsonArray; exports.isJsonObject = _chunkGHW77WIMcjs.isJsonObject; exports.isRequestBody = _chunkGHW77WIMcjs.isRequestBody; exports.isSelectChangeEvent = _chunkGHW77WIMcjs.isSelectChangeEvent; exports.typedEntries = _chunkGHW77WIMcjs.typedEntries; exports.typedKeys = _chunkGHW77WIMcjs.typedKeys; exports.typedValues = _chunkGHW77WIMcjs.typedValues;
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImQ6XFxQcm9qZWN0c1xcR05XZWJTb2Z0LlVJXFxwYWNrYWdlc1xcdWlcXGRpc3RcXHR5cGVzXFxpbmRleC5janMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNGLHlEQUE4QjtBQUM5QjtBQUNFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Ysd3ZCQUFDIiwiZmlsZSI6IkQ6XFxQcm9qZWN0c1xcR05XZWJTb2Z0LlVJXFxwYWNrYWdlc1xcdWlcXGRpc3RcXHR5cGVzXFxpbmRleC5janMifQ==
@@ -12,7 +12,7 @@ import {
12
12
  typedEntries,
13
13
  typedKeys,
14
14
  typedValues
15
- } from "../chunk-BRRLB22L.js";
15
+ } from "../chunk-MULSVYFT.js";
16
16
  export {
17
17
  brand,
18
18
  createEventValueExtractor,
@@ -25,6 +25,7 @@
25
25
 
26
26
 
27
27
 
28
+ var _chunkYUVXLOSAcjs = require('../chunk-YUVXLOSA.cjs');
28
29
 
29
30
 
30
31
 
@@ -36,7 +37,6 @@
36
37
 
37
38
 
38
39
 
39
- var _chunkXY4U6A77cjs = require('../chunk-XY4U6A77.cjs');
40
40
 
41
41
 
42
42
 
@@ -53,27 +53,5 @@ var _chunkXY4U6A77cjs = require('../chunk-XY4U6A77.cjs');
53
53
 
54
54
 
55
55
 
56
-
57
-
58
-
59
-
60
-
61
-
62
-
63
-
64
-
65
-
66
-
67
-
68
-
69
-
70
-
71
-
72
-
73
-
74
-
75
-
76
-
77
-
78
- exports.api = _chunkXY4U6A77cjs.api; exports.api2 = _chunkXY4U6A77cjs.api2; exports.flattenObjectKeys = _chunkXY4U6A77cjs.flattenObjectKeys; exports.getTimezone = _chunkXY4U6A77cjs.getTimezone; exports.handleServerErrors = _chunkXY4U6A77cjs.handleServerErrors; exports.hasProperty = _chunkXY4U6A77cjs.hasProperty; exports.isArray = _chunkXY4U6A77cjs.isArray; exports.isBoolean = _chunkXY4U6A77cjs.isBoolean; exports.isDate = _chunkXY4U6A77cjs.isDate; exports.isDefined = _chunkXY4U6A77cjs.isDefined; exports.isError = _chunkXY4U6A77cjs.isError; exports.isFunction = _chunkXY4U6A77cjs.isFunction; exports.isNonEmptyArray = _chunkXY4U6A77cjs.isNonEmptyArray; exports.isNonEmptyString = _chunkXY4U6A77cjs.isNonEmptyString; exports.isNull = _chunkXY4U6A77cjs.isNull; exports.isNullish = _chunkXY4U6A77cjs.isNullish; exports.isNumber = _chunkXY4U6A77cjs.isNumber; exports.isPromise = _chunkXY4U6A77cjs.isPromise; exports.isRecord = _chunkXY4U6A77cjs.isRecord; exports.isString = _chunkXY4U6A77cjs.isString; exports.isUndefined = _chunkXY4U6A77cjs.isUndefined; exports.matches = _chunkXY4U6A77cjs.matches; exports.propertyExists = _chunkXY4U6A77cjs.propertyExists; exports.readValueAsDate = _chunkXY4U6A77cjs.readValueAsDate; exports.removeLeadingTrailingSlashes = _chunkXY4U6A77cjs.removeLeadingTrailingSlashes; exports.schemaTools = _chunkXY4U6A77cjs.schemaTools; exports.typedWatch = _chunkXY4U6A77cjs.typedWatch; exports.useWatchBatch = _chunkXY4U6A77cjs.useWatchBatch; exports.useWatchBoolean = _chunkXY4U6A77cjs.useWatchBoolean; exports.useWatchConditional = _chunkXY4U6A77cjs.useWatchConditional; exports.useWatchDebounced = _chunkXY4U6A77cjs.useWatchDebounced; exports.useWatchDefault = _chunkXY4U6A77cjs.useWatchDefault; exports.useWatchField = _chunkXY4U6A77cjs.useWatchField; exports.useWatchFields = _chunkXY4U6A77cjs.useWatchFields; exports.useWatchForm = _chunkXY4U6A77cjs.useWatchForm; exports.useWatchSelector = _chunkXY4U6A77cjs.useWatchSelector; exports.useWatchTransform = _chunkXY4U6A77cjs.useWatchTransform;
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvbGlicy9HTldlYlNvZnQuVUkvcGFja2FnZXMvdWkvZGlzdC91dGlscy9pbmRleC5janMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNGLHlEQUE4QjtBQUM5QjtBQUNFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0YscytEQUFDIiwiZmlsZSI6Ii9idWlsZHMvbGlicy9HTldlYlNvZnQuVUkvcGFja2FnZXMvdWkvZGlzdC91dGlscy9pbmRleC5janMifQ==
56
+ exports.api = _chunkYUVXLOSAcjs.api; exports.api2 = _chunkYUVXLOSAcjs.api2; exports.flattenObjectKeys = _chunkYUVXLOSAcjs.flattenObjectKeys; exports.getTimezone = _chunkYUVXLOSAcjs.getTimezone; exports.handleServerErrors = _chunkYUVXLOSAcjs.handleServerErrors; exports.hasProperty = _chunkYUVXLOSAcjs.hasProperty; exports.isArray = _chunkYUVXLOSAcjs.isArray; exports.isBoolean = _chunkYUVXLOSAcjs.isBoolean; exports.isDate = _chunkYUVXLOSAcjs.isDate; exports.isDefined = _chunkYUVXLOSAcjs.isDefined; exports.isError = _chunkYUVXLOSAcjs.isError; exports.isFunction = _chunkYUVXLOSAcjs.isFunction; exports.isNonEmptyArray = _chunkYUVXLOSAcjs.isNonEmptyArray; exports.isNonEmptyString = _chunkYUVXLOSAcjs.isNonEmptyString; exports.isNull = _chunkYUVXLOSAcjs.isNull; exports.isNullish = _chunkYUVXLOSAcjs.isNullish; exports.isNumber = _chunkYUVXLOSAcjs.isNumber; exports.isPromise = _chunkYUVXLOSAcjs.isPromise; exports.isRecord = _chunkYUVXLOSAcjs.isRecord; exports.isString = _chunkYUVXLOSAcjs.isString; exports.isUndefined = _chunkYUVXLOSAcjs.isUndefined; exports.matches = _chunkYUVXLOSAcjs.matches; exports.propertyExists = _chunkYUVXLOSAcjs.propertyExists; exports.readValueAsDate = _chunkYUVXLOSAcjs.readValueAsDate; exports.removeLeadingTrailingSlashes = _chunkYUVXLOSAcjs.removeLeadingTrailingSlashes; exports.schemaTools = _chunkYUVXLOSAcjs.schemaTools;
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImQ6XFxQcm9qZWN0c1xcR05XZWJTb2Z0LlVJXFxwYWNrYWdlc1xcdWlcXGRpc3RcXHV0aWxzXFxpbmRleC5janMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0YseURBQThCO0FBQzlCO0FBQ0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNGLCswQ0FBQyIsImZpbGUiOiJEOlxcUHJvamVjdHNcXEdOV2ViU29mdC5VSVxccGFja2FnZXNcXHVpXFxkaXN0XFx1dGlsc1xcaW5kZXguY2pzIn0=
@@ -24,19 +24,8 @@ import {
24
24
  propertyExists,
25
25
  readValueAsDate,
26
26
  removeLeadingTrailingSlashes,
27
- schemaTools,
28
- typedWatch,
29
- useWatchBatch,
30
- useWatchBoolean,
31
- useWatchConditional,
32
- useWatchDebounced,
33
- useWatchDefault,
34
- useWatchField,
35
- useWatchFields,
36
- useWatchForm,
37
- useWatchSelector,
38
- useWatchTransform
39
- } from "../chunk-ALHC7RLK.js";
27
+ schemaTools
28
+ } from "../chunk-246MYJX6.js";
40
29
  export {
41
30
  api,
42
31
  api2,
@@ -63,17 +52,6 @@ export {
63
52
  propertyExists,
64
53
  readValueAsDate,
65
54
  removeLeadingTrailingSlashes,
66
- schemaTools,
67
- typedWatch,
68
- useWatchBatch,
69
- useWatchBoolean,
70
- useWatchConditional,
71
- useWatchDebounced,
72
- useWatchDefault,
73
- useWatchField,
74
- useWatchFields,
75
- useWatchForm,
76
- useWatchSelector,
77
- useWatchTransform
55
+ schemaTools
78
56
  };
79
57
  //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFtdLAogICJzb3VyY2VzQ29udGVudCI6IFtdLAogICJtYXBwaW5ncyI6ICIiLAogICJuYW1lcyI6IFtdCn0K
@@ -24,8 +24,8 @@
24
24
 
25
25
 
26
26
 
27
- var _chunkAEOF2TUFcjs = require('../chunk-AEOF2TUF.cjs');
28
- require('../chunk-HEHPKM4B.cjs');
27
+ var _chunkCE4CSA36cjs = require('../chunk-CE4CSA36.cjs');
28
+ require('../chunk-UEBN47RB.cjs');
29
29
 
30
30
 
31
31
 
@@ -52,5 +52,5 @@ require('../chunk-HEHPKM4B.cjs');
52
52
 
53
53
 
54
54
 
55
- exports.AsyncMultiSelect2 = _chunkAEOF2TUFcjs.AsyncMultiSelect2; exports.CheckboxElement = _chunkAEOF2TUFcjs.CheckboxElement; exports.CheckboxGroup = _chunkAEOF2TUFcjs.CheckboxGroup; exports.DatePickerElement = _chunkAEOF2TUFcjs.DatePickerElement; exports.DatePickerElementCore = _chunkAEOF2TUFcjs.DatePickerElementCore; exports.EnhancedTextFieldElement = _chunkAEOF2TUFcjs.EnhancedTextFieldElement; exports.Field = _chunkAEOF2TUFcjs.Field; exports.PasswordElement = _chunkAEOF2TUFcjs.PasswordElement_default; exports.RadioButtonGroup = _chunkAEOF2TUFcjs.RadioButtonGroup_default; exports.SelectCascadeElement = _chunkAEOF2TUFcjs.SelectCascadeElement_default; exports.SelectElement = _chunkAEOF2TUFcjs.SelectElement_default; exports.SelectMultiElement = _chunkAEOF2TUFcjs.SelectMultiElement_default; exports.TextFieldElement = _chunkAEOF2TUFcjs.TextFieldElement_default; exports.TimePickerElement = _chunkAEOF2TUFcjs.TimePickerElement_default; exports.createDateInputTransform = _chunkAEOF2TUFcjs.createDateInputTransform; exports.createDateOutputTransform = _chunkAEOF2TUFcjs.createDateOutputTransform; exports.createDefaultDatePickerConfig = _chunkAEOF2TUFcjs.createDefaultDatePickerConfig; exports.createStableKey = _chunkAEOF2TUFcjs.createStableKey; exports.extractErrorMessage = _chunkAEOF2TUFcjs.extractErrorMessage; exports.isParsableDateString = _chunkAEOF2TUFcjs.isParsableDateString; exports.isValidDate = _chunkAEOF2TUFcjs.isValidDate; exports.readDatePickerValueAsDate = _chunkAEOF2TUFcjs.readDatePickerValueAsDate; exports.useDatePickerStyles = _chunkAEOF2TUFcjs.useDatePickerStyles; exports.useDatePickerValidation = _chunkAEOF2TUFcjs.useDatePickerValidation; exports.useDatePickerValue = _chunkAEOF2TUFcjs.useDatePickerValue;
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvbGlicy9HTldlYlNvZnQuVUkvcGFja2FnZXMvdWkvZGlzdC93cmFwcGVycy9pbmRleC5janMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNGLHlEQUE4QjtBQUM5QixpQ0FBOEI7QUFDOUI7QUFDRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNGLDRzREFBQyIsImZpbGUiOiIvYnVpbGRzL2xpYnMvR05XZWJTb2Z0LlVJL3BhY2thZ2VzL3VpL2Rpc3Qvd3JhcHBlcnMvaW5kZXguY2pzIn0=
55
+ exports.AsyncMultiSelect2 = _chunkCE4CSA36cjs.AsyncMultiSelect2; exports.CheckboxElement = _chunkCE4CSA36cjs.CheckboxElement; exports.CheckboxGroup = _chunkCE4CSA36cjs.CheckboxGroup; exports.DatePickerElement = _chunkCE4CSA36cjs.DatePickerElement; exports.DatePickerElementCore = _chunkCE4CSA36cjs.DatePickerElementCore; exports.EnhancedTextFieldElement = _chunkCE4CSA36cjs.EnhancedTextFieldElement; exports.Field = _chunkCE4CSA36cjs.Field; exports.PasswordElement = _chunkCE4CSA36cjs.PasswordElement; exports.RadioButtonGroup = _chunkCE4CSA36cjs.RadioButtonGroup; exports.SelectCascadeElement = _chunkCE4CSA36cjs.SelectCascadeElement; exports.SelectElement = _chunkCE4CSA36cjs.SelectElement; exports.SelectMultiElement = _chunkCE4CSA36cjs.SelectMultiElement; exports.TextFieldElement = _chunkCE4CSA36cjs.TextFieldElement; exports.TimePickerElement = _chunkCE4CSA36cjs.TimePickerElement; exports.createDateInputTransform = _chunkCE4CSA36cjs.createDateInputTransform; exports.createDateOutputTransform = _chunkCE4CSA36cjs.createDateOutputTransform; exports.createDefaultDatePickerConfig = _chunkCE4CSA36cjs.createDefaultDatePickerConfig; exports.createStableKey = _chunkCE4CSA36cjs.createStableKey; exports.extractErrorMessage = _chunkCE4CSA36cjs.extractErrorMessage; exports.isParsableDateString = _chunkCE4CSA36cjs.isParsableDateString; exports.isValidDate = _chunkCE4CSA36cjs.isValidDate; exports.readDatePickerValueAsDate = _chunkCE4CSA36cjs.readDatePickerValueAsDate; exports.useDatePickerStyles = _chunkCE4CSA36cjs.useDatePickerStyles; exports.useDatePickerValidation = _chunkCE4CSA36cjs.useDatePickerValidation; exports.useDatePickerValue = _chunkCE4CSA36cjs.useDatePickerValue;
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImQ6XFxQcm9qZWN0c1xcR05XZWJTb2Z0LlVJXFxwYWNrYWdlc1xcdWlcXGRpc3RcXHdyYXBwZXJzXFxpbmRleC5janMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNGLHlEQUE4QjtBQUM5QixpQ0FBOEI7QUFDOUI7QUFDRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNGLG9wREFBQyIsImZpbGUiOiJEOlxcUHJvamVjdHNcXEdOV2ViU29mdC5VSVxccGFja2FnZXNcXHVpXFxkaXN0XFx3cmFwcGVyc1xcaW5kZXguY2pzIn0=
@@ -6,13 +6,13 @@ import {
6
6
  DatePickerElementCore,
7
7
  EnhancedTextFieldElement,
8
8
  Field,
9
- PasswordElement_default,
10
- RadioButtonGroup_default,
11
- SelectCascadeElement_default,
12
- SelectElement_default,
13
- SelectMultiElement_default,
14
- TextFieldElement_default,
15
- TimePickerElement_default,
9
+ PasswordElement,
10
+ RadioButtonGroup,
11
+ SelectCascadeElement,
12
+ SelectElement,
13
+ SelectMultiElement,
14
+ TextFieldElement,
15
+ TimePickerElement,
16
16
  createDateInputTransform,
17
17
  createDateOutputTransform,
18
18
  createDefaultDatePickerConfig,
@@ -24,8 +24,8 @@ import {
24
24
  useDatePickerStyles,
25
25
  useDatePickerValidation,
26
26
  useDatePickerValue
27
- } from "../chunk-CHZU4PZB.js";
28
- import "../chunk-3OPVOWQK.js";
27
+ } from "../chunk-R45OPW5A.js";
28
+ import "../chunk-DJSMLHFO.js";
29
29
  export {
30
30
  AsyncMultiSelect2,
31
31
  CheckboxElement,
@@ -34,13 +34,13 @@ export {
34
34
  DatePickerElementCore,
35
35
  EnhancedTextFieldElement,
36
36
  Field,
37
- PasswordElement_default as PasswordElement,
38
- RadioButtonGroup_default as RadioButtonGroup,
39
- SelectCascadeElement_default as SelectCascadeElement,
40
- SelectElement_default as SelectElement,
41
- SelectMultiElement_default as SelectMultiElement,
42
- TextFieldElement_default as TextFieldElement,
43
- TimePickerElement_default as TimePickerElement,
37
+ PasswordElement,
38
+ RadioButtonGroup,
39
+ SelectCascadeElement,
40
+ SelectElement,
41
+ SelectMultiElement,
42
+ TextFieldElement,
43
+ TimePickerElement,
44
44
  createDateInputTransform,
45
45
  createDateOutputTransform,
46
46
  createDefaultDatePickerConfig,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gnwebsoft/ui",
3
- "version": "4.0.0",
3
+ "version": "4.0.1",
4
4
  "type": "module",
5
5
  "description": "A set of reusable wrappers for MUI v7",
6
6
  "author": "GNWebsoft Private Limited",
@@ -57,10 +57,10 @@
57
57
  "import": "./dist/index.js",
58
58
  "require": "./dist/index.cjs"
59
59
  },
60
- "./components": {
61
- "types": "./dist/components/index.d.ts",
62
- "import": "./dist/components/index.js",
63
- "require": "./dist/components/index.cjs"
60
+ "./core": {
61
+ "types": "./dist/core/index.d.ts",
62
+ "import": "./dist/core/index.js",
63
+ "require": "./dist/core/index.cjs"
64
64
  },
65
65
  "./hooks": {
66
66
  "types": "./dist/hooks/index.d.ts",
@@ -124,23 +124,28 @@
124
124
  "peerDependencies": {
125
125
  "@emotion/cache": "^11.14.0",
126
126
  "@emotion/react": "^11.14.0",
127
- "@emotion/styled": "^11.14.0",
128
- "@hookform/resolvers": "^5.2.1",
127
+ "@emotion/styled": "^11.14.1",
128
+ "@hookform/resolvers": "^5.2.2",
129
129
  "@mui/icons-material": "^7.3.1",
130
- "@mui/lab": "^7.0.0-beta.16",
131
- "@mui/material": "^7.3.1",
132
- "@mui/x-data-grid": "^8.9.2",
133
- "@mui/x-date-pickers": "^8.9.2",
130
+ "@mui/lab": "^7.0.0-beta.17",
131
+ "@mui/material": "^7.3.2",
132
+ "@mui/x-data-grid": "^8.12.1",
133
+ "@mui/x-date-pickers": "^8.12.0",
134
134
  "autosuggest-highlight": "^3.3.4",
135
- "axios": "^1.11.0",
136
- "dayjs": "^1.11.13",
137
- "es-toolkit": "^1.39.8",
135
+ "axios": "^1.12.2",
136
+ "dayjs": "^1.11.18",
137
+ "es-toolkit": "^1.39.10",
138
138
  "lodash": "^4.17.21",
139
139
  "react": "^19.1.1",
140
140
  "react-dom": "^19.1.1",
141
- "react-hook-form": "^7.62.0",
141
+ "react-hook-form": "^7.63.0",
142
+ "sonner": "^2.0.7",
142
143
  "typescript": "^5.9.2",
143
- "zod": "^4.0.15",
144
- "zustand": "^5.0.2"
144
+ "zod": "^4.1.11",
145
+ "zustand": "^5.0.8"
146
+ },
147
+ "dependencies": {
148
+ "@mui/x-data-grid-pro": "^8.17.0",
149
+ "@tanstack/react-query": "^5.90.7"
145
150
  }
146
151
  }
@@ -1,10 +0,0 @@
1
- interface AsyncSelectPayload {
2
- query: string | null;
3
- initialValue?: string | number | null;
4
- }
5
- interface AsyncSelectMultiPayload {
6
- query: string | null;
7
- initialValues?: string[] | number[] | null;
8
- }
9
-
10
- export type { AsyncSelectPayload as A, AsyncSelectMultiPayload as a };
@@ -1,10 +0,0 @@
1
- interface AsyncSelectPayload {
2
- query: string | null;
3
- initialValue?: string | number | null;
4
- }
5
- interface AsyncSelectMultiPayload {
6
- query: string | null;
7
- initialValues?: string[] | number[] | null;
8
- }
9
-
10
- export type { AsyncSelectPayload as A, AsyncSelectMultiPayload as a };
@@ -1,140 +0,0 @@
1
- // src/hooks/useTransform/index.ts
2
- function useTransform(options) {
3
- const value = typeof options.transform?.input === "function" ? options.transform.input(options.value) : options.value;
4
- const onChange = (eventOrValue, value2) => {
5
- if (typeof options.transform?.output === "function") {
6
- options.onChange(options.transform.output(eventOrValue, value2));
7
- } else {
8
- options.onChange(eventOrValue);
9
- }
10
- };
11
- return {
12
- value,
13
- onChange
14
- };
15
- }
16
-
17
- // src/hooks/useTransform/enhanced.ts
18
- import { useCallback, useMemo } from "react";
19
- var transformFactories = {
20
- number: () => ({
21
- input: (value) => {
22
- if (value == null) return "";
23
- return String(value);
24
- },
25
- output: (eventOrValue, _value) => {
26
- let rawValue;
27
- if (typeof eventOrValue === "object" && eventOrValue !== null && "target" in eventOrValue && typeof eventOrValue.target === "object" && eventOrValue.target !== null && "value" in eventOrValue.target) {
28
- rawValue = String(eventOrValue.target.value);
29
- } else {
30
- rawValue = String(eventOrValue);
31
- }
32
- if (rawValue === "") return null;
33
- const numValue = Number(rawValue);
34
- return isNaN(numValue) ? null : numValue;
35
- }
36
- }),
37
- text: () => ({
38
- input: (value) => {
39
- return value ?? "";
40
- },
41
- output: (eventOrValue, _value) => {
42
- if (typeof eventOrValue === "object" && eventOrValue !== null && "target" in eventOrValue && typeof eventOrValue.target === "object" && eventOrValue.target !== null && "value" in eventOrValue.target) {
43
- return eventOrValue.target.value;
44
- }
45
- return eventOrValue;
46
- }
47
- }),
48
- select: () => ({
49
- input: (value) => {
50
- return value ?? "";
51
- },
52
- output: (eventOrValue, value) => {
53
- if (value !== void 0) {
54
- return value;
55
- }
56
- if (typeof eventOrValue === "object" && eventOrValue !== null && "target" in eventOrValue && typeof eventOrValue.target === "object" && eventOrValue.target !== null && "value" in eventOrValue.target) {
57
- return eventOrValue.target.value;
58
- }
59
- return eventOrValue;
60
- }
61
- })
62
- };
63
- function getBuiltInTransform(fieldType) {
64
- switch (fieldType) {
65
- case "number":
66
- return transformFactories.number();
67
- case "text":
68
- return transformFactories.text();
69
- case "select":
70
- case "radio":
71
- return transformFactories.select();
72
- default:
73
- return void 0;
74
- }
75
- }
76
- function useEnhancedTransform(options) {
77
- const {
78
- value: fieldValue,
79
- onChange: fieldOnChange,
80
- transform,
81
- fieldType,
82
- defaultValue,
83
- enableWarnings
84
- } = options;
85
- const builtInTransform = useMemo(
86
- () => fieldType ? getBuiltInTransform(fieldType) : void 0,
87
- [fieldType]
88
- );
89
- if (enableWarnings && process.env.NODE_ENV === "development") {
90
- if (transform && fieldType) {
91
- console.warn(
92
- "useEnhancedTransform: Both custom transform and fieldType provided. Custom transform will take precedence."
93
- );
94
- }
95
- }
96
- const transformedValue = useMemo(() => {
97
- const inputTransform = transform?.input || builtInTransform?.input;
98
- if (typeof inputTransform === "function") {
99
- return inputTransform(fieldValue);
100
- }
101
- if (fieldValue == null && defaultValue !== void 0) {
102
- return defaultValue;
103
- }
104
- return fieldValue;
105
- }, [fieldValue, transform?.input, builtInTransform?.input, defaultValue]);
106
- const enhancedOnChange = useCallback(
107
- (eventOrValue, value) => {
108
- const outputTransform = transform?.output || builtInTransform?.output;
109
- if (typeof outputTransform === "function") {
110
- try {
111
- const transformedValue2 = outputTransform(eventOrValue, value);
112
- fieldOnChange(transformedValue2);
113
- } catch (error) {
114
- if (enableWarnings && process.env.NODE_ENV === "development") {
115
- console.error("useEnhancedTransform: Error in output transformation:", error);
116
- }
117
- fieldOnChange(
118
- value !== void 0 ? value : eventOrValue
119
- );
120
- }
121
- } else {
122
- fieldOnChange(
123
- value !== void 0 ? value : eventOrValue
124
- );
125
- }
126
- },
127
- [fieldOnChange, transform?.output, builtInTransform?.output, enableWarnings]
128
- );
129
- return {
130
- value: transformedValue,
131
- onChange: enhancedOnChange
132
- };
133
- }
134
-
135
- export {
136
- useTransform,
137
- transformFactories,
138
- useEnhancedTransform
139
- };
140
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2hvb2tzL3VzZVRyYW5zZm9ybS9pbmRleC50cyIsICIuLi9zcmMvaG9va3MvdXNlVHJhbnNmb3JtL2VuaGFuY2VkLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgdHlwZSB7XG4gIEZpZWxkUGF0aCxcbiAgRmllbGRWYWx1ZXMsXG4gIFBhdGhWYWx1ZSxcbiAgVXNlQ29udHJvbGxlclJldHVybixcbn0gZnJvbSBcInJlYWN0LWhvb2stZm9ybVwiO1xuaW1wb3J0IHR5cGUgeyBFdmVudE9yVmFsdWUgfSBmcm9tIFwiLi4vLi4vdHlwZXMvZXZlbnRzXCI7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIHVzZVRyYW5zZm9ybSBob29rLlxuICpcbiAqIEB0ZW1wbGF0ZSBURmllbGRWYWx1ZXMgLSBUaGUgZm9ybSB2YWx1ZXMgdHlwZVxuICogQHRlbXBsYXRlIFROYW1lIC0gVGhlIGZpZWxkIG5hbWUgdHlwZVxuICogQHRlbXBsYXRlIFRWYWx1ZSAtIFRoZSB0cmFuc2Zvcm1lZCB2YWx1ZSB0eXBlXG4gKlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFVzZVRyYW5zZm9ybU9wdGlvbnM8XG4gIFRGaWVsZFZhbHVlcyBleHRlbmRzIEZpZWxkVmFsdWVzID0gRmllbGRWYWx1ZXMsXG4gIFROYW1lIGV4dGVuZHMgRmllbGRQYXRoPFRGaWVsZFZhbHVlcz4gPSBGaWVsZFBhdGg8VEZpZWxkVmFsdWVzPixcbiAgVFZhbHVlID0gdW5rbm93bixcbj4ge1xuICAvKiogVGhlIGN1cnJlbnQgZmllbGQgdmFsdWUgZnJvbSByZWFjdC1ob29rLWZvcm0gKi9cbiAgdmFsdWU6IFVzZUNvbnRyb2xsZXJSZXR1cm48VEZpZWxkVmFsdWVzLCBUTmFtZT5bXCJmaWVsZFwiXVtcInZhbHVlXCJdO1xuICAvKiogVGhlIG9uQ2hhbmdlIGhhbmRsZXIgZnJvbSByZWFjdC1ob29rLWZvcm0gKi9cbiAgb25DaGFuZ2U6IFVzZUNvbnRyb2xsZXJSZXR1cm48VEZpZWxkVmFsdWVzLCBUTmFtZT5bXCJmaWVsZFwiXVtcIm9uQ2hhbmdlXCJdO1xuICAvKiogT3B0aW9uYWwgdHJhbnNmb3JtYXRpb24gZnVuY3Rpb25zICovXG4gIHRyYW5zZm9ybT86IHtcbiAgICAvKipcbiAgICAgKiBUcmFuc2Zvcm0gdGhlIGZpZWxkIHZhbHVlIGZvciBkaXNwbGF5IGluIHRoZSBpbnB1dFxuICAgICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBjdXJyZW50IGZpZWxkIHZhbHVlXG4gICAgICogQHJldHVybnMgVGhlIHRyYW5zZm9ybWVkIHZhbHVlIHRvIGRpc3BsYXlcbiAgICAgKi9cbiAgICBpbnB1dD86ICh2YWx1ZTogUGF0aFZhbHVlPFRGaWVsZFZhbHVlcywgVE5hbWU+KSA9PiBUVmFsdWU7XG4gICAgLyoqXG4gICAgICogVHJhbnNmb3JtIHRoZSBpbnB1dCBldmVudCBiYWNrIHRvIHRoZSBmaWVsZCB2YWx1ZVxuICAgICAqIEBwYXJhbSBldmVudCAtIFRoZSBpbnB1dCBldmVudCBwYXJhbWV0ZXJzXG4gICAgICogQHJldHVybnMgVGhlIHRyYW5zZm9ybWVkIHZhbHVlIHRvIHN0b3JlIGluIHRoZSBmb3JtXG4gICAgICovXG4gICAgb3V0cHV0PzogKFxuICAgICAgZXZlbnRPclZhbHVlOiBFdmVudE9yVmFsdWU8UGF0aFZhbHVlPFRGaWVsZFZhbHVlcywgVE5hbWU+PixcbiAgICAgIHZhbHVlPzogUGF0aFZhbHVlPFRGaWVsZFZhbHVlcywgVE5hbWU+XG4gICAgKSA9PiBQYXRoVmFsdWU8VEZpZWxkVmFsdWVzLCBUTmFtZT47XG4gIH07XG59XG5cbi8qKlxuICogUmV0dXJuIHR5cGUgZm9yIHRoZSB1c2VUcmFuc2Zvcm0gaG9vay5cbiAqXG4gKiBAdGVtcGxhdGUgVEZpZWxkVmFsdWVzIC0gVGhlIGZvcm0gdmFsdWVzIHR5cGVcbiAqIEB0ZW1wbGF0ZSBUTmFtZSAtIFRoZSBmaWVsZCBuYW1lIHR5cGVcbiAqIEB0ZW1wbGF0ZSBUVmFsdWUgLSBUaGUgdHJhbnNmb3JtZWQgdmFsdWUgdHlwZVxuICpcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVc2VUcmFuc2Zvcm1SZXR1cm48XG4gIFRGaWVsZFZhbHVlcyBleHRlbmRzIEZpZWxkVmFsdWVzID0gRmllbGRWYWx1ZXMsXG4gIFROYW1lIGV4dGVuZHMgRmllbGRQYXRoPFRGaWVsZFZhbHVlcz4gPSBGaWVsZFBhdGg8VEZpZWxkVmFsdWVzPixcbiAgVFZhbHVlID0gdW5rbm93bixcbj4ge1xuICAvKiogVGhlIHRyYW5zZm9ybWVkIHZhbHVlIHRvIGRpc3BsYXkgaW4gdGhlIGlucHV0ICovXG4gIHZhbHVlOiBUVmFsdWU7XG4gIC8qKiBUaGUgZW5oYW5jZWQgb25DaGFuZ2UgaGFuZGxlciB3aXRoIHRyYW5zZm9ybWF0aW9uIGFwcGxpZWQgKi9cbiAgb25DaGFuZ2U6IFVzZUNvbnRyb2xsZXJSZXR1cm48VEZpZWxkVmFsdWVzLCBUTmFtZT5bXCJmaWVsZFwiXVtcIm9uQ2hhbmdlXCJdO1xufVxuXG4vKipcbiAqIEEgaG9vayBmb3IgdHJhbnNmb3JtaW5nIGZvcm0gZmllbGQgdmFsdWVzIGJldHdlZW4gZGlzcGxheSBhbmQgc3RvcmFnZSBmb3JtYXRzLlxuICpcbiAqIFRoaXMgaG9vayBwcm92aWRlcyBhIHdheSB0byB0cmFuc2Zvcm0gdmFsdWVzIGFzIHRoZXkgZmxvdyBiZXR3ZWVuIHRoZSBmb3JtIGZpZWxkXG4gKiBhbmQgdGhlIGRpc3BsYXkgY29tcG9uZW50LiBJdCdzIHBhcnRpY3VsYXJseSB1c2VmdWwgZm9yIGZvcm1hdHRpbmcgZGF0YSBmb3IgZGlzcGxheVxuICogKGxpa2UgZGF0ZXMsIG51bWJlcnMsIG9yIGNvbXBsZXggb2JqZWN0cykgd2hpbGUgbWFpbnRhaW5pbmcgYSBkaWZmZXJlbnQgaW50ZXJuYWxcbiAqIHJlcHJlc2VudGF0aW9uIGluIHRoZSBmb3JtIHN0YXRlLlxuICpcbiAqIEBleGFtcGxlXG4gKiBUcmFuc2Zvcm0gYSBkYXRlIGZvciBkaXNwbGF5OlxuICogYGBgdHN4XG4gKiBjb25zdCB7IHZhbHVlLCBvbkNoYW5nZSB9ID0gdXNlVHJhbnNmb3JtKHtcbiAqICAgdmFsdWU6IGZpZWxkLnZhbHVlLFxuICogICBvbkNoYW5nZTogZmllbGQub25DaGFuZ2UsXG4gKiAgIHRyYW5zZm9ybToge1xuICogICAgIGlucHV0OiAoZGF0ZSkgPT4gZGF0ZSA/IGZvcm1hdChkYXRlLCAneXl5eS1NTS1kZCcpIDogJycsXG4gKiAgICAgb3V0cHV0OiAoZXZlbnQpID0+IG5ldyBEYXRlKGV2ZW50LnRhcmdldC52YWx1ZSlcbiAqICAgfVxuICogfSk7XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZVxuICogVHJhbnNmb3JtIG51bWJlcnMgd2l0aCBmb3JtYXR0aW5nOlxuICogYGBgdHN4XG4gKiBjb25zdCB7IHZhbHVlLCBvbkNoYW5nZSB9ID0gdXNlVHJhbnNmb3JtKHtcbiAqICAgdmFsdWU6IGZpZWxkLnZhbHVlLFxuICogICBvbkNoYW5nZTogZmllbGQub25DaGFuZ2UsXG4gKiAgIHRyYW5zZm9ybToge1xuICogICAgIGlucHV0OiAobnVtKSA9PiBudW0gPyBudW0udG9Mb2NhbGVTdHJpbmcoKSA6ICcnLFxuICogICAgIG91dHB1dDogKGV2ZW50KSA9PiBwYXJzZUZsb2F0KGV2ZW50LnRhcmdldC52YWx1ZS5yZXBsYWNlKC8sL2csICcnKSlcbiAqICAgfVxuICogfSk7XG4gKiBgYGBcbiAqXG4gKiBAdGVtcGxhdGUgVEZpZWxkVmFsdWVzIC0gVGhlIGZvcm0gdmFsdWVzIHR5cGVcbiAqIEB0ZW1wbGF0ZSBUTmFtZSAtIFRoZSBmaWVsZCBuYW1lIHR5cGVcbiAqIEB0ZW1wbGF0ZSBUVmFsdWUgLSBUaGUgdHJhbnNmb3JtZWQgdmFsdWUgdHlwZVxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zIGluY2x1ZGluZyB2YWx1ZSwgb25DaGFuZ2UsIGFuZCB0cmFuc2Zvcm0gZnVuY3Rpb25zXG4gKiBAcmV0dXJucyBPYmplY3Qgd2l0aCB0cmFuc2Zvcm1lZCB2YWx1ZSBhbmQgZW5oYW5jZWQgb25DaGFuZ2UgaGFuZGxlclxuICpcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVRyYW5zZm9ybTxcbiAgVEZpZWxkVmFsdWVzIGV4dGVuZHMgRmllbGRWYWx1ZXMgPSBGaWVsZFZhbHVlcyxcbiAgVE5hbWUgZXh0ZW5kcyBGaWVsZFBhdGg8VEZpZWxkVmFsdWVzPiA9IEZpZWxkUGF0aDxURmllbGRWYWx1ZXM+LFxuICBUVmFsdWUgPSB1bmtub3duLFxuPihcbiAgb3B0aW9uczogVXNlVHJhbnNmb3JtT3B0aW9uczxURmllbGRWYWx1ZXMsIFROYW1lLCBUVmFsdWU+XG4pOiBVc2VUcmFuc2Zvcm1SZXR1cm48VEZpZWxkVmFsdWVzLCBUTmFtZSwgVFZhbHVlPiB7XG4gIGNvbnN0IHZhbHVlID1cbiAgICB0eXBlb2Ygb3B0aW9ucy50cmFuc2Zvcm0/LmlucHV0ID09PSBcImZ1bmN0aW9uXCJcbiAgICAgID8gb3B0aW9ucy50cmFuc2Zvcm0uaW5wdXQob3B0aW9ucy52YWx1ZSlcbiAgICAgIDogb3B0aW9ucy52YWx1ZTtcblxuICBjb25zdCBvbkNoYW5nZSA9IChcbiAgICBldmVudE9yVmFsdWU6IEV2ZW50T3JWYWx1ZTxQYXRoVmFsdWU8VEZpZWxkVmFsdWVzLCBUTmFtZT4+LFxuICAgIHZhbHVlPzogUGF0aFZhbHVlPFRGaWVsZFZhbHVlcywgVE5hbWU+XG4gICk6IHZvaWQgPT4ge1xuICAgIGlmICh0eXBlb2Ygb3B0aW9ucy50cmFuc2Zvcm0/Lm91dHB1dCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICBvcHRpb25zLm9uQ2hhbmdlKG9wdGlvbnMudHJhbnNmb3JtLm91dHB1dChldmVudE9yVmFsdWUsIHZhbHVlKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFBhc3MgdGhyb3VnaCB0aGUgZXZlbnQgb3IgdmFsdWUgZGlyZWN0bHlcbiAgICAgIG9wdGlvbnMub25DaGFuZ2UoZXZlbnRPclZhbHVlIGFzIFBhdGhWYWx1ZTxURmllbGRWYWx1ZXMsIFROYW1lPik7XG4gICAgfVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgdmFsdWUsXG4gICAgb25DaGFuZ2UsXG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IHVzZVRyYW5zZm9ybTtcbiIsICJpbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlTWVtbyB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHR5cGUgeyBDaGFuZ2VFdmVudCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHR5cGUge1xuICBGaWVsZFBhdGgsXG4gIEZpZWxkVmFsdWVzLFxuICBQYXRoVmFsdWUsXG4gIFVzZUNvbnRyb2xsZXJSZXR1cm4sXG59IGZyb20gXCJyZWFjdC1ob29rLWZvcm1cIjtcbmltcG9ydCB0eXBlIHsgRXZlbnRPclZhbHVlLCBJbnB1dEVsZW1lbnQgfSBmcm9tIFwiLi4vLi4vdHlwZXMvZXZlbnRzXCI7XG5cbi8qKlxuICogRmllbGQgdHlwZXMgZm9yIGJ1aWx0LWluIHRyYW5zZm9ybWF0aW9uIHBhdHRlcm5zXG4gKi9cbmV4cG9ydCB0eXBlIEZpZWxkVHlwZSA9ICd0ZXh0JyB8ICdudW1iZXInIHwgJ2RhdGUnIHwgJ3RpbWUnIHwgJ3NlbGVjdCcgfCAncmFkaW8nO1xuXG4vKipcbiAqIEVuaGFuY2VkIG9wdGlvbnMgZm9yIHRoZSB1c2VUcmFuc2Zvcm0gaG9vayB3aXRoIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbnNcbiAqIGFuZCBidWlsdC1pbiBmaWVsZCB0eXBlIGhhbmRsaW5nLlxuICpcbiAqIEB0ZW1wbGF0ZSBURmllbGRWYWx1ZXMgLSBUaGUgZm9ybSB2YWx1ZXMgdHlwZVxuICogQHRlbXBsYXRlIFROYW1lIC0gVGhlIGZpZWxkIG5hbWUgdHlwZVxuICogQHRlbXBsYXRlIFRWYWx1ZSAtIFRoZSB0cmFuc2Zvcm1lZCB2YWx1ZSB0eXBlXG4gKlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEVuaGFuY2VkVXNlVHJhbnNmb3JtT3B0aW9uczxcbiAgVEZpZWxkVmFsdWVzIGV4dGVuZHMgRmllbGRWYWx1ZXMgPSBGaWVsZFZhbHVlcyxcbiAgVE5hbWUgZXh0ZW5kcyBGaWVsZFBhdGg8VEZpZWxkVmFsdWVzPiA9IEZpZWxkUGF0aDxURmllbGRWYWx1ZXM+LFxuICBUVmFsdWUgPSBQYXRoVmFsdWU8VEZpZWxkVmFsdWVzLCBUTmFtZT4sXG4+IHtcbiAgLyoqIFRoZSBjdXJyZW50IGZpZWxkIHZhbHVlIGZyb20gcmVhY3QtaG9vay1mb3JtICovXG4gIHZhbHVlOiBVc2VDb250cm9sbGVyUmV0dXJuPFRGaWVsZFZhbHVlcywgVE5hbWU+W1wiZmllbGRcIl1bXCJ2YWx1ZVwiXTtcbiAgLyoqIFRoZSBvbkNoYW5nZSBoYW5kbGVyIGZyb20gcmVhY3QtaG9vay1mb3JtICovXG4gIG9uQ2hhbmdlOiBVc2VDb250cm9sbGVyUmV0dXJuPFRGaWVsZFZhbHVlcywgVE5hbWU+W1wiZmllbGRcIl1bXCJvbkNoYW5nZVwiXTtcbiAgLyoqIE9wdGlvbmFsIHRyYW5zZm9ybWF0aW9uIGZ1bmN0aW9ucyAqL1xuICB0cmFuc2Zvcm0/OiB7XG4gICAgLyoqXG4gICAgICogVHJhbnNmb3JtIHRoZSBmaWVsZCB2YWx1ZSBmb3IgZGlzcGxheSBpbiB0aGUgaW5wdXRcbiAgICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgY3VycmVudCBmaWVsZCB2YWx1ZVxuICAgICAqIEByZXR1cm5zIFRoZSB0cmFuc2Zvcm1lZCB2YWx1ZSB0byBkaXNwbGF5XG4gICAgICovXG4gICAgaW5wdXQ/OiAodmFsdWU6IFBhdGhWYWx1ZTxURmllbGRWYWx1ZXMsIFROYW1lPikgPT4gVFZhbHVlO1xuICAgIC8qKlxuICAgICAqIFRyYW5zZm9ybSB0aGUgaW5wdXQgZXZlbnQgYmFjayB0byB0aGUgZmllbGQgdmFsdWVcbiAgICAgKiBAcGFyYW0gZXZlbnQgLSBUaGUgaW5wdXQgZXZlbnQgb3IgdmFsdWVcbiAgICAgKiBAcmV0dXJucyBUaGUgdHJhbnNmb3JtZWQgdmFsdWUgdG8gc3RvcmUgaW4gdGhlIGZvcm1cbiAgICAgKi9cbiAgICBvdXRwdXQ/OiAoXG4gICAgICBldmVudE9yVmFsdWU6IEV2ZW50T3JWYWx1ZTxQYXRoVmFsdWU8VEZpZWxkVmFsdWVzLCBUTmFtZT4+LFxuICAgICAgdmFsdWU/OiBQYXRoVmFsdWU8VEZpZWxkVmFsdWVzLCBUTmFtZT5cbiAgICApID0+IFBhdGhWYWx1ZTxURmllbGRWYWx1ZXMsIFROYW1lPjtcbiAgfTtcbiAgLyoqIEJ1aWx0LWluIGZpZWxkIHR5cGUgZm9yIGF1dG9tYXRpYyB0cmFuc2Zvcm1hdGlvbiAqL1xuICBmaWVsZFR5cGU/OiBGaWVsZFR5cGU7XG4gIC8qKiBEZWZhdWx0IHZhbHVlIHRvIHVzZSB3aGVuIGZpZWxkIHZhbHVlIGlzIG51bGwvdW5kZWZpbmVkICovXG4gIGRlZmF1bHRWYWx1ZT86IFRWYWx1ZTtcbiAgLyoqIEVuYWJsZSBkZXZlbG9wbWVudCB3YXJuaW5ncyBmb3IgZGVidWdnaW5nICovXG4gIGVuYWJsZVdhcm5pbmdzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBFbmhhbmNlZCByZXR1cm4gdHlwZSBmb3IgdGhlIHVzZVRyYW5zZm9ybSBob29rIHdpdGggc3RhYmxlIHJlZmVyZW5jZXNcbiAqXG4gKiBAdGVtcGxhdGUgVEZpZWxkVmFsdWVzIC0gVGhlIGZvcm0gdmFsdWVzIHR5cGVcbiAqIEB0ZW1wbGF0ZSBUTmFtZSAtIFRoZSBmaWVsZCBuYW1lIHR5cGUgIFxuICogQHRlbXBsYXRlIFRWYWx1ZSAtIFRoZSB0cmFuc2Zvcm1lZCB2YWx1ZSB0eXBlXG4gKlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEVuaGFuY2VkVXNlVHJhbnNmb3JtUmV0dXJuPFxuICBURmllbGRWYWx1ZXMgZXh0ZW5kcyBGaWVsZFZhbHVlcyA9IEZpZWxkVmFsdWVzLFxuICBUTmFtZSBleHRlbmRzIEZpZWxkUGF0aDxURmllbGRWYWx1ZXM+ID0gRmllbGRQYXRoPFRGaWVsZFZhbHVlcz4sXG4gIFRWYWx1ZSA9IFBhdGhWYWx1ZTxURmllbGRWYWx1ZXMsIFROYW1lPixcbj4ge1xuICAvKiogVGhlIHRyYW5zZm9ybWVkIHZhbHVlIHRvIGRpc3BsYXkgaW4gdGhlIGlucHV0IChtZW1vaXplZCkgKi9cbiAgdmFsdWU6IFRWYWx1ZTtcbiAgLyoqIFRoZSBlbmhhbmNlZCBvbkNoYW5nZSBoYW5kbGVyIHdpdGggdHJhbnNmb3JtYXRpb24gYXBwbGllZCAobWVtb2l6ZWQpICovXG4gIG9uQ2hhbmdlOiBVc2VDb250cm9sbGVyUmV0dXJuPFRGaWVsZFZhbHVlcywgVE5hbWU+W1wiZmllbGRcIl1bXCJvbkNoYW5nZVwiXTtcbn1cblxuLyoqXG4gKiBUcmFuc2Zvcm0gZmFjdG9yaWVzIGZvciBjb21tb24gZmllbGQgdHlwZXNcbiAqL1xuZXhwb3J0IGNvbnN0IHRyYW5zZm9ybUZhY3RvcmllcyA9IHtcbiAgbnVtYmVyOiA8VEZpZWxkVmFsdWVzIGV4dGVuZHMgRmllbGRWYWx1ZXMsIFROYW1lIGV4dGVuZHMgRmllbGRQYXRoPFRGaWVsZFZhbHVlcz4+KCkgPT4gKHtcbiAgICBpbnB1dDogKHZhbHVlOiBQYXRoVmFsdWU8VEZpZWxkVmFsdWVzLCBUTmFtZT4pID0+IHtcbiAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSByZXR1cm4gXCJcIiBhcyBzdHJpbmc7XG5cbiAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgIH0sXG4gICAgb3V0cHV0OiAoXG4gICAgICBldmVudE9yVmFsdWU6IEV2ZW50T3JWYWx1ZTxQYXRoVmFsdWU8VEZpZWxkVmFsdWVzLCBUTmFtZT4+LFxuICAgICAgX3ZhbHVlPzogUGF0aFZhbHVlPFRGaWVsZFZhbHVlcywgVE5hbWU+XG4gICAgKSA9PiB7XG4gICAgICBsZXQgcmF3VmFsdWU6IHN0cmluZztcbiAgICAgIFxuICAgICAgLy8gRXh0cmFjdCBzdHJpbmcgdmFsdWUgZnJvbSBldmVudCBvciBkaXJlY3QgdmFsdWVcbiAgICAgIGlmIChcbiAgICAgICAgdHlwZW9mIGV2ZW50T3JWYWx1ZSA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgZXZlbnRPclZhbHVlICE9PSBudWxsICYmXG4gICAgICAgICd0YXJnZXQnIGluIGV2ZW50T3JWYWx1ZSAmJlxuICAgICAgICB0eXBlb2YgZXZlbnRPclZhbHVlLnRhcmdldCA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgZXZlbnRPclZhbHVlLnRhcmdldCAhPT0gbnVsbCAmJlxuICAgICAgICAndmFsdWUnIGluIGV2ZW50T3JWYWx1ZS50YXJnZXRcbiAgICAgICkge1xuICAgICAgICByYXdWYWx1ZSA9IFN0cmluZygoZXZlbnRPclZhbHVlLnRhcmdldCBhcyB1bmtub3duIGFzIHsgdmFsdWU6IHVua25vd24gfSkudmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmF3VmFsdWUgPSBTdHJpbmcoZXZlbnRPclZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHJhd1ZhbHVlID09PSBcIlwiKSByZXR1cm4gbnVsbCBhcyBQYXRoVmFsdWU8VEZpZWxkVmFsdWVzLCBUTmFtZT47XG4gICAgICBjb25zdCBudW1WYWx1ZSA9IE51bWJlcihyYXdWYWx1ZSk7XG5cbiAgICAgIHJldHVybiAoaXNOYU4obnVtVmFsdWUpID8gbnVsbCA6IG51bVZhbHVlKSBhcyBQYXRoVmFsdWU8VEZpZWxkVmFsdWVzLCBUTmFtZT47XG4gICAgfSxcbiAgfSksXG5cbiAgdGV4dDogPFRGaWVsZFZhbHVlcyBleHRlbmRzIEZpZWxkVmFsdWVzLCBUTmFtZSBleHRlbmRzIEZpZWxkUGF0aDxURmllbGRWYWx1ZXM+PigpID0+ICh7XG4gICAgaW5wdXQ6ICh2YWx1ZTogUGF0aFZhbHVlPFRGaWVsZFZhbHVlcywgVE5hbWU+KSA9PiB7XG4gICAgICByZXR1cm4gKHZhbHVlID8/IFwiXCIpIGFzIHN0cmluZztcbiAgICB9LFxuICAgIG91dHB1dDogKFxuICAgICAgZXZlbnRPclZhbHVlOiBFdmVudE9yVmFsdWU8UGF0aFZhbHVlPFRGaWVsZFZhbHVlcywgVE5hbWU+PixcbiAgICAgIF92YWx1ZT86IFBhdGhWYWx1ZTxURmllbGRWYWx1ZXMsIFROYW1lPlxuICAgICkgPT4ge1xuICAgICAgLy8gRXh0cmFjdCBzdHJpbmcgdmFsdWUgZnJvbSBldmVudCBvciBkaXJlY3QgdmFsdWVcbiAgICAgIGlmIChcbiAgICAgICAgdHlwZW9mIGV2ZW50T3JWYWx1ZSA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgZXZlbnRPclZhbHVlICE9PSBudWxsICYmXG4gICAgICAgICd0YXJnZXQnIGluIGV2ZW50T3JWYWx1ZSAmJlxuICAgICAgICB0eXBlb2YgZXZlbnRPclZhbHVlLnRhcmdldCA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgZXZlbnRPclZhbHVlLnRhcmdldCAhPT0gbnVsbCAmJlxuICAgICAgICAndmFsdWUnIGluIGV2ZW50T3JWYWx1ZS50YXJnZXRcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gKGV2ZW50T3JWYWx1ZS50YXJnZXQgYXMgdW5rbm93biBhcyB7IHZhbHVlOiBQYXRoVmFsdWU8VEZpZWxkVmFsdWVzLCBUTmFtZT4gfSkudmFsdWU7XG4gICAgICB9XG4gICAgICBcbiAgICAgIHJldHVybiBldmVudE9yVmFsdWUgYXMgUGF0aFZhbHVlPFRGaWVsZFZhbHVlcywgVE5hbWU+O1xuICAgIH0sXG4gIH0pLFxuXG4gIHNlbGVjdDogPFRGaWVsZFZhbHVlcyBleHRlbmRzIEZpZWxkVmFsdWVzLCBUTmFtZSBleHRlbmRzIEZpZWxkUGF0aDxURmllbGRWYWx1ZXM+PigpID0+ICh7XG4gICAgaW5wdXQ6ICh2YWx1ZTogUGF0aFZhbHVlPFRGaWVsZFZhbHVlcywgVE5hbWU+KSA9PiB7XG4gICAgICByZXR1cm4gdmFsdWUgPz8gKFwiXCIgYXMgc3RyaW5nKTtcbiAgICB9LFxuICAgIG91dHB1dDogKFxuICAgICAgZXZlbnRPclZhbHVlOiBFdmVudE9yVmFsdWU8UGF0aFZhbHVlPFRGaWVsZFZhbHVlcywgVE5hbWU+PixcbiAgICAgIHZhbHVlPzogUGF0aFZhbHVlPFRGaWVsZFZhbHVlcywgVE5hbWU+XG4gICAgKSA9PiB7XG4gICAgICAvLyBNVUkgcGF0dGVybjogKGV2ZW50LCB2YWx1ZSkgd2hlcmUgdmFsdWUgaXMgdGhlIGFjdHVhbCBzZWxlY3RlZCB2YWx1ZVxuICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlIGFzIFBhdGhWYWx1ZTxURmllbGRWYWx1ZXMsIFROYW1lPjtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gU3RhbmRhcmQgZXZlbnQgcGF0dGVybjogZXh0cmFjdCBmcm9tIGV2ZW50LnRhcmdldC52YWx1ZVxuICAgICAgaWYgKFxuICAgICAgICB0eXBlb2YgZXZlbnRPclZhbHVlID09PSAnb2JqZWN0JyAmJlxuICAgICAgICBldmVudE9yVmFsdWUgIT09IG51bGwgJiZcbiAgICAgICAgJ3RhcmdldCcgaW4gZXZlbnRPclZhbHVlICYmXG4gICAgICAgIHR5cGVvZiBldmVudE9yVmFsdWUudGFyZ2V0ID09PSAnb2JqZWN0JyAmJlxuICAgICAgICBldmVudE9yVmFsdWUudGFyZ2V0ICE9PSBudWxsICYmXG4gICAgICAgICd2YWx1ZScgaW4gZXZlbnRPclZhbHVlLnRhcmdldFxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiAoZXZlbnRPclZhbHVlLnRhcmdldCBhcyB1bmtub3duIGFzIHsgdmFsdWU6IFBhdGhWYWx1ZTxURmllbGRWYWx1ZXMsIFROYW1lPiB9KS52YWx1ZTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gRGlyZWN0IHZhbHVlXG4gICAgICByZXR1cm4gZXZlbnRPclZhbHVlIGFzIFBhdGhWYWx1ZTxURmllbGRWYWx1ZXMsIFROYW1lPjtcbiAgICB9LFxuICB9KSxcbn0gYXMgY29uc3Q7O1xuXG4vKipcbiAqIEdldCBidWlsdC1pbiB0cmFuc2Zvcm1hdGlvbiBmb3IgYSBmaWVsZCB0eXBlXG4gKi9cbmZ1bmN0aW9uIGdldEJ1aWx0SW5UcmFuc2Zvcm08XG4gIFRGaWVsZFZhbHVlcyBleHRlbmRzIEZpZWxkVmFsdWVzLFxuICBUTmFtZSBleHRlbmRzIEZpZWxkUGF0aDxURmllbGRWYWx1ZXM+LFxuPihmaWVsZFR5cGU/OiBGaWVsZFR5cGUpIHtcbiAgc3dpdGNoIChmaWVsZFR5cGUpIHtcbiAgICBjYXNlICdudW1iZXInOlxuICAgICAgcmV0dXJuIHRyYW5zZm9ybUZhY3Rvcmllcy5udW1iZXI8VEZpZWxkVmFsdWVzLCBUTmFtZT4oKTtcbiAgICBjYXNlICd0ZXh0JzpcbiAgICAgIHJldHVybiB0cmFuc2Zvcm1GYWN0b3JpZXMudGV4dDxURmllbGRWYWx1ZXMsIFROYW1lPigpO1xuICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgY2FzZSAncmFkaW8nOlxuICAgICAgcmV0dXJuIHRyYW5zZm9ybUZhY3Rvcmllcy5zZWxlY3Q8VEZpZWxkVmFsdWVzLCBUTmFtZT4oKTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG4vKipcbiAqIEFuIGVuaGFuY2VkIGhvb2sgZm9yIHRyYW5zZm9ybWluZyBmb3JtIGZpZWxkIHZhbHVlcyB3aXRoIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbnNcbiAqIGFuZCBidWlsdC1pbiBmaWVsZCB0eXBlIGhhbmRsaW5nLlxuICpcbiAqIFRoaXMgZW5oYW5jZWQgdmVyc2lvbiBwcm92aWRlczpcbiAqIC0gUGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9ucyB3aXRoIHVzZU1lbW8gYW5kIHVzZUNhbGxiYWNrXG4gKiAtIEJ1aWx0LWluIHRyYW5zZm9ybWF0aW9ucyBmb3IgY29tbW9uIGZpZWxkIHR5cGVzXG4gKiAtIEJldHRlciBUeXBlU2NyaXB0IGluZmVyZW5jZVxuICogLSBEZXZlbG9wbWVudCB3YXJuaW5nc1xuICogLSBTdGFibGUgcmVmZXJlbmNlcyB0byBwcmV2ZW50IHVubmVjZXNzYXJ5IHJlLXJlbmRlcnNcbiAqXG4gKiBAZXhhbXBsZVxuICogQmFzaWMgdXNhZ2Ugd2l0aCBidWlsdC1pbiBudW1iZXIgaGFuZGxpbmc6XG4gKiBgYGB0c3hcbiAqIGNvbnN0IHsgdmFsdWUsIG9uQ2hhbmdlIH0gPSB1c2VFbmhhbmNlZFRyYW5zZm9ybSh7XG4gKiAgIHZhbHVlOiBmaWVsZC52YWx1ZSxcbiAqICAgb25DaGFuZ2U6IGZpZWxkLm9uQ2hhbmdlLFxuICogICBmaWVsZFR5cGU6ICdudW1iZXInXG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlXG4gKiBDdXN0b20gdHJhbnNmb3JtYXRpb25zIChzYW1lIGFzIG9yaWdpbmFsKTpcbiAqIGBgYHRzeFxuICogY29uc3QgeyB2YWx1ZSwgb25DaGFuZ2UgfSA9IHVzZUVuaGFuY2VkVHJhbnNmb3JtKHtcbiAqICAgdmFsdWU6IGZpZWxkLnZhbHVlLFxuICogICBvbkNoYW5nZTogZmllbGQub25DaGFuZ2UsXG4gKiAgIHRyYW5zZm9ybToge1xuICogICAgIGlucHV0OiAodmFsdWUpID0+IHZhbHVlPy50b1N0cmluZygpIHx8ICcnLFxuICogICAgIG91dHB1dDogKGV2ZW50KSA9PiBwYXJzZUludChldmVudC50YXJnZXQudmFsdWUpIHx8IG51bGxcbiAqICAgfVxuICogfSk7XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZVxuICogV2l0aCBkZWZhdWx0IHZhbHVlIGFuZCB3YXJuaW5nczpcbiAqIGBgYHRzeFxuICogY29uc3QgeyB2YWx1ZSwgb25DaGFuZ2UgfSA9IHVzZUVuaGFuY2VkVHJhbnNmb3JtKHtcbiAqICAgdmFsdWU6IGZpZWxkLnZhbHVlLFxuICogICBvbkNoYW5nZTogZmllbGQub25DaGFuZ2UsXG4gKiAgIGZpZWxkVHlwZTogJ3RleHQnLFxuICogICBkZWZhdWx0VmFsdWU6ICcnLFxuICogICBlbmFibGVXYXJuaW5nczogcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCdcbiAqIH0pO1xuICogYGBgXG4gKlxuICogQHRlbXBsYXRlIFRGaWVsZFZhbHVlcyAtIFRoZSBmb3JtIHZhbHVlcyB0eXBlXG4gKiBAdGVtcGxhdGUgVE5hbWUgLSBUaGUgZmllbGQgbmFtZSB0eXBlXG4gKiBAdGVtcGxhdGUgVFZhbHVlIC0gVGhlIHRyYW5zZm9ybWVkIHZhbHVlIHR5cGVcbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBpbmNsdWRpbmcgdmFsdWUsIG9uQ2hhbmdlLCBhbmQgdHJhbnNmb3JtIGZ1bmN0aW9uc1xuICogQHJldHVybnMgT2JqZWN0IHdpdGggdHJhbnNmb3JtZWQgdmFsdWUgYW5kIGVuaGFuY2VkIG9uQ2hhbmdlIGhhbmRsZXIgKGJvdGggbWVtb2l6ZWQpXG4gKlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlRW5oYW5jZWRUcmFuc2Zvcm08XG4gIFRGaWVsZFZhbHVlcyBleHRlbmRzIEZpZWxkVmFsdWVzID0gRmllbGRWYWx1ZXMsXG4gIFROYW1lIGV4dGVuZHMgRmllbGRQYXRoPFRGaWVsZFZhbHVlcz4gPSBGaWVsZFBhdGg8VEZpZWxkVmFsdWVzPixcbiAgVFZhbHVlID0gUGF0aFZhbHVlPFRGaWVsZFZhbHVlcywgVE5hbWU+LFxuPihcbiAgb3B0aW9uczogRW5oYW5jZWRVc2VUcmFuc2Zvcm1PcHRpb25zPFRGaWVsZFZhbHVlcywgVE5hbWUsIFRWYWx1ZT5cbik6IEVuaGFuY2VkVXNlVHJhbnNmb3JtUmV0dXJuPFRGaWVsZFZhbHVlcywgVE5hbWUsIFRWYWx1ZT4ge1xuICBjb25zdCB7IFxuICAgIHZhbHVlOiBmaWVsZFZhbHVlLCBcbiAgICBvbkNoYW5nZTogZmllbGRPbkNoYW5nZSwgXG4gICAgdHJhbnNmb3JtLCBcbiAgICBmaWVsZFR5cGUsIFxuICAgIGRlZmF1bHRWYWx1ZSxcbiAgICBlbmFibGVXYXJuaW5ncyBcbiAgfSA9IG9wdGlvbnM7XG5cbiAgLy8gR2V0IGJ1aWx0LWluIHRyYW5zZm9ybSBpZiBmaWVsZFR5cGUgaXMgc3BlY2lmaWVkXG4gIGNvbnN0IGJ1aWx0SW5UcmFuc2Zvcm0gPSB1c2VNZW1vKCgpID0+IFxuICAgIGZpZWxkVHlwZSA/IGdldEJ1aWx0SW5UcmFuc2Zvcm08VEZpZWxkVmFsdWVzLCBUTmFtZT4oZmllbGRUeXBlKSA6IHVuZGVmaW5lZCwgXG4gICAgW2ZpZWxkVHlwZV1cbiAgKTtcblxuICAvLyBEZXZlbG9wbWVudCB3YXJuaW5nc1xuICBpZiAoZW5hYmxlV2FybmluZ3MgJiYgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICBpZiAodHJhbnNmb3JtICYmIGZpZWxkVHlwZSkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAndXNlRW5oYW5jZWRUcmFuc2Zvcm06IEJvdGggY3VzdG9tIHRyYW5zZm9ybSBhbmQgZmllbGRUeXBlIHByb3ZpZGVkLiBDdXN0b20gdHJhbnNmb3JtIHdpbGwgdGFrZSBwcmVjZWRlbmNlLidcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLy8gTWVtb2l6ZSB0aGUgdHJhbnNmb3JtZWQgZGlzcGxheSB2YWx1ZVxuICBjb25zdCB0cmFuc2Zvcm1lZFZhbHVlID0gdXNlTWVtbygoKTogVFZhbHVlID0+IHtcbiAgICBjb25zdCBpbnB1dFRyYW5zZm9ybSA9IHRyYW5zZm9ybT8uaW5wdXQgfHwgYnVpbHRJblRyYW5zZm9ybT8uaW5wdXQ7XG4gICAgXG4gICAgaWYgKHR5cGVvZiBpbnB1dFRyYW5zZm9ybSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICByZXR1cm4gaW5wdXRUcmFuc2Zvcm0oZmllbGRWYWx1ZSkgYXMgVFZhbHVlO1xuICAgIH1cbiAgICBcbiAgICAvLyBGYWxsYmFjayB3aXRoIGRlZmF1bHQgdmFsdWUgc3VwcG9ydFxuICAgIGlmIChmaWVsZFZhbHVlID09IG51bGwgJiYgZGVmYXVsdFZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7XG4gICAgfVxuICAgIFxuICAgIHJldHVybiBmaWVsZFZhbHVlIGFzIFRWYWx1ZTtcbiAgfSwgW2ZpZWxkVmFsdWUsIHRyYW5zZm9ybT8uaW5wdXQsIGJ1aWx0SW5UcmFuc2Zvcm0/LmlucHV0LCBkZWZhdWx0VmFsdWVdKTtcblxuICAvLyBNZW1vaXplIHRoZSBlbmhhbmNlZCBvbkNoYW5nZSBoYW5kbGVyXG4gIGNvbnN0IGVuaGFuY2VkT25DaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAoXG4gICAgICBldmVudE9yVmFsdWU6IEV2ZW50T3JWYWx1ZTxQYXRoVmFsdWU8VEZpZWxkVmFsdWVzLCBUTmFtZT4+LFxuICAgICAgdmFsdWU/OiBQYXRoVmFsdWU8VEZpZWxkVmFsdWVzLCBUTmFtZT5cbiAgICApID0+IHtcbiAgICAgIGNvbnN0IG91dHB1dFRyYW5zZm9ybSA9IHRyYW5zZm9ybT8ub3V0cHV0IHx8IGJ1aWx0SW5UcmFuc2Zvcm0/Lm91dHB1dDtcbiAgICAgIFxuICAgICAgaWYgKHR5cGVvZiBvdXRwdXRUcmFuc2Zvcm0gPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIC8vIEhhbmRsZSBib3RoIHNpZ25hdHVyZXM6IG9sZCAoZXZlbnQgb25seSkgYW5kIG5ldyAoZXZlbnQsIHZhbHVlKVxuICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybWVkVmFsdWUgPSAob3V0cHV0VHJhbnNmb3JtIGFzIChlOiBFdmVudE9yVmFsdWU8UGF0aFZhbHVlPFRGaWVsZFZhbHVlcywgVE5hbWU+Piwgdj86IFBhdGhWYWx1ZTxURmllbGRWYWx1ZXMsIFROYW1lPikgPT4gUGF0aFZhbHVlPFRGaWVsZFZhbHVlcywgVE5hbWU+KShldmVudE9yVmFsdWUsIHZhbHVlKTtcblxuICAgICAgICAgIGZpZWxkT25DaGFuZ2UodHJhbnNmb3JtZWRWYWx1ZSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgaWYgKGVuYWJsZVdhcm5pbmdzICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCd1c2VFbmhhbmNlZFRyYW5zZm9ybTogRXJyb3IgaW4gb3V0cHV0IHRyYW5zZm9ybWF0aW9uOicsIGVycm9yKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBGYWxsYmFjayB0byBkaXJlY3QgdmFsdWUgb3IgZmlyc3QgYXJndW1lbnRcbiAgICAgICAgICBmaWVsZE9uQ2hhbmdlKFxuICAgICAgICAgICAgdmFsdWUgIT09IHVuZGVmaW5lZCBcbiAgICAgICAgICAgICAgPyB2YWx1ZSBcbiAgICAgICAgICAgICAgOiBldmVudE9yVmFsdWUgYXMgUGF0aFZhbHVlPFRGaWVsZFZhbHVlcywgVE5hbWU+XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gTm8gdHJhbnNmb3JtLCBwYXNzIHRocm91Z2ggdGhlIHZhbHVlIG9yIGV2ZW50XG4gICAgICAgIGZpZWxkT25DaGFuZ2UoXG4gICAgICAgICAgdmFsdWUgIT09IHVuZGVmaW5lZCBcbiAgICAgICAgICAgID8gdmFsdWUgXG4gICAgICAgICAgICA6IGV2ZW50T3JWYWx1ZSBhcyBQYXRoVmFsdWU8VEZpZWxkVmFsdWVzLCBUTmFtZT5cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtmaWVsZE9uQ2hhbmdlLCB0cmFuc2Zvcm0/Lm91dHB1dCwgYnVpbHRJblRyYW5zZm9ybT8ub3V0cHV0LCBlbmFibGVXYXJuaW5nc11cbiAgKTtcblxuICByZXR1cm4ge1xuICAgIHZhbHVlOiB0cmFuc2Zvcm1lZFZhbHVlLFxuICAgIG9uQ2hhbmdlOiBlbmhhbmNlZE9uQ2hhbmdlLFxuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCB1c2VFbmhhbmNlZFRyYW5zZm9ybTsiXSwKICAibWFwcGluZ3MiOiAiO0FBNkdPLFNBQVMsYUFLZCxTQUNpRDtBQUNqRCxRQUFNLFFBQ0osT0FBTyxRQUFRLFdBQVcsVUFBVSxhQUNoQyxRQUFRLFVBQVUsTUFBTSxRQUFRLEtBQUssSUFDckMsUUFBUTtBQUVkLFFBQU0sV0FBVyxDQUNmLGNBQ0FBLFdBQ1M7QUFDVCxRQUFJLE9BQU8sUUFBUSxXQUFXLFdBQVcsWUFBWTtBQUNuRCxjQUFRLFNBQVMsUUFBUSxVQUFVLE9BQU8sY0FBY0EsTUFBSyxDQUFDO0FBQUEsSUFDaEUsT0FBTztBQUVMLGNBQVEsU0FBUyxZ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