@jfdevelops/react-layout 0.2.0 → 0.4.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 (143) hide show
  1. package/dist/create-config/define-layout.cjs +149 -0
  2. package/dist/create-config/define-layout.cjs.map +1 -0
  3. package/dist/create-config/define-layout.d.cts +107 -0
  4. package/dist/create-config/define-layout.d.cts.map +1 -0
  5. package/dist/create-config/define-layout.d.mts +107 -0
  6. package/dist/create-config/define-layout.d.mts.map +1 -0
  7. package/dist/create-config/define-layout.mjs +149 -0
  8. package/dist/create-config/define-layout.mjs.map +1 -0
  9. package/dist/create-config/get-component.cjs +52 -0
  10. package/dist/create-config/get-component.cjs.map +1 -0
  11. package/dist/create-config/get-component.d.cts +62 -0
  12. package/dist/create-config/get-component.d.cts.map +1 -0
  13. package/dist/create-config/get-component.d.mts +62 -0
  14. package/dist/create-config/get-component.d.mts.map +1 -0
  15. package/dist/create-config/get-component.mjs +51 -0
  16. package/dist/create-config/get-component.mjs.map +1 -0
  17. package/dist/create-config/index.d.cts +3 -0
  18. package/dist/create-config/index.d.mts +3 -0
  19. package/dist/create-config/types.d.cts +42 -0
  20. package/dist/create-config/types.d.cts.map +1 -0
  21. package/dist/create-config/types.d.mts +42 -0
  22. package/dist/create-config/types.d.mts.map +1 -0
  23. package/dist/index.cjs +83 -11
  24. package/dist/index.d.cts +5 -7
  25. package/dist/index.d.mts +5 -7
  26. package/dist/index.mjs +5 -6
  27. package/dist/props.d.cts +6 -6
  28. package/dist/props.d.cts.map +1 -1
  29. package/dist/props.d.mts +6 -6
  30. package/dist/props.d.mts.map +1 -1
  31. package/dist/resource.cjs.map +1 -1
  32. package/dist/resource.d.cts +23 -3
  33. package/dist/resource.d.cts.map +1 -1
  34. package/dist/resource.d.mts +23 -3
  35. package/dist/resource.d.mts.map +1 -1
  36. package/dist/resource.mjs.map +1 -1
  37. package/dist/utils.cjs +5 -12
  38. package/dist/utils.cjs.map +1 -1
  39. package/dist/utils.d.cts +2 -1
  40. package/dist/utils.d.cts.map +1 -1
  41. package/dist/utils.d.mts +2 -1
  42. package/dist/utils.d.mts.map +1 -1
  43. package/dist/utils.mjs +5 -12
  44. package/dist/utils.mjs.map +1 -1
  45. package/package.json +5 -1
  46. package/dist/composable.cjs +0 -72
  47. package/dist/composable.cjs.map +0 -1
  48. package/dist/composable.d.cts +0 -44
  49. package/dist/composable.d.cts.map +0 -1
  50. package/dist/composable.d.mts +0 -44
  51. package/dist/composable.d.mts.map +0 -1
  52. package/dist/composable.mjs +0 -70
  53. package/dist/composable.mjs.map +0 -1
  54. package/dist/create-config.cjs +0 -101
  55. package/dist/create-config.cjs.map +0 -1
  56. package/dist/create-config.d.cts +0 -67
  57. package/dist/create-config.d.cts.map +0 -1
  58. package/dist/create-config.d.mts +0 -67
  59. package/dist/create-config.d.mts.map +0 -1
  60. package/dist/create-config.mjs +0 -101
  61. package/dist/create-config.mjs.map +0 -1
  62. package/dist/utils/capitalize.d.cts +0 -7
  63. package/dist/utils/capitalize.d.cts.map +0 -1
  64. package/dist/utils/capitalize.d.mts +0 -7
  65. package/dist/utils/capitalize.d.mts.map +0 -1
  66. package/dist/validators/base.cjs +0 -41
  67. package/dist/validators/base.cjs.map +0 -1
  68. package/dist/validators/base.d.cts +0 -18
  69. package/dist/validators/base.d.cts.map +0 -1
  70. package/dist/validators/base.d.mts +0 -18
  71. package/dist/validators/base.d.mts.map +0 -1
  72. package/dist/validators/base.mjs +0 -39
  73. package/dist/validators/base.mjs.map +0 -1
  74. package/dist/validators/builders.cjs +0 -137
  75. package/dist/validators/builders.cjs.map +0 -1
  76. package/dist/validators/builders.d.cts +0 -156
  77. package/dist/validators/builders.d.cts.map +0 -1
  78. package/dist/validators/builders.d.mts +0 -156
  79. package/dist/validators/builders.d.mts.map +0 -1
  80. package/dist/validators/builders.mjs +0 -136
  81. package/dist/validators/builders.mjs.map +0 -1
  82. package/dist/validators/component.cjs +0 -73
  83. package/dist/validators/component.cjs.map +0 -1
  84. package/dist/validators/component.d.cts +0 -28
  85. package/dist/validators/component.d.cts.map +0 -1
  86. package/dist/validators/component.d.mts +0 -28
  87. package/dist/validators/component.d.mts.map +0 -1
  88. package/dist/validators/component.mjs +0 -71
  89. package/dist/validators/component.mjs.map +0 -1
  90. package/dist/validators/enum.cjs +0 -27
  91. package/dist/validators/enum.cjs.map +0 -1
  92. package/dist/validators/enum.d.cts +0 -14
  93. package/dist/validators/enum.d.cts.map +0 -1
  94. package/dist/validators/enum.d.mts +0 -14
  95. package/dist/validators/enum.d.mts.map +0 -1
  96. package/dist/validators/enum.mjs +0 -27
  97. package/dist/validators/enum.mjs.map +0 -1
  98. package/dist/validators/index.d.cts +0 -10
  99. package/dist/validators/index.d.mts +0 -10
  100. package/dist/validators/literal.cjs +0 -25
  101. package/dist/validators/literal.cjs.map +0 -1
  102. package/dist/validators/literal.d.cts +0 -14
  103. package/dist/validators/literal.d.cts.map +0 -1
  104. package/dist/validators/literal.d.mts +0 -14
  105. package/dist/validators/literal.d.mts.map +0 -1
  106. package/dist/validators/literal.mjs +0 -25
  107. package/dist/validators/literal.mjs.map +0 -1
  108. package/dist/validators/object.cjs +0 -53
  109. package/dist/validators/object.cjs.map +0 -1
  110. package/dist/validators/object.d.cts +0 -14
  111. package/dist/validators/object.d.cts.map +0 -1
  112. package/dist/validators/object.d.mts +0 -14
  113. package/dist/validators/object.d.mts.map +0 -1
  114. package/dist/validators/object.mjs +0 -53
  115. package/dist/validators/object.mjs.map +0 -1
  116. package/dist/validators/primitive.cjs +0 -80
  117. package/dist/validators/primitive.cjs.map +0 -1
  118. package/dist/validators/primitive.d.cts +0 -33
  119. package/dist/validators/primitive.d.cts.map +0 -1
  120. package/dist/validators/primitive.d.mts +0 -33
  121. package/dist/validators/primitive.d.mts.map +0 -1
  122. package/dist/validators/primitive.mjs +0 -78
  123. package/dist/validators/primitive.mjs.map +0 -1
  124. package/dist/validators/types.d.cts +0 -71
  125. package/dist/validators/types.d.cts.map +0 -1
  126. package/dist/validators/types.d.mts +0 -71
  127. package/dist/validators/types.d.mts.map +0 -1
  128. package/dist/validators/union.cjs +0 -27
  129. package/dist/validators/union.cjs.map +0 -1
  130. package/dist/validators/union.d.cts +0 -14
  131. package/dist/validators/union.d.cts.map +0 -1
  132. package/dist/validators/union.d.mts +0 -14
  133. package/dist/validators/union.d.mts.map +0 -1
  134. package/dist/validators/union.mjs +0 -27
  135. package/dist/validators/union.mjs.map +0 -1
  136. package/dist/validators/validate-props.cjs +0 -20
  137. package/dist/validators/validate-props.cjs.map +0 -1
  138. package/dist/validators/validate-props.d.cts +0 -7
  139. package/dist/validators/validate-props.d.cts.map +0 -1
  140. package/dist/validators/validate-props.d.mts +0 -7
  141. package/dist/validators/validate-props.d.mts.map +0 -1
  142. package/dist/validators/validate-props.mjs +0 -19
  143. package/dist/validators/validate-props.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"base.cjs","names":[],"sources":["../../src/validators/base.ts"],"sourcesContent":["import type { BasePropOptions, PropType, PropVisibility } from './types';\n\nexport const primitiveTypes = {\n string: 'string',\n number: 'number',\n boolean: 'boolean',\n object: 'object',\n array: 'array',\n date: 'date',\n regex: 'regex',\n error: 'error',\n symbol: 'symbol',\n bigint: 'bigint',\n};\n\nfunction createInvalidPropValueMessage(type: string) {\n return `\"value\" is not of type \"${type}\".`;\n}\n\nexport class InvalidPropValueError<Type extends string> extends Error {\n constructor(type: Type) {\n super(createInvalidPropValueMessage(type));\n\n this.name = 'InvalidPropValueError';\n }\n}\n\nexport abstract class BaseProp<\n Type extends PropType,\n Visibility extends PropVisibility,\n Value = unknown,\n> {\n readonly type: Type;\n readonly visibility: Visibility;\n readonly value?: Value;\n\n protected error: InvalidPropValueError<Type>;\n\n constructor(options: BasePropOptions<Type, Visibility, Value>) {\n const { type, visibility, value } = options;\n\n this.type = type;\n this.visibility = visibility;\n this.value = value;\n this.error = new InvalidPropValueError(type);\n }\n\n abstract validate(value: unknown): void;\n abstract allows(value: unknown): value is Value;\n}\n"],"mappings":";;AAEA,MAAa,iBAAiB;CAC5B,QAAQ;CACR,QAAQ;CACR,SAAS;CACT,QAAQ;CACR,OAAO;CACP,MAAM;CACN,OAAO;CACP,OAAO;CACP,QAAQ;CACR,QAAQ;AACV;AAEA,SAAS,8BAA8B,MAAc;CACnD,OAAO,2BAA2B,KAAK;AACzC;AAEA,IAAa,wBAAb,cAAgE,MAAM;CACpE,YAAY,MAAY;EACtB,MAAM,8BAA8B,IAAI,CAAC;EAEzC,KAAK,OAAO;CACd;AACF;AAEA,IAAsB,WAAtB,MAIE;CACA,AAAS;CACT,AAAS;CACT,AAAS;CAET,AAAU;CAEV,YAAY,SAAmD;EAC7D,MAAM,EAAE,MAAM,YAAY,UAAU;EAEpC,KAAK,OAAO;EACZ,KAAK,aAAa;EAClB,KAAK,QAAQ;EACb,KAAK,QAAQ,IAAI,sBAAsB,IAAI;CAC7C;AAIF"}
@@ -1,18 +0,0 @@
1
- import { BasePropOptions, PropType, PropVisibility } from "./types.cjs";
2
-
3
- //#region src/validators/base.d.ts
4
- declare class InvalidPropValueError<Type extends string> extends Error {
5
- constructor(type: Type);
6
- }
7
- declare abstract class BaseProp<Type extends PropType, Visibility extends PropVisibility, Value = unknown> {
8
- readonly type: Type;
9
- readonly visibility: Visibility;
10
- readonly value?: Value;
11
- protected error: InvalidPropValueError<Type>;
12
- constructor(options: BasePropOptions<Type, Visibility, Value>);
13
- abstract validate(value: unknown): void;
14
- abstract allows(value: unknown): value is Value;
15
- }
16
- //#endregion
17
- export { BaseProp, InvalidPropValueError };
18
- //# sourceMappingURL=base.d.cts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base.d.cts","names":[],"sources":["../../src/validators/base.ts"],"mappings":";;;cAmBa,qBAAA,8BAAmD,KAAK;cACvD,IAAA,EAAM,IAAA;AAAA;AAAA,uBAOE,QAAA,cACP,QAAA,qBACM,cAAA;EAAA,SAGV,IAAA,EAAM,IAAA;EAAA,SACN,UAAA,EAAY,UAAA;EAAA,SACZ,KAAA,GAAQ,KAAA;EAAA,UAEP,KAAA,EAAO,qBAAA,CAAsB,IAAA;cAE3B,OAAA,EAAS,eAAA,CAAgB,IAAA,EAAM,UAAA,EAAY,KAAA;EAAA,SAS9C,QAAA,CAAS,KAAA;EAAA,SACT,MAAA,CAAO,KAAA,YAAiB,KAAA,IAAS,KAAA;AAAA"}
@@ -1,18 +0,0 @@
1
- import { BasePropOptions, PropType, PropVisibility } from "./types.mjs";
2
-
3
- //#region src/validators/base.d.ts
4
- declare class InvalidPropValueError<Type extends string> extends Error {
5
- constructor(type: Type);
6
- }
7
- declare abstract class BaseProp<Type extends PropType, Visibility extends PropVisibility, Value = unknown> {
8
- readonly type: Type;
9
- readonly visibility: Visibility;
10
- readonly value?: Value;
11
- protected error: InvalidPropValueError<Type>;
12
- constructor(options: BasePropOptions<Type, Visibility, Value>);
13
- abstract validate(value: unknown): void;
14
- abstract allows(value: unknown): value is Value;
15
- }
16
- //#endregion
17
- export { BaseProp, InvalidPropValueError };
18
- //# sourceMappingURL=base.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base.d.mts","names":[],"sources":["../../src/validators/base.ts"],"mappings":";;;cAmBa,qBAAA,8BAAmD,KAAK;cACvD,IAAA,EAAM,IAAA;AAAA;AAAA,uBAOE,QAAA,cACP,QAAA,qBACM,cAAA;EAAA,SAGV,IAAA,EAAM,IAAA;EAAA,SACN,UAAA,EAAY,UAAA;EAAA,SACZ,KAAA,GAAQ,KAAA;EAAA,UAEP,KAAA,EAAO,qBAAA,CAAsB,IAAA;cAE3B,OAAA,EAAS,eAAA,CAAgB,IAAA,EAAM,UAAA,EAAY,KAAA;EAAA,SAS9C,QAAA,CAAS,KAAA;EAAA,SACT,MAAA,CAAO,KAAA,YAAiB,KAAA,IAAS,KAAA;AAAA"}
@@ -1,39 +0,0 @@
1
- //#region src/validators/base.ts
2
- const primitiveTypes = {
3
- string: "string",
4
- number: "number",
5
- boolean: "boolean",
6
- object: "object",
7
- array: "array",
8
- date: "date",
9
- regex: "regex",
10
- error: "error",
11
- symbol: "symbol",
12
- bigint: "bigint"
13
- };
14
- function createInvalidPropValueMessage(type) {
15
- return `"value" is not of type "${type}".`;
16
- }
17
- var InvalidPropValueError = class extends Error {
18
- constructor(type) {
19
- super(createInvalidPropValueMessage(type));
20
- this.name = "InvalidPropValueError";
21
- }
22
- };
23
- var BaseProp = class {
24
- type;
25
- visibility;
26
- value;
27
- error;
28
- constructor(options) {
29
- const { type, visibility, value } = options;
30
- this.type = type;
31
- this.visibility = visibility;
32
- this.value = value;
33
- this.error = new InvalidPropValueError(type);
34
- }
35
- };
36
-
37
- //#endregion
38
- export { BaseProp, primitiveTypes };
39
- //# sourceMappingURL=base.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base.mjs","names":[],"sources":["../../src/validators/base.ts"],"sourcesContent":["import type { BasePropOptions, PropType, PropVisibility } from './types';\n\nexport const primitiveTypes = {\n string: 'string',\n number: 'number',\n boolean: 'boolean',\n object: 'object',\n array: 'array',\n date: 'date',\n regex: 'regex',\n error: 'error',\n symbol: 'symbol',\n bigint: 'bigint',\n};\n\nfunction createInvalidPropValueMessage(type: string) {\n return `\"value\" is not of type \"${type}\".`;\n}\n\nexport class InvalidPropValueError<Type extends string> extends Error {\n constructor(type: Type) {\n super(createInvalidPropValueMessage(type));\n\n this.name = 'InvalidPropValueError';\n }\n}\n\nexport abstract class BaseProp<\n Type extends PropType,\n Visibility extends PropVisibility,\n Value = unknown,\n> {\n readonly type: Type;\n readonly visibility: Visibility;\n readonly value?: Value;\n\n protected error: InvalidPropValueError<Type>;\n\n constructor(options: BasePropOptions<Type, Visibility, Value>) {\n const { type, visibility, value } = options;\n\n this.type = type;\n this.visibility = visibility;\n this.value = value;\n this.error = new InvalidPropValueError(type);\n }\n\n abstract validate(value: unknown): void;\n abstract allows(value: unknown): value is Value;\n}\n"],"mappings":";AAEA,MAAa,iBAAiB;CAC5B,QAAQ;CACR,QAAQ;CACR,SAAS;CACT,QAAQ;CACR,OAAO;CACP,MAAM;CACN,OAAO;CACP,OAAO;CACP,QAAQ;CACR,QAAQ;AACV;AAEA,SAAS,8BAA8B,MAAc;CACnD,OAAO,2BAA2B,KAAK;AACzC;AAEA,IAAa,wBAAb,cAAgE,MAAM;CACpE,YAAY,MAAY;EACtB,MAAM,8BAA8B,IAAI,CAAC;EAEzC,KAAK,OAAO;CACd;AACF;AAEA,IAAsB,WAAtB,MAIE;CACA,AAAS;CACT,AAAS;CACT,AAAS;CAET,AAAU;CAEV,YAAY,SAAmD;EAC7D,MAAM,EAAE,MAAM,YAAY,UAAU;EAEpC,KAAK,OAAO;EACZ,KAAK,aAAa;EAClB,KAAK,QAAQ;EACb,KAAK,QAAQ,IAAI,sBAAsB,IAAI;CAC7C;AAIF"}
@@ -1,137 +0,0 @@
1
- const require_component = require('./component.cjs');
2
- const require_enum = require('./enum.cjs');
3
- const require_literal = require('./literal.cjs');
4
- const require_object = require('./object.cjs');
5
- const require_primitive = require('./primitive.cjs');
6
- const require_union = require('./union.cjs');
7
-
8
- //#region src/validators/builders.ts
9
- function createConfiguredWrappedProp(prop, config) {
10
- const validate = ((value) => prop.validate(value));
11
- return Object.assign(validate, getPropState(prop), {
12
- _baseProp: prop,
13
- config
14
- });
15
- }
16
- function getPropState(prop) {
17
- const state = {
18
- type: prop.type,
19
- visibility: prop.visibility
20
- };
21
- if ("value" in prop && prop.value !== void 0) state.value = prop.value;
22
- if (prop instanceof require_object.ObjectProp || prop instanceof require_component.ComponentPropWithPropertiesProp) state.properties = prop.properties;
23
- if (prop instanceof require_union.UnionProp) state.members = prop.members;
24
- if (prop instanceof require_component.RenderChildrenProp) {
25
- state.renderProps = prop.renderProps;
26
- state.childrenType = prop.childrenType;
27
- }
28
- return state;
29
- }
30
- function flattenUnionMembers(prop) {
31
- return prop instanceof require_union.UnionProp ? [...prop.members] : [prop];
32
- }
33
- function wrapProp(prop) {
34
- const validate = ((value) => prop.validate(value));
35
- const chainedProps = getPropState(prop);
36
- for (const methodName of [
37
- "optional",
38
- "literal",
39
- "enum",
40
- "config"
41
- ]) {
42
- const method = prop[methodName];
43
- if (typeof method === "function") {
44
- if (methodName === "config") {
45
- chainedProps.config = (config) => createConfiguredWrappedProp(prop, config);
46
- continue;
47
- }
48
- chainedProps[methodName] = (...args) => {
49
- return wrapProp(method.apply(prop, args));
50
- };
51
- }
52
- }
53
- chainedProps._baseProp = prop;
54
- chainedProps.or = (other) => {
55
- const otherBase = other._baseProp;
56
- return wrapProp(new require_union.UnionProp([...flattenUnionMembers(prop), ...flattenUnionMembers(otherBase)], prop.visibility));
57
- };
58
- return Object.assign(validate, chainedProps);
59
- }
60
- function createPrimitiveProp(type, visibility) {
61
- switch (type) {
62
- case "string": return new require_primitive.StringProp(visibility);
63
- case "number": return new require_primitive.NumberProp(visibility);
64
- case "boolean": return new require_primitive.BooleanProp(visibility);
65
- }
66
- }
67
- function createWrappedProp(type, visibility) {
68
- return (wrapperFor) => (value) => {
69
- if (wrapperFor === "literal") return wrapProp(new require_literal.LiteralProp(value, type, visibility));
70
- if (wrapperFor === "enum") return wrapProp(new require_enum.EnumProp(value, type, visibility));
71
- throw new Error(`Invalid wrapper for: ${wrapperFor}`);
72
- };
73
- }
74
- function createPrimitivePropBuilder(type, visibility = "required") {
75
- const propWrapper = createWrappedProp(type, visibility);
76
- const builder = (() => wrapProp(createPrimitiveProp(type, visibility)));
77
- return Object.assign(builder, {
78
- literal: propWrapper("literal"),
79
- enum: propWrapper("enum"),
80
- config: (config) => createConfiguredWrappedProp(createPrimitiveProp(type, visibility), config),
81
- ...visibility === "required" ? { optional: () => createPrimitivePropBuilder(type, "optional") } : {}
82
- });
83
- }
84
- function createObjectProp(properties) {
85
- return wrapProp(new require_object.ObjectProp(properties, "required"));
86
- }
87
- function createComponentPropWithChildrenBuilder(type, visibility, childrenProp) {
88
- const baseProp = new require_component.ComponentPropWithPropertiesProp(type, { children: childrenProp }, visibility);
89
- const validate = ((value) => baseProp.validate(value));
90
- return Object.assign(validate, {
91
- _baseProp: baseProp,
92
- type,
93
- visibility,
94
- props: (shape) => wrapProp(new require_component.ComponentPropWithPropertiesProp(type, {
95
- ...shape,
96
- children: childrenProp
97
- }, visibility)),
98
- or: (other) => {
99
- return wrapProp(new require_union.UnionProp([baseProp, ...flattenUnionMembers(other._baseProp)], baseProp.visibility));
100
- },
101
- ...visibility === "required" ? { optional: () => createComponentPropWithChildrenBuilder(type, "optional", childrenProp) } : {}
102
- });
103
- }
104
- function buildChildrenProp(childrenType, childrenVisibility, renderProps) {
105
- if (renderProps !== void 0) return wrapProp(new require_component.RenderChildrenProp(renderProps, childrenType, childrenVisibility));
106
- return wrapProp(new require_component.ComponentProp(childrenType, childrenVisibility));
107
- }
108
- function createComponentPropBuilder(type, visibility = "required") {
109
- const prop = new require_component.ComponentProp(type, visibility);
110
- const validate = ((value) => prop.validate(value));
111
- return Object.assign(validate, {
112
- type,
113
- visibility,
114
- _baseProp: prop,
115
- props: (shape) => wrapProp(new require_component.ComponentPropWithPropertiesProp(type, shape, visibility)),
116
- config: (config) => createConfiguredWrappedProp(prop, config),
117
- withChildren: (options) => {
118
- return createComponentPropWithChildrenBuilder(type, visibility, buildChildrenProp(options?.type ?? "ReactNode", options?.visibility ?? "optional", options?.props ?? void 0));
119
- },
120
- or: (other) => {
121
- return wrapProp(new require_union.UnionProp([prop, ...flattenUnionMembers(other._baseProp)], prop.visibility));
122
- },
123
- ...visibility === "required" ? { optional: () => createComponentPropBuilder(type, "optional") } : {}
124
- });
125
- }
126
- const createProp = {
127
- string: createPrimitivePropBuilder("string"),
128
- number: createPrimitivePropBuilder("number"),
129
- boolean: createPrimitivePropBuilder("boolean"),
130
- object: createObjectProp,
131
- component: (options) => createComponentPropBuilder(options.type)
132
- };
133
-
134
- //#endregion
135
- exports.createPrimitivePropBuilder = createPrimitivePropBuilder;
136
- exports.createProp = createProp;
137
- //# sourceMappingURL=builders.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"builders.cjs","names":["ObjectProp","ComponentPropWithPropertiesProp","UnionProp","RenderChildrenProp","StringProp","NumberProp","BooleanProp","LiteralProp","EnumProp","ComponentProp"],"sources":["../../src/validators/builders.ts"],"sourcesContent":["import { JSX } from 'react';\nimport { BaseProp } from './base';\nimport { ComponentProp, ComponentPropWithPropertiesProp, RenderChildrenProp } from './component';\nimport { EnumProp } from './enum';\nimport { LiteralProp } from './literal';\nimport { ObjectProp } from './object';\nimport { BooleanProp, NumberProp, StringProp } from './primitive';\nimport type {\n AnyBaseProp,\n AnyBuiltPropDefinition,\n BuiltPropShape,\n ComponentPropType,\n ExtractPropValue,\n NonEmptyReadonlyArray,\n PrimitivePropType,\n PrimitiveTypesMap,\n PropConfig,\n PropVisibility,\n ResolveLayoutProps,\n} from './types';\nimport { UnionProp } from './union';\n\ntype ExtractVisibility<Prop extends AnyBaseProp> =\n Prop extends BaseProp<any, infer V extends PropVisibility, any>\n ? V\n : PropVisibility;\n\ntype OptionalChain<\n Visibility extends PropVisibility,\n OptionalProp extends AnyBaseProp,\n> = Visibility extends 'required'\n ? { optional(): WrappedProp<OptionalProp> }\n : {};\n\ntype ConfigChain<Prop extends AnyBaseProp> = {\n config<const Config extends PropConfig>(\n config: Config,\n ): ConfiguredWrappedProp<Prop, Config>;\n};\n\ntype PrimitiveWrappedPropState<\n Type extends PrimitivePropType,\n Visibility extends PropVisibility,\n Value,\n> = {\n type: Type;\n visibility: Visibility;\n} & ([Value] extends [never] ? {} : { value: Value });\n\ntype ObjectWrappedPropState<\n Shape extends BuiltPropShape,\n Visibility extends PropVisibility,\n> = {\n type: 'object';\n visibility: Visibility;\n properties: Shape;\n};\n\ntype ComponentWithPropsWrappedPropState<\n Type extends ComponentPropType,\n Shape extends BuiltPropShape,\n Visibility extends PropVisibility,\n> = {\n type: Type;\n visibility: Visibility;\n properties: Shape;\n};\n\ntype UnionWrappedPropState<\n Members extends readonly AnyBaseProp[],\n Visibility extends PropVisibility,\n> = {\n type: 'union';\n visibility: Visibility;\n members: Members;\n};\n\ntype RenderChildrenWrappedPropState<\n Shape extends BuiltPropShape,\n ChildrenType extends ComponentPropType,\n Visibility extends PropVisibility,\n> = {\n type: 'function';\n visibility: Visibility;\n renderProps: Shape;\n childrenType: ChildrenType;\n};\n\ntype StringWrappedPropState<Visibility extends PropVisibility> =\n PrimitiveWrappedPropState<'string', Visibility, string | undefined>;\ntype NumberWrappedPropState<Visibility extends PropVisibility> =\n PrimitiveWrappedPropState<'number', Visibility, number | undefined>;\ntype BooleanWrappedPropState<Visibility extends PropVisibility> =\n PrimitiveWrappedPropState<'boolean', Visibility, boolean | undefined>;\ntype LiteralWrappedPropState<\n Value,\n Type extends PrimitivePropType,\n Visibility extends PropVisibility,\n> = PrimitiveWrappedPropState<Type, Visibility, Value>;\ntype EnumWrappedPropState<\n Type extends PrimitivePropType,\n Visibility extends PropVisibility,\n> = PrimitiveWrappedPropState<Type, Visibility, never>;\n\ntype WrappedPropState<Prop extends AnyBaseProp> =\n Prop extends StringProp<infer Visibility>\n ? StringWrappedPropState<Visibility>\n : Prop extends NumberProp<infer Visibility>\n ? NumberWrappedPropState<Visibility>\n : Prop extends BooleanProp<infer Visibility>\n ? BooleanWrappedPropState<Visibility>\n : Prop extends LiteralProp<infer Value, infer Type, infer Visibility>\n ? LiteralWrappedPropState<Value, Type, Visibility>\n : Prop extends EnumProp<infer _Values, infer Type, infer Visibility>\n ? EnumWrappedPropState<Type, Visibility>\n : Prop extends ObjectProp<infer Shape, infer Visibility>\n ? ObjectWrappedPropState<Shape, Visibility>\n : Prop extends ComponentPropWithPropertiesProp<\n infer Type,\n infer Shape,\n infer Visibility\n >\n ? ComponentWithPropsWrappedPropState<Type, Shape, Visibility>\n : Prop extends ComponentProp<infer Type, infer Visibility>\n ? { type: Type; visibility: Visibility }\n : Prop extends UnionProp<infer Members, infer Visibility>\n ? UnionWrappedPropState<Members, Visibility>\n : Prop extends RenderChildrenProp<\n infer Shape,\n infer ChildrenType,\n infer Visibility\n >\n ? RenderChildrenWrappedPropState<\n Shape,\n ChildrenType,\n Visibility\n >\n : never;\n\ntype ConfiguredWrappedProp<\n Prop extends AnyBaseProp,\n Config extends PropConfig,\n> = ((value: unknown) => ReturnType<Prop['validate']>) &\n WrappedPropState<Prop> & {\n _baseProp: Prop;\n config: Config;\n };\n\nexport type WrappedProp<Prop extends AnyBaseProp> = ((\n value: unknown,\n) => ReturnType<Prop['validate']>) &\n WrappedPropState<Prop> &\n WrappedPropChainMembers<Prop> & {\n _baseProp: Prop;\n or<Other extends AnyBaseProp>(other: {\n _baseProp: Other;\n }): WrappedProp<UnionProp<readonly [Prop, Other], ExtractVisibility<Prop>>>;\n };\n\nexport type LiteralWrappedProp<\n Value extends PrimitiveTypesMap[Type],\n Type extends PrimitivePropType,\n Visibility extends PropVisibility,\n> = WrappedProp<LiteralProp<Value, Type, Visibility>>;\n\nexport type EnumWrappedProp<\n Values extends NonEmptyReadonlyArray<PrimitiveTypesMap[Type]>,\n Type extends PrimitivePropType,\n Visibility extends PropVisibility,\n> = WrappedProp<EnumProp<Values, Type, Visibility>>;\n\ntype WrapperFor = 'literal' | 'enum';\n\ntype GetValueForWrapper<\n Type extends PrimitivePropType,\n For extends WrapperFor,\n Value extends PrimitiveTypesMap[Type],\n> = For extends 'literal'\n ? Value\n : For extends 'enum'\n ? NonEmptyReadonlyArray<Value>\n : never;\n\ntype WrappedPropFor<\n Type extends PrimitivePropType,\n Visibility extends PropVisibility,\n For extends WrapperFor,\n Value extends PrimitiveTypesMap[Type],\n> = For extends 'literal'\n ? LiteralWrappedProp<Value, Type, Visibility>\n : For extends 'enum'\n ? EnumWrappedProp<NonEmptyReadonlyArray<Value>, Type, Visibility>\n : never;\n\ntype CreateWrappedProp<\n Type extends PrimitivePropType,\n Visibility extends PropVisibility,\n For extends WrapperFor,\n> = <Value extends PrimitiveTypesMap[Type]>(\n value: GetValueForWrapper<Type, For, Value>,\n) => WrappedPropFor<Type, Visibility, For, Value>;\n\ntype WrappedPropBuilder<\n Type extends PrimitivePropType,\n Visibility extends PropVisibility,\n Prop extends AnyBaseProp,\n OptionalProp extends AnyBaseProp,\n> = ConfigChain<Prop> &\n OptionalChain<Visibility, OptionalProp> & {\n literal: CreateWrappedProp<Type, Visibility, 'literal'>;\n enum: CreateWrappedProp<Type, Visibility, 'enum'>;\n };\n\ntype PrimitivePropTypeMap<Visibility extends PropVisibility> = {\n string: WrappedPropBuilder<\n 'string',\n Visibility,\n StringProp<Visibility>,\n StringProp<'optional'>\n >;\n number: WrappedPropBuilder<\n 'number',\n Visibility,\n NumberProp<Visibility>,\n NumberProp<'optional'>\n >;\n boolean: WrappedPropBuilder<\n 'boolean',\n Visibility,\n BooleanProp<Visibility>,\n BooleanProp<'optional'>\n >;\n};\n\ntype WrappedPrimitiveProp<Prop> =\n Prop extends BaseProp<\n infer Type extends PrimitivePropType,\n infer Visibility extends PropVisibility\n >\n ? PrimitivePropTypeMap<Visibility>[Type]\n : never;\n\ntype ConfigChainBuilder<\n Prop extends AnyBaseProp,\n Visibility extends PropVisibility,\n OptionalProp extends AnyBaseProp,\n> = ConfigChain<Prop> & OptionalChain<Visibility, OptionalProp>;\n\ntype WrappedSpecialProp<Prop> =\n Prop extends LiteralProp<infer Value, infer Type, infer Visibility>\n ? ConfigChainBuilder<\n LiteralProp<Value, Type, Visibility>,\n Visibility,\n LiteralProp<Value, Type, 'optional'>\n >\n : Prop extends EnumProp<infer Values, infer Type, infer Visibility>\n ? ConfigChainBuilder<\n EnumProp<Values, Type, Visibility>,\n Visibility,\n EnumProp<Values, Type, 'optional'>\n >\n : never;\n\ntype WrappedObjectProp<Prop> =\n Prop extends ObjectProp<infer Shape, infer Visibility>\n ? OptionalChain<Visibility, ObjectProp<Shape, 'optional'>>\n : never;\n\ntype WrappedComponentWithPropsProp<Prop> =\n Prop extends ComponentPropWithPropertiesProp<\n infer Type,\n infer Shape,\n infer Visibility\n >\n ? OptionalChain<\n Visibility,\n ComponentPropWithPropertiesProp<Type, Shape, 'optional'>\n >\n : never;\n\ntype WrappedUnionProp<Prop> =\n Prop extends UnionProp<infer Members, infer Visibility>\n ? OptionalChain<Visibility, UnionProp<Members, 'optional'>>\n : never;\n\ntype WrappedPropChainMembers<Prop extends AnyBaseProp> = [\n WrappedSpecialProp<Prop>,\n] extends [never]\n ? [WrappedObjectProp<Prop>] extends [never]\n ? [WrappedComponentWithPropsProp<Prop>] extends [never]\n ? [WrappedUnionProp<Prop>] extends [never]\n ? [WrappedPrimitiveProp<Prop>] extends [never]\n ? {}\n : WrappedPrimitiveProp<Prop>\n : WrappedUnionProp<Prop>\n : WrappedComponentWithPropsProp<Prop>\n : WrappedObjectProp<Prop>\n : WrappedSpecialProp<Prop>;\n\nexport type EnumValueDefinition<\n Values extends NonEmptyReadonlyArray<PrimitiveTypesMap[Type]>,\n Type extends PrimitivePropType,\n Visibility extends PropVisibility = 'required',\n> = WrappedProp<EnumProp<Values, Type, Visibility>>;\n\nexport type ObjectValueDefinition<\n Shape extends BuiltPropShape,\n Visibility extends PropVisibility = 'required',\n> = WrappedProp<ObjectProp<Shape, Visibility>>;\n\ntype PrimitivePropInstanceMap<Visibility extends PropVisibility> = {\n string: WrappedProp<StringProp<Visibility>>;\n number: WrappedProp<NumberProp<Visibility>>;\n boolean: WrappedProp<BooleanProp<Visibility>>;\n};\n\ntype PrimitiveBasePropInstanceMap<Visibility extends PropVisibility> = {\n string: StringProp<Visibility>;\n number: NumberProp<Visibility>;\n boolean: BooleanProp<Visibility>;\n};\n\ntype LiteralPropBuilder<\n Type extends PrimitivePropType,\n Visibility extends PropVisibility = 'required',\n> = <const Value extends PrimitiveTypesMap[Type]>(\n value: Value,\n) => LiteralWrappedProp<Value, Type, Visibility>;\n\ntype EnumPropBuilder<\n Type extends PrimitivePropType,\n Visibility extends PropVisibility = 'required',\n> = <const Values extends NonEmptyReadonlyArray<PrimitiveTypesMap[Type]>>(\n values: Values,\n) => EnumWrappedProp<Values, Type, Visibility>;\n\ntype PrimitivePropBuilder<\n Type extends PrimitivePropType,\n Visibility extends PropVisibility = 'required',\n> = (() => PrimitivePropInstanceMap<Visibility>[Type]) & {\n literal: LiteralPropBuilder<Type, Visibility>;\n enum: EnumPropBuilder<Type, Visibility>;\n config<const Config extends PropConfig>(\n config: Config,\n ): ConfiguredWrappedProp<\n PrimitiveBasePropInstanceMap<Visibility>[Type],\n Config\n >;\n} & (Visibility extends 'required'\n ? { optional(): PrimitivePropBuilder<Type, 'optional'> }\n : {});\n\nfunction createConfiguredWrappedProp<\n Prop extends AnyBaseProp,\n const Config extends PropConfig,\n>(prop: Prop, config: Config): ConfiguredWrappedProp<Prop, Config> {\n const validate = ((value: unknown) =>\n prop.validate(value)) as ConfiguredWrappedProp<Prop, Config>;\n\n return Object.assign(validate, getPropState(prop), {\n _baseProp: prop,\n config,\n });\n}\n\nfunction getPropState<Prop extends AnyBaseProp>(\n prop: Prop,\n): WrappedPropState<Prop> {\n const state = {\n type: prop.type,\n visibility: prop.visibility,\n } as Record<string, unknown>;\n\n if ('value' in prop && prop.value !== undefined) {\n state.value = prop.value;\n }\n\n if (\n prop instanceof ObjectProp ||\n prop instanceof ComponentPropWithPropertiesProp\n ) {\n state.properties = prop.properties;\n }\n\n if (prop instanceof UnionProp) {\n state.members = prop.members;\n }\n\n if (prop instanceof RenderChildrenProp) {\n state.renderProps = prop.renderProps;\n state.childrenType = prop.childrenType;\n }\n\n return state as WrappedPropState<Prop>;\n}\n\nfunction flattenUnionMembers(prop: AnyBaseProp): AnyBaseProp[] {\n return prop instanceof UnionProp\n ? [...(prop.members as AnyBaseProp[])]\n : [prop];\n}\n\nfunction wrapProp<Prop extends AnyBaseProp>(prop: Prop): WrappedProp<Prop> {\n const validate = ((value: unknown) =>\n prop.validate(value)) as WrappedProp<Prop>;\n const chainedProps = getPropState(prop) as Record<string, unknown>;\n const methodNames = ['optional', 'literal', 'enum', 'config'] as const;\n\n for (const methodName of methodNames) {\n const method = (prop as Record<string, unknown>)[methodName];\n\n if (typeof method === 'function') {\n if (methodName === 'config') {\n chainedProps.config = <const Config extends PropConfig>(\n config: Config,\n ) => createConfiguredWrappedProp(prop, config);\n continue;\n }\n\n chainedProps[methodName] = (...args: unknown[]) => {\n const nextProp = (\n method as (...methodArgs: unknown[]) => AnyBaseProp\n ).apply(prop, args);\n\n return wrapProp(nextProp);\n };\n }\n }\n\n chainedProps._baseProp = prop;\n chainedProps.or = (other: WrappedProp<AnyBaseProp>) => {\n const otherBase = (other as unknown as Record<string, unknown>)\n ._baseProp as AnyBaseProp;\n const members = [\n ...flattenUnionMembers(prop),\n ...flattenUnionMembers(otherBase),\n ] as never;\n return wrapProp(new UnionProp(members, prop.visibility));\n };\n\n return Object.assign(validate, chainedProps);\n}\n\nfunction createPrimitiveProp<\n Type extends PrimitivePropType,\n Visibility extends PropVisibility,\n>(\n type: Type,\n visibility: Visibility,\n): PrimitiveBasePropInstanceMap<Visibility>[Type] {\n switch (type) {\n case 'string':\n return new StringProp(\n visibility,\n ) as unknown as PrimitiveBasePropInstanceMap<Visibility>[Type];\n case 'number':\n return new NumberProp(\n visibility,\n ) as unknown as PrimitiveBasePropInstanceMap<Visibility>[Type];\n case 'boolean':\n return new BooleanProp(\n visibility,\n ) as unknown as PrimitiveBasePropInstanceMap<Visibility>[Type];\n }\n}\n\nfunction createWrappedProp<\n Type extends PrimitivePropType,\n Visibility extends PropVisibility,\n>(type: Type, visibility: Visibility) {\n return <For extends WrapperFor>(wrapperFor: For) =>\n <Value extends PrimitiveTypesMap[Type]>(\n value: GetValueForWrapper<Type, For, Value>,\n ) => {\n if (wrapperFor === 'literal') {\n return wrapProp(\n new LiteralProp(value as never, type, visibility),\n ) as unknown as WrappedPropFor<Type, Visibility, For, Value>;\n }\n\n if (wrapperFor === 'enum') {\n return wrapProp(\n new EnumProp(value as never, type, visibility),\n ) as unknown as WrappedPropFor<Type, Visibility, For, Value>;\n }\n\n throw new Error(`Invalid wrapper for: ${wrapperFor}`);\n };\n}\n\nexport function createPrimitivePropBuilder<\n Type extends PrimitivePropType,\n Visibility extends PropVisibility = 'required',\n>(\n type: Type,\n visibility = 'required' as Visibility,\n): PrimitivePropBuilder<Type, Visibility> {\n const propWrapper = createWrappedProp(type, visibility);\n const builder = (() =>\n wrapProp(\n createPrimitiveProp(type, visibility),\n )) as unknown as PrimitivePropBuilder<Type, Visibility>;\n\n return Object.assign(builder, {\n literal: propWrapper('literal'),\n enum: propWrapper('enum'),\n config: <const Config extends PropConfig>(config: Config) =>\n createConfiguredWrappedProp(\n createPrimitiveProp(type, visibility),\n config,\n ),\n ...(visibility === 'required'\n ? { optional: () => createPrimitivePropBuilder(type, 'optional') }\n : {}),\n }) as unknown as PrimitivePropBuilder<Type, Visibility>;\n}\n\nfunction createObjectProp<const Shape extends BuiltPropShape>(\n properties: Shape,\n): ObjectValueDefinition<Shape, 'required'> {\n return wrapProp(new ObjectProp(properties, 'required'));\n}\n\ntype ChildrenPropFor<\n ChildrenType extends ComponentPropType,\n ChildrenVisibility extends PropVisibility,\n RenderProps extends BuiltPropShape | undefined,\n> = (RenderProps extends BuiltPropShape\n ? WrappedProp<\n RenderChildrenProp<RenderProps, ChildrenType, ChildrenVisibility>\n >\n : WrappedProp<ComponentProp<ChildrenType, ChildrenVisibility>>) &\n AnyBuiltPropDefinition;\n\ntype WithChildrenShape<\n Shape extends BuiltPropShape,\n ChildrenProp extends AnyBuiltPropDefinition,\n> = Shape & { children: ChildrenProp };\n\ntype WithChildrenOptions<\n ChildrenType extends ComponentPropType,\n ChildrenVisibility extends PropVisibility,\n RenderProps extends BuiltPropShape | undefined,\n> = {\n type?: ChildrenType;\n visibility?: ChildrenVisibility;\n props?: RenderProps;\n};\n\nexport type ComponentPropWithChildrenBuilder<\n Type extends ComponentPropType,\n Visibility extends PropVisibility,\n ChildrenProp extends AnyBuiltPropDefinition,\n> = ((value: unknown) => void) & {\n _baseProp: ComponentPropWithPropertiesProp<\n Type,\n { children: ChildrenProp },\n Visibility\n >;\n type: Type;\n visibility: Visibility;\n props<const Shape extends BuiltPropShape>(\n shape: Shape,\n ): WrappedProp<\n ComponentPropWithPropertiesProp<\n Type,\n WithChildrenShape<Shape, ChildrenProp>,\n Visibility\n >\n >;\n or<Other extends AnyBaseProp>(other: {\n _baseProp: Other;\n }): WrappedProp<\n UnionProp<\n readonly [\n ComponentPropWithPropertiesProp<\n Type,\n { children: ChildrenProp },\n Visibility\n >,\n Other,\n ],\n Visibility\n >\n >;\n} & (Visibility extends 'required'\n ? {\n optional(): ComponentPropWithChildrenBuilder<\n Type,\n 'optional',\n ChildrenProp\n >;\n }\n : {});\n\nexport type ComponentPropBuilder<\n Type extends ComponentPropType,\n Visibility extends PropVisibility = 'required',\n> = ((value: unknown) => void) & {\n _baseProp: ComponentProp<Type, Visibility>;\n type: Type;\n visibility: Visibility;\n props<const Shape extends BuiltPropShape>(\n shape: Shape,\n ): WrappedProp<ComponentPropWithPropertiesProp<Type, Shape, Visibility>>;\n config<const Config extends PropConfig>(\n config: Config,\n ): ConfiguredWrappedProp<ComponentProp<Type, Visibility>, Config>;\n withChildren<\n ChildrenType extends ComponentPropType = 'ReactNode',\n ChildrenVisibility extends PropVisibility = 'optional',\n const RenderProps extends BuiltPropShape | undefined = undefined,\n >(\n options?: WithChildrenOptions<\n ChildrenType,\n ChildrenVisibility,\n RenderProps\n >,\n ): ComponentPropWithChildrenBuilder<\n Type,\n Visibility,\n ChildrenPropFor<ChildrenType, ChildrenVisibility, RenderProps>\n >;\n or<Other extends AnyBaseProp>(other: {\n _baseProp: Other;\n }): WrappedProp<\n UnionProp<readonly [ComponentProp<Type, Visibility>, Other], Visibility>\n >;\n} & (Visibility extends 'required'\n ? { optional(): ComponentPropBuilder<Type, 'optional'> }\n : {});\n\nfunction createComponentPropWithChildrenBuilder<\n Type extends ComponentPropType,\n Visibility extends PropVisibility,\n ChildrenProp extends AnyBuiltPropDefinition,\n>(\n type: Type,\n visibility: Visibility,\n childrenProp: ChildrenProp,\n): ComponentPropWithChildrenBuilder<Type, Visibility, ChildrenProp> {\n const baseProp = new ComponentPropWithPropertiesProp(\n type,\n { children: childrenProp },\n visibility,\n );\n const validate = ((value: unknown) =>\n baseProp.validate(value)) as unknown as ComponentPropWithChildrenBuilder<\n Type,\n Visibility,\n ChildrenProp\n >;\n\n return Object.assign(validate, {\n _baseProp: baseProp,\n type,\n visibility,\n props: <const Shape extends BuiltPropShape>(shape: Shape) =>\n wrapProp(\n new ComponentPropWithPropertiesProp(\n type,\n { ...shape, children: childrenProp },\n visibility,\n ),\n ),\n or: (other: { _baseProp: AnyBaseProp }) => {\n const members = [\n baseProp,\n ...flattenUnionMembers(other._baseProp),\n ] as never;\n return wrapProp(new UnionProp(members, baseProp.visibility));\n },\n ...(visibility === 'required'\n ? {\n optional: () =>\n createComponentPropWithChildrenBuilder(\n type,\n 'optional' as const,\n childrenProp,\n ),\n }\n : {}),\n }) as unknown as ComponentPropWithChildrenBuilder<\n Type,\n Visibility,\n ChildrenProp\n >;\n}\n\nfunction buildChildrenProp<\n ChildrenType extends ComponentPropType,\n ChildrenVisibility extends PropVisibility,\n RenderProps extends BuiltPropShape | undefined,\n>(\n childrenType: ChildrenType,\n childrenVisibility: ChildrenVisibility,\n renderProps: RenderProps,\n): ChildrenPropFor<ChildrenType, ChildrenVisibility, RenderProps> {\n if (renderProps !== undefined) {\n return wrapProp(\n new RenderChildrenProp(renderProps, childrenType, childrenVisibility),\n ) as unknown as ChildrenPropFor<\n ChildrenType,\n ChildrenVisibility,\n RenderProps\n >;\n }\n\n return wrapProp(\n new ComponentProp(childrenType, childrenVisibility),\n ) as unknown as ChildrenPropFor<\n ChildrenType,\n ChildrenVisibility,\n RenderProps\n >;\n}\n\nfunction createComponentPropBuilder<\n Type extends ComponentPropType,\n Visibility extends PropVisibility = 'required',\n>(\n type: Type,\n visibility = 'required' as Visibility,\n): ComponentPropBuilder<Type, Visibility> {\n const prop = new ComponentProp(type, visibility);\n const validate = ((value: unknown) =>\n prop.validate(value)) as ComponentPropBuilder<Type, Visibility>;\n\n return Object.assign(validate, {\n type,\n visibility,\n _baseProp: prop,\n props: <const Shape extends BuiltPropShape>(shape: Shape) =>\n wrapProp(new ComponentPropWithPropertiesProp(type, shape, visibility)),\n config: <const Config extends PropConfig>(config: Config) =>\n createConfiguredWrappedProp(prop, config),\n withChildren: <\n ChildrenType extends ComponentPropType = 'ReactNode',\n ChildrenVisibility extends PropVisibility = 'optional',\n const RenderProps extends BuiltPropShape | undefined = undefined,\n >(\n options?: WithChildrenOptions<\n ChildrenType,\n ChildrenVisibility,\n RenderProps\n >,\n ) => {\n const childrenType = (options?.type ?? 'ReactNode') as ChildrenType;\n const childrenVisibility = (options?.visibility ??\n 'optional') as ChildrenVisibility;\n const renderProps = (options?.props ?? undefined) as RenderProps;\n return createComponentPropWithChildrenBuilder(\n type,\n visibility,\n buildChildrenProp(childrenType, childrenVisibility, renderProps),\n );\n },\n or: (other: { _baseProp: AnyBaseProp }) => {\n const members = [prop, ...flattenUnionMembers(other._baseProp)] as never;\n return wrapProp(new UnionProp(members, prop.visibility));\n },\n ...(visibility === 'required'\n ? { optional: () => createComponentPropBuilder(type, 'optional') }\n : {}),\n }) as unknown as ComponentPropBuilder<Type, Visibility>;\n}\n\nexport const createProp = {\n string: createPrimitivePropBuilder('string'),\n number: createPrimitivePropBuilder('number'),\n boolean: createPrimitivePropBuilder('boolean'),\n object: createObjectProp,\n component: <Type extends ComponentPropType>(options: { type: Type }) =>\n createComponentPropBuilder(options.type),\n};\n"],"mappings":"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"}
@@ -1,156 +0,0 @@
1
- import { AnyBaseProp, AnyBuiltPropDefinition, BuiltPropShape, ComponentPropType, NonEmptyReadonlyArray, PrimitivePropType, PrimitiveTypesMap, PropConfig, PropVisibility } from "./types.cjs";
2
- import { BaseProp } from "./base.cjs";
3
- import { ComponentProp, ComponentPropWithPropertiesProp, RenderChildrenProp } from "./component.cjs";
4
- import { EnumProp } from "./enum.cjs";
5
- import { LiteralProp } from "./literal.cjs";
6
- import { ObjectProp } from "./object.cjs";
7
- import { BooleanProp, NumberProp, StringProp } from "./primitive.cjs";
8
- import { UnionProp } from "./union.cjs";
9
-
10
- //#region src/validators/builders.d.ts
11
- type ExtractVisibility<Prop extends AnyBaseProp> = Prop extends BaseProp<any, infer V extends PropVisibility, any> ? V : PropVisibility;
12
- type OptionalChain<Visibility extends PropVisibility, OptionalProp extends AnyBaseProp> = Visibility extends 'required' ? {
13
- optional(): WrappedProp<OptionalProp>;
14
- } : {};
15
- type ConfigChain<Prop extends AnyBaseProp> = {
16
- config<const Config extends PropConfig>(config: Config): ConfiguredWrappedProp<Prop, Config>;
17
- };
18
- type PrimitiveWrappedPropState<Type extends PrimitivePropType, Visibility extends PropVisibility, Value> = {
19
- type: Type;
20
- visibility: Visibility;
21
- } & ([Value] extends [never] ? {} : {
22
- value: Value;
23
- });
24
- type ObjectWrappedPropState<Shape extends BuiltPropShape, Visibility extends PropVisibility> = {
25
- type: 'object';
26
- visibility: Visibility;
27
- properties: Shape;
28
- };
29
- type ComponentWithPropsWrappedPropState<Type extends ComponentPropType, Shape extends BuiltPropShape, Visibility extends PropVisibility> = {
30
- type: Type;
31
- visibility: Visibility;
32
- properties: Shape;
33
- };
34
- type UnionWrappedPropState<Members extends readonly AnyBaseProp[], Visibility extends PropVisibility> = {
35
- type: 'union';
36
- visibility: Visibility;
37
- members: Members;
38
- };
39
- type RenderChildrenWrappedPropState<Shape extends BuiltPropShape, ChildrenType extends ComponentPropType, Visibility extends PropVisibility> = {
40
- type: 'function';
41
- visibility: Visibility;
42
- renderProps: Shape;
43
- childrenType: ChildrenType;
44
- };
45
- type StringWrappedPropState<Visibility extends PropVisibility> = PrimitiveWrappedPropState<'string', Visibility, string | undefined>;
46
- type NumberWrappedPropState<Visibility extends PropVisibility> = PrimitiveWrappedPropState<'number', Visibility, number | undefined>;
47
- type BooleanWrappedPropState<Visibility extends PropVisibility> = PrimitiveWrappedPropState<'boolean', Visibility, boolean | undefined>;
48
- type LiteralWrappedPropState<Value, Type extends PrimitivePropType, Visibility extends PropVisibility> = PrimitiveWrappedPropState<Type, Visibility, Value>;
49
- type EnumWrappedPropState<Type extends PrimitivePropType, Visibility extends PropVisibility> = PrimitiveWrappedPropState<Type, Visibility, never>;
50
- type WrappedPropState<Prop extends AnyBaseProp> = Prop extends StringProp<infer Visibility> ? StringWrappedPropState<Visibility> : Prop extends NumberProp<infer Visibility> ? NumberWrappedPropState<Visibility> : Prop extends BooleanProp<infer Visibility> ? BooleanWrappedPropState<Visibility> : Prop extends LiteralProp<infer Value, infer Type, infer Visibility> ? LiteralWrappedPropState<Value, Type, Visibility> : Prop extends EnumProp<infer _Values, infer Type, infer Visibility> ? EnumWrappedPropState<Type, Visibility> : Prop extends ObjectProp<infer Shape, infer Visibility> ? ObjectWrappedPropState<Shape, Visibility> : Prop extends ComponentPropWithPropertiesProp<infer Type, infer Shape, infer Visibility> ? ComponentWithPropsWrappedPropState<Type, Shape, Visibility> : Prop extends ComponentProp<infer Type, infer Visibility> ? {
51
- type: Type;
52
- visibility: Visibility;
53
- } : Prop extends UnionProp<infer Members, infer Visibility> ? UnionWrappedPropState<Members, Visibility> : Prop extends RenderChildrenProp<infer Shape, infer ChildrenType, infer Visibility> ? RenderChildrenWrappedPropState<Shape, ChildrenType, Visibility> : never;
54
- type ConfiguredWrappedProp<Prop extends AnyBaseProp, Config extends PropConfig> = ((value: unknown) => ReturnType<Prop['validate']>) & WrappedPropState<Prop> & {
55
- _baseProp: Prop;
56
- config: Config;
57
- };
58
- type WrappedProp<Prop extends AnyBaseProp> = ((value: unknown) => ReturnType<Prop['validate']>) & WrappedPropState<Prop> & WrappedPropChainMembers<Prop> & {
59
- _baseProp: Prop;
60
- or<Other extends AnyBaseProp>(other: {
61
- _baseProp: Other;
62
- }): WrappedProp<UnionProp<readonly [Prop, Other], ExtractVisibility<Prop>>>;
63
- };
64
- type LiteralWrappedProp<Value extends PrimitiveTypesMap[Type], Type extends PrimitivePropType, Visibility extends PropVisibility> = WrappedProp<LiteralProp<Value, Type, Visibility>>;
65
- type EnumWrappedProp<Values extends NonEmptyReadonlyArray<PrimitiveTypesMap[Type]>, Type extends PrimitivePropType, Visibility extends PropVisibility> = WrappedProp<EnumProp<Values, Type, Visibility>>;
66
- type WrapperFor = 'literal' | 'enum';
67
- type GetValueForWrapper<Type extends PrimitivePropType, For extends WrapperFor, Value extends PrimitiveTypesMap[Type]> = For extends 'literal' ? Value : For extends 'enum' ? NonEmptyReadonlyArray<Value> : never;
68
- type WrappedPropFor<Type extends PrimitivePropType, Visibility extends PropVisibility, For extends WrapperFor, Value extends PrimitiveTypesMap[Type]> = For extends 'literal' ? LiteralWrappedProp<Value, Type, Visibility> : For extends 'enum' ? EnumWrappedProp<NonEmptyReadonlyArray<Value>, Type, Visibility> : never;
69
- type CreateWrappedProp<Type extends PrimitivePropType, Visibility extends PropVisibility, For extends WrapperFor> = <Value extends PrimitiveTypesMap[Type]>(value: GetValueForWrapper<Type, For, Value>) => WrappedPropFor<Type, Visibility, For, Value>;
70
- type WrappedPropBuilder<Type extends PrimitivePropType, Visibility extends PropVisibility, Prop extends AnyBaseProp, OptionalProp extends AnyBaseProp> = ConfigChain<Prop> & OptionalChain<Visibility, OptionalProp> & {
71
- literal: CreateWrappedProp<Type, Visibility, 'literal'>;
72
- enum: CreateWrappedProp<Type, Visibility, 'enum'>;
73
- };
74
- type PrimitivePropTypeMap<Visibility extends PropVisibility> = {
75
- string: WrappedPropBuilder<'string', Visibility, StringProp<Visibility>, StringProp<'optional'>>;
76
- number: WrappedPropBuilder<'number', Visibility, NumberProp<Visibility>, NumberProp<'optional'>>;
77
- boolean: WrappedPropBuilder<'boolean', Visibility, BooleanProp<Visibility>, BooleanProp<'optional'>>;
78
- };
79
- type WrappedPrimitiveProp<Prop> = Prop extends BaseProp<infer Type extends PrimitivePropType, infer Visibility extends PropVisibility> ? PrimitivePropTypeMap<Visibility>[Type] : never;
80
- type ConfigChainBuilder<Prop extends AnyBaseProp, Visibility extends PropVisibility, OptionalProp extends AnyBaseProp> = ConfigChain<Prop> & OptionalChain<Visibility, OptionalProp>;
81
- type WrappedSpecialProp<Prop> = Prop extends LiteralProp<infer Value, infer Type, infer Visibility> ? ConfigChainBuilder<LiteralProp<Value, Type, Visibility>, Visibility, LiteralProp<Value, Type, 'optional'>> : Prop extends EnumProp<infer Values, infer Type, infer Visibility> ? ConfigChainBuilder<EnumProp<Values, Type, Visibility>, Visibility, EnumProp<Values, Type, 'optional'>> : never;
82
- type WrappedObjectProp<Prop> = Prop extends ObjectProp<infer Shape, infer Visibility> ? OptionalChain<Visibility, ObjectProp<Shape, 'optional'>> : never;
83
- type WrappedComponentWithPropsProp<Prop> = Prop extends ComponentPropWithPropertiesProp<infer Type, infer Shape, infer Visibility> ? OptionalChain<Visibility, ComponentPropWithPropertiesProp<Type, Shape, 'optional'>> : never;
84
- type WrappedUnionProp<Prop> = Prop extends UnionProp<infer Members, infer Visibility> ? OptionalChain<Visibility, UnionProp<Members, 'optional'>> : never;
85
- type WrappedPropChainMembers<Prop extends AnyBaseProp> = [WrappedSpecialProp<Prop>] extends [never] ? [WrappedObjectProp<Prop>] extends [never] ? [WrappedComponentWithPropsProp<Prop>] extends [never] ? [WrappedUnionProp<Prop>] extends [never] ? [WrappedPrimitiveProp<Prop>] extends [never] ? {} : WrappedPrimitiveProp<Prop> : WrappedUnionProp<Prop> : WrappedComponentWithPropsProp<Prop> : WrappedObjectProp<Prop> : WrappedSpecialProp<Prop>;
86
- type ObjectValueDefinition<Shape extends BuiltPropShape, Visibility extends PropVisibility = 'required'> = WrappedProp<ObjectProp<Shape, Visibility>>;
87
- type PrimitivePropInstanceMap<Visibility extends PropVisibility> = {
88
- string: WrappedProp<StringProp<Visibility>>;
89
- number: WrappedProp<NumberProp<Visibility>>;
90
- boolean: WrappedProp<BooleanProp<Visibility>>;
91
- };
92
- type PrimitiveBasePropInstanceMap<Visibility extends PropVisibility> = {
93
- string: StringProp<Visibility>;
94
- number: NumberProp<Visibility>;
95
- boolean: BooleanProp<Visibility>;
96
- };
97
- type LiteralPropBuilder<Type extends PrimitivePropType, Visibility extends PropVisibility = 'required'> = <const Value extends PrimitiveTypesMap[Type]>(value: Value) => LiteralWrappedProp<Value, Type, Visibility>;
98
- type EnumPropBuilder<Type extends PrimitivePropType, Visibility extends PropVisibility = 'required'> = <const Values extends NonEmptyReadonlyArray<PrimitiveTypesMap[Type]>>(values: Values) => EnumWrappedProp<Values, Type, Visibility>;
99
- type PrimitivePropBuilder<Type extends PrimitivePropType, Visibility extends PropVisibility = 'required'> = (() => PrimitivePropInstanceMap<Visibility>[Type]) & {
100
- literal: LiteralPropBuilder<Type, Visibility>;
101
- enum: EnumPropBuilder<Type, Visibility>;
102
- config<const Config extends PropConfig>(config: Config): ConfiguredWrappedProp<PrimitiveBasePropInstanceMap<Visibility>[Type], Config>;
103
- } & (Visibility extends 'required' ? {
104
- optional(): PrimitivePropBuilder<Type, 'optional'>;
105
- } : {});
106
- declare function createPrimitivePropBuilder<Type extends PrimitivePropType, Visibility extends PropVisibility = 'required'>(type: Type, visibility?: Visibility): PrimitivePropBuilder<Type, Visibility>;
107
- declare function createObjectProp<const Shape extends BuiltPropShape>(properties: Shape): ObjectValueDefinition<Shape, 'required'>;
108
- type ChildrenPropFor<ChildrenType extends ComponentPropType, ChildrenVisibility extends PropVisibility, RenderProps extends BuiltPropShape | undefined> = (RenderProps extends BuiltPropShape ? WrappedProp<RenderChildrenProp<RenderProps, ChildrenType, ChildrenVisibility>> : WrappedProp<ComponentProp<ChildrenType, ChildrenVisibility>>) & AnyBuiltPropDefinition;
109
- type WithChildrenShape<Shape extends BuiltPropShape, ChildrenProp extends AnyBuiltPropDefinition> = Shape & {
110
- children: ChildrenProp;
111
- };
112
- type WithChildrenOptions<ChildrenType extends ComponentPropType, ChildrenVisibility extends PropVisibility, RenderProps extends BuiltPropShape | undefined> = {
113
- type?: ChildrenType;
114
- visibility?: ChildrenVisibility;
115
- props?: RenderProps;
116
- };
117
- type ComponentPropWithChildrenBuilder<Type extends ComponentPropType, Visibility extends PropVisibility, ChildrenProp extends AnyBuiltPropDefinition> = ((value: unknown) => void) & {
118
- _baseProp: ComponentPropWithPropertiesProp<Type, {
119
- children: ChildrenProp;
120
- }, Visibility>;
121
- type: Type;
122
- visibility: Visibility;
123
- props<const Shape extends BuiltPropShape>(shape: Shape): WrappedProp<ComponentPropWithPropertiesProp<Type, WithChildrenShape<Shape, ChildrenProp>, Visibility>>;
124
- or<Other extends AnyBaseProp>(other: {
125
- _baseProp: Other;
126
- }): WrappedProp<UnionProp<readonly [ComponentPropWithPropertiesProp<Type, {
127
- children: ChildrenProp;
128
- }, Visibility>, Other], Visibility>>;
129
- } & (Visibility extends 'required' ? {
130
- optional(): ComponentPropWithChildrenBuilder<Type, 'optional', ChildrenProp>;
131
- } : {});
132
- type ComponentPropBuilder<Type extends ComponentPropType, Visibility extends PropVisibility = 'required'> = ((value: unknown) => void) & {
133
- _baseProp: ComponentProp<Type, Visibility>;
134
- type: Type;
135
- visibility: Visibility;
136
- props<const Shape extends BuiltPropShape>(shape: Shape): WrappedProp<ComponentPropWithPropertiesProp<Type, Shape, Visibility>>;
137
- config<const Config extends PropConfig>(config: Config): ConfiguredWrappedProp<ComponentProp<Type, Visibility>, Config>;
138
- withChildren<ChildrenType extends ComponentPropType = 'ReactNode', ChildrenVisibility extends PropVisibility = 'optional', const RenderProps extends BuiltPropShape | undefined = undefined>(options?: WithChildrenOptions<ChildrenType, ChildrenVisibility, RenderProps>): ComponentPropWithChildrenBuilder<Type, Visibility, ChildrenPropFor<ChildrenType, ChildrenVisibility, RenderProps>>;
139
- or<Other extends AnyBaseProp>(other: {
140
- _baseProp: Other;
141
- }): WrappedProp<UnionProp<readonly [ComponentProp<Type, Visibility>, Other], Visibility>>;
142
- } & (Visibility extends 'required' ? {
143
- optional(): ComponentPropBuilder<Type, 'optional'>;
144
- } : {});
145
- declare const createProp: {
146
- string: PrimitivePropBuilder<"string", "required">;
147
- number: PrimitivePropBuilder<"number", "required">;
148
- boolean: PrimitivePropBuilder<"boolean", "required">;
149
- object: typeof createObjectProp;
150
- component: <Type extends ComponentPropType>(options: {
151
- type: Type;
152
- }) => ComponentPropBuilder<Type, "required">;
153
- };
154
- //#endregion
155
- export { ComponentPropBuilder, ComponentPropWithChildrenBuilder, EnumWrappedProp, LiteralWrappedProp, ObjectValueDefinition, WrappedProp, createPrimitivePropBuilder, createProp };
156
- //# sourceMappingURL=builders.d.cts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"builders.d.cts","names":[],"sources":["../../src/validators/builders.ts"],"mappings":";;;;;;;;;;KAsBK,iBAAA,cAA+B,WAAA,IAClC,IAAA,SAAa,QAAA,sBAA8B,cAAA,SACvC,CAAA,GACA,cAAA;AAAA,KAED,aAAA,oBACgB,cAAA,uBACE,WAAA,IACnB,UAAA;EACE,QAAA,IAAY,WAAA,CAAY,YAAA;AAAA;AAAA,KAGzB,WAAA,cAAyB,WAAA;EAC5B,MAAA,sBAA4B,UAAA,EAC1B,MAAA,EAAQ,MAAA,GACP,qBAAA,CAAsB,IAAA,EAAM,MAAA;AAAA;AAAA,KAG5B,yBAAA,cACU,iBAAA,qBACM,cAAA;EAGnB,IAAA,EAAM,IAAA;EACN,UAAA,EAAY,UAAA;AAAA,MACR,KAAA;EAAgC,KAAA,EAAO,KAAA;AAAA;AAAA,KAExC,sBAAA,eACW,cAAA,qBACK,cAAA;EAEnB,IAAA;EACA,UAAA,EAAY,UAAA;EACZ,UAAA,EAAY,KAAA;AAAA;AAAA,KAGT,kCAAA,cACU,iBAAA,gBACC,cAAA,qBACK,cAAA;EAEnB,IAAA,EAAM,IAAA;EACN,UAAA,EAAY,UAAA;EACZ,UAAA,EAAY,KAAA;AAAA;AAAA,KAGT,qBAAA,0BACsB,WAAA,uBACN,cAAA;EAEnB,IAAA;EACA,UAAA,EAAY,UAAA;EACZ,OAAA,EAAS,OAAA;AAAA;AAAA,KAGN,8BAAA,eACW,cAAA,uBACO,iBAAA,qBACF,cAAA;EAEnB,IAAA;EACA,UAAA,EAAY,UAAA;EACZ,WAAA,EAAa,KAAA;EACb,YAAA,EAAc,YAAA;AAAA;AAAA,KAGX,sBAAA,oBAA0C,cAAA,IAC7C,yBAAA,WAAoC,UAAA;AAAA,KACjC,sBAAA,oBAA0C,cAAA,IAC7C,yBAAA,WAAoC,UAAA;AAAA,KACjC,uBAAA,oBAA2C,cAAA,IAC9C,yBAAA,YAAqC,UAAA;AAAA,KAClC,uBAAA,qBAEU,iBAAA,qBACM,cAAA,IACjB,yBAAA,CAA0B,IAAA,EAAM,UAAA,EAAY,KAAA;AAAA,KAC3C,oBAAA,cACU,iBAAA,qBACM,cAAA,IACjB,yBAAA,CAA0B,IAAA,EAAM,UAAA;AAAA,KAE/B,gBAAA,cAA8B,WAAA,IACjC,IAAA,SAAa,UAAA,qBACT,sBAAA,CAAuB,UAAA,IACvB,IAAA,SAAa,UAAA,qBACX,sBAAA,CAAuB,UAAA,IACvB,IAAA,SAAa,WAAA,qBACX,uBAAA,CAAwB,UAAA,IACxB,IAAA,SAAa,WAAA,8CACX,uBAAA,CAAwB,KAAA,EAAO,IAAA,EAAM,UAAA,IACrC,IAAA,SAAa,QAAA,gDACX,oBAAA,CAAqB,IAAA,EAAM,UAAA,IAC3B,IAAA,SAAa,UAAA,kCACX,sBAAA,CAAuB,KAAA,EAAO,UAAA,IAC9B,IAAA,SAAa,+BAAA,8CAKX,kCAAA,CAAmC,IAAA,EAAM,KAAA,EAAO,UAAA,IAChD,IAAA,SAAa,aAAA;EACT,IAAA,EAAM,IAAA;EAAM,UAAA,EAAY,UAAA;AAAA,IAC1B,IAAA,SAAa,SAAA,oCACX,qBAAA,CAAsB,OAAA,EAAS,UAAA,IAC/B,IAAA,SAAa,kBAAA,sDAKX,8BAAA,CACE,KAAA,EACA,YAAA,EACA,UAAA;AAAA,KAIrB,qBAAA,cACU,WAAA,iBACE,UAAA,MACX,KAAA,cAAmB,UAAA,CAAW,IAAA,iBAClC,gBAAA,CAAiB,IAAA;EACf,SAAA,EAAW,IAAA;EACX,MAAA,EAAQ,MAAA;AAAA;AAAA,KAGA,WAAA,cAAyB,WAAA,MACnC,KAAA,cACG,UAAA,CAAW,IAAA,iBACd,gBAAA,CAAiB,IAAA,IACjB,uBAAA,CAAwB,IAAA;EACtB,SAAA,EAAW,IAAA;EACX,EAAA,eAAiB,WAAA,EAAa,KAAA;IAC5B,SAAA,EAAW,KAAA;EAAA,IACT,WAAA,CAAY,SAAA,WAAoB,IAAA,EAAM,KAAA,GAAQ,iBAAA,CAAkB,IAAA;AAAA;AAAA,KAG5D,kBAAA,eACI,iBAAA,CAAkB,IAAA,gBACnB,iBAAA,qBACM,cAAA,IACjB,WAAA,CAAY,WAAA,CAAY,KAAA,EAAO,IAAA,EAAM,UAAA;AAAA,KAE7B,eAAA,gBACK,qBAAA,CAAsB,iBAAA,CAAkB,IAAA,iBAC1C,iBAAA,qBACM,cAAA,IACjB,WAAA,CAAY,QAAA,CAAS,MAAA,EAAQ,IAAA,EAAM,UAAA;AAAA,KAElC,UAAA;AAAA,KAEA,kBAAA,cACU,iBAAA,cACD,UAAA,gBACE,iBAAA,CAAkB,IAAA,KAC9B,GAAA,qBACA,KAAA,GACA,GAAA,kBACE,qBAAA,CAAsB,KAAA;AAAA,KAGvB,cAAA,cACU,iBAAA,qBACM,cAAA,cACP,UAAA,gBACE,iBAAA,CAAkB,IAAA,KAC9B,GAAA,qBACA,kBAAA,CAAmB,KAAA,EAAO,IAAA,EAAM,UAAA,IAChC,GAAA,kBACE,eAAA,CAAgB,qBAAA,CAAsB,KAAA,GAAQ,IAAA,EAAM,UAAA;AAAA,KAGrD,iBAAA,cACU,iBAAA,qBACM,cAAA,cACP,UAAA,mBACK,iBAAA,CAAkB,IAAA,GACnC,KAAA,EAAO,kBAAA,CAAmB,IAAA,EAAM,GAAA,EAAK,KAAA,MAClC,cAAA,CAAe,IAAA,EAAM,UAAA,EAAY,GAAA,EAAK,KAAA;AAAA,KAEtC,kBAAA,cACU,iBAAA,qBACM,cAAA,eACN,WAAA,uBACQ,WAAA,IACnB,WAAA,CAAY,IAAA,IACd,aAAA,CAAc,UAAA,EAAY,YAAA;EACxB,OAAA,EAAS,iBAAA,CAAkB,IAAA,EAAM,UAAA;EACjC,IAAA,EAAM,iBAAA,CAAkB,IAAA,EAAM,UAAA;AAAA;AAAA,KAG7B,oBAAA,oBAAwC,cAAA;EAC3C,MAAA,EAAQ,kBAAA,WAEN,UAAA,EACA,UAAA,CAAW,UAAA,GACX,UAAA;EAEF,MAAA,EAAQ,kBAAA,WAEN,UAAA,EACA,UAAA,CAAW,UAAA,GACX,UAAA;EAEF,OAAA,EAAS,kBAAA,YAEP,UAAA,EACA,WAAA,CAAY,UAAA,GACZ,WAAA;AAAA;AAAA,KAIC,oBAAA,SACH,IAAA,SAAa,QAAA,oBACQ,iBAAA,2BACM,cAAA,IAEvB,oBAAA,CAAqB,UAAA,EAAY,IAAA;AAAA,KAGlC,kBAAA,cACU,WAAA,qBACM,cAAA,uBACE,WAAA,IACnB,WAAA,CAAY,IAAA,IAAQ,aAAA,CAAc,UAAA,EAAY,YAAA;AAAA,KAE7C,kBAAA,SACH,IAAA,SAAa,WAAA,8CACT,kBAAA,CACE,WAAA,CAAY,KAAA,EAAO,IAAA,EAAM,UAAA,GACzB,UAAA,EACA,WAAA,CAAY,KAAA,EAAO,IAAA,iBAErB,IAAA,SAAa,QAAA,+CACX,kBAAA,CACE,QAAA,CAAS,MAAA,EAAQ,IAAA,EAAM,UAAA,GACvB,UAAA,EACA,QAAA,CAAS,MAAA,EAAQ,IAAA;AAAA,KAItB,iBAAA,SACH,IAAA,SAAa,UAAA,kCACT,aAAA,CAAc,UAAA,EAAY,UAAA,CAAW,KAAA;AAAA,KAGtC,6BAAA,SACH,IAAA,SAAa,+BAAA,8CAKT,aAAA,CACE,UAAA,EACA,+BAAA,CAAgC,IAAA,EAAM,KAAA;AAAA,KAIzC,gBAAA,SACH,IAAA,SAAa,SAAA,oCACT,aAAA,CAAc,UAAA,EAAY,SAAA,CAAU,OAAA;AAAA,KAGrC,uBAAA,cAAqC,WAAA,KACxC,kBAAA,CAAmB,IAAA,sBAEhB,iBAAA,CAAkB,IAAA,sBAChB,6BAAA,CAA8B,IAAA,sBAC5B,gBAAA,CAAiB,IAAA,sBACf,oBAAA,CAAqB,IAAA,0BAEpB,oBAAA,CAAqB,IAAA,IACvB,gBAAA,CAAiB,IAAA,IACnB,6BAAA,CAA8B,IAAA,IAChC,iBAAA,CAAkB,IAAA,IACpB,kBAAA,CAAmB,IAAA;AAAA,KAQX,qBAAA,eACI,cAAA,qBACK,cAAA,iBACjB,WAAA,CAAY,UAAA,CAAW,KAAA,EAAO,UAAA;AAAA,KAE7B,wBAAA,oBAA4C,cAAA;EAC/C,MAAA,EAAQ,WAAA,CAAY,UAAA,CAAW,UAAA;EAC/B,MAAA,EAAQ,WAAA,CAAY,UAAA,CAAW,UAAA;EAC/B,OAAA,EAAS,WAAA,CAAY,WAAA,CAAY,UAAA;AAAA;AAAA,KAG9B,4BAAA,oBAAgD,cAAA;EACnD,MAAA,EAAQ,UAAA,CAAW,UAAA;EACnB,MAAA,EAAQ,UAAA,CAAW,UAAA;EACnB,OAAA,EAAS,WAAA,CAAY,UAAA;AAAA;AAAA,KAGlB,kBAAA,cACU,iBAAA,qBACM,cAAA,sCACI,iBAAA,CAAkB,IAAA,GACzC,KAAA,EAAO,KAAA,KACJ,kBAAA,CAAmB,KAAA,EAAO,IAAA,EAAM,UAAA;AAAA,KAEhC,eAAA,cACU,iBAAA,qBACM,cAAA,uCACK,qBAAA,CAAsB,iBAAA,CAAkB,IAAA,IAChE,MAAA,EAAQ,MAAA,KACL,eAAA,CAAgB,MAAA,EAAQ,IAAA,EAAM,UAAA;AAAA,KAE9B,oBAAA,cACU,iBAAA,qBACM,cAAA,wBACV,wBAAA,CAAyB,UAAA,EAAY,IAAA;EAC9C,OAAA,EAAS,kBAAA,CAAmB,IAAA,EAAM,UAAA;EAClC,IAAA,EAAM,eAAA,CAAgB,IAAA,EAAM,UAAA;EAC5B,MAAA,sBAA4B,UAAA,EAC1B,MAAA,EAAQ,MAAA,GACP,qBAAA,CACD,4BAAA,CAA6B,UAAA,EAAY,IAAA,GACzC,MAAA;AAAA,KAEC,UAAA;EACG,QAAA,IAAY,oBAAA,CAAqB,IAAA;AAAA;AAAA,iBA6IzB,0BAAA,cACD,iBAAA,qBACM,cAAA,eAEnB,IAAA,EAAM,IAAA,EACN,UAAA,GAA2B,UAAA,GAC1B,oBAAA,CAAqB,IAAA,EAAM,UAAA;AAAA,iBAqBrB,gBAAA,qBAAqC,cAAA,EAC5C,UAAA,EAAY,KAAA,GACX,qBAAA,CAAsB,KAAA;AAAA,KAIpB,eAAA,sBACkB,iBAAA,6BACM,cAAA,sBACP,cAAA,iBACjB,WAAA,SAAoB,cAAA,GACrB,WAAA,CACE,kBAAA,CAAmB,WAAA,EAAa,YAAA,EAAc,kBAAA,KAEhD,WAAA,CAAY,aAAA,CAAc,YAAA,EAAc,kBAAA,MAC1C,sBAAA;AAAA,KAEG,iBAAA,eACW,cAAA,uBACO,sBAAA,IACnB,KAAA;EAAU,QAAA,EAAU,YAAA;AAAA;AAAA,KAEnB,mBAAA,sBACkB,iBAAA,6BACM,cAAA,sBACP,cAAA;EAEpB,IAAA,GAAO,YAAA;EACP,UAAA,GAAa,kBAAA;EACb,KAAA,GAAQ,WAAA;AAAA;AAAA,KAGE,gCAAA,cACG,iBAAA,qBACM,cAAA,uBACE,sBAAA,MACjB,KAAA;EACJ,SAAA,EAAW,+BAAA,CACT,IAAA;IACE,QAAA,EAAU,YAAA;EAAA,GACZ,UAAA;EAEF,IAAA,EAAM,IAAA;EACN,UAAA,EAAY,UAAA;EACZ,KAAA,qBAA0B,cAAA,EACxB,KAAA,EAAO,KAAA,GACN,WAAA,CACD,+BAAA,CACE,IAAA,EACA,iBAAA,CAAkB,KAAA,EAAO,YAAA,GACzB,UAAA;EAGJ,EAAA,eAAiB,WAAA,EAAa,KAAA;IAC5B,SAAA,EAAW,KAAA;EAAA,IACT,WAAA,CACF,SAAA,WAEI,+BAAA,CACE,IAAA;IACE,QAAA,EAAU,YAAA;EAAA,GACZ,UAAA,GAEF,KAAA,GAEF,UAAA;AAAA,KAGD,UAAA;EAEG,QAAA,IAAY,gCAAA,CACV,IAAA,cAEA,YAAA;AAAA;AAAA,KAKE,oBAAA,cACG,iBAAA,qBACM,cAAA,mBACf,KAAA;EACJ,SAAA,EAAW,aAAA,CAAc,IAAA,EAAM,UAAA;EAC/B,IAAA,EAAM,IAAA;EACN,UAAA,EAAY,UAAA;EACZ,KAAA,qBAA0B,cAAA,EACxB,KAAA,EAAO,KAAA,GACN,WAAA,CAAY,+BAAA,CAAgC,IAAA,EAAM,KAAA,EAAO,UAAA;EAC5D,MAAA,sBAA4B,UAAA,EAC1B,MAAA,EAAQ,MAAA,GACP,qBAAA,CAAsB,aAAA,CAAc,IAAA,EAAM,UAAA,GAAa,MAAA;EAC1D,YAAA,sBACuB,iBAAA,2CACM,cAAA,yCACD,cAAA,0BAE1B,OAAA,GAAU,mBAAA,CACR,YAAA,EACA,kBAAA,EACA,WAAA,IAED,gCAAA,CACD,IAAA,EACA,UAAA,EACA,eAAA,CAAgB,YAAA,EAAc,kBAAA,EAAoB,WAAA;EAEpD,EAAA,eAAiB,WAAA,EAAa,KAAA;IAC5B,SAAA,EAAW,KAAA;EAAA,IACT,WAAA,CACF,SAAA,WAAoB,aAAA,CAAc,IAAA,EAAM,UAAA,GAAa,KAAA,GAAQ,UAAA;AAAA,KAE5D,UAAA;EACG,QAAA,IAAY,oBAAA,CAAqB,IAAA;AAAA;AAAA,cA0I5B,UAAA;;;;;2BAKc,iBAAA,EAAiB,OAAA;IAAa,IAAA,EAAM,IAAA;EAAA,MAAM,oBAAA,CAAA,IAAA;AAAA"}