@pnp/spfx-controls-react 3.17.0-beta.7003036 → 3.17.0-beta.7072516

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 (57) hide show
  1. package/CHANGELOG.json +4 -2
  2. package/CHANGELOG.md +2 -1
  3. package/lib/common/SPEntities.d.ts +5 -0
  4. package/lib/common/SPEntities.d.ts.map +1 -1
  5. package/lib/common/telemetry/version.js +1 -1
  6. package/lib/common/utilities/CustomFormatting.d.ts +31 -0
  7. package/lib/common/utilities/CustomFormatting.d.ts.map +1 -0
  8. package/lib/common/utilities/CustomFormatting.js +160 -0
  9. package/lib/common/utilities/CustomFormatting.js.map +1 -0
  10. package/lib/common/utilities/FormulaEvaluation.d.ts +21 -0
  11. package/lib/common/utilities/FormulaEvaluation.d.ts.map +1 -0
  12. package/lib/common/utilities/FormulaEvaluation.js +612 -0
  13. package/lib/common/utilities/FormulaEvaluation.js.map +1 -0
  14. package/lib/common/utilities/FormulaEvaluation.types.d.ts +23 -0
  15. package/lib/common/utilities/FormulaEvaluation.types.d.ts.map +1 -0
  16. package/lib/common/utilities/FormulaEvaluation.types.js +80 -0
  17. package/lib/common/utilities/FormulaEvaluation.types.js.map +1 -0
  18. package/lib/common/utilities/ICustomFormatting.d.ts +27 -0
  19. package/lib/common/utilities/ICustomFormatting.d.ts.map +1 -0
  20. package/lib/common/utilities/ICustomFormatting.js +2 -0
  21. package/lib/common/utilities/ICustomFormatting.js.map +1 -0
  22. package/lib/controls/dynamicForm/DynamicForm.d.ts +53 -5
  23. package/lib/controls/dynamicForm/DynamicForm.d.ts.map +1 -1
  24. package/lib/controls/dynamicForm/DynamicForm.js +828 -536
  25. package/lib/controls/dynamicForm/DynamicForm.js.map +1 -1
  26. package/lib/controls/dynamicForm/DynamicForm.module.css +2 -2
  27. package/lib/controls/dynamicForm/DynamicForm.module.scss.d.ts +4 -0
  28. package/lib/controls/dynamicForm/DynamicForm.module.scss.d.ts.map +1 -1
  29. package/lib/controls/dynamicForm/DynamicForm.module.scss.js +25 -21
  30. package/lib/controls/dynamicForm/DynamicForm.module.scss.js.map +1 -1
  31. package/lib/controls/dynamicForm/IDynamicFormProps.d.ts +12 -0
  32. package/lib/controls/dynamicForm/IDynamicFormProps.d.ts.map +1 -1
  33. package/lib/controls/dynamicForm/IDynamicFormState.d.ts +25 -0
  34. package/lib/controls/dynamicForm/IDynamicFormState.d.ts.map +1 -1
  35. package/lib/controls/dynamicForm/dynamicField/DynamicField.d.ts.map +1 -1
  36. package/lib/controls/dynamicForm/dynamicField/DynamicField.js +57 -42
  37. package/lib/controls/dynamicForm/dynamicField/DynamicField.js.map +1 -1
  38. package/lib/controls/dynamicForm/dynamicField/IDynamicFieldProps.d.ts +32 -11
  39. package/lib/controls/dynamicForm/dynamicField/IDynamicFieldProps.d.ts.map +1 -1
  40. package/lib/controls/fieldCollectionData/collectionDataItem/CollectionDataItem.js.map +1 -1
  41. package/lib/controls/webPartTitle/WebPartTitle.js +1 -1
  42. package/lib/controls/webPartTitle/WebPartTitle.js.map +1 -1
  43. package/lib/services/ISPService.d.ts +194 -0
  44. package/lib/services/ISPService.d.ts.map +1 -1
  45. package/lib/services/ISPService.js +13 -0
  46. package/lib/services/ISPService.js.map +1 -1
  47. package/lib/services/SPService.d.ts +10 -1
  48. package/lib/services/SPService.d.ts.map +1 -1
  49. package/lib/services/SPService.js +69 -0
  50. package/lib/services/SPService.js.map +1 -1
  51. package/lib/services/SPServiceMock.d.ts +3 -1
  52. package/lib/services/SPServiceMock.d.ts.map +1 -1
  53. package/lib/services/SPServiceMock.js +6 -0
  54. package/lib/services/SPServiceMock.js.map +1 -1
  55. package/package.json +1 -1
  56. package/release/manifests/45165954-80f9-44c1-9967-cd38ae92a33b.manifest.json +58 -3
  57. package/tests/utils/formulaevaluation.test.ts +248 -0
@@ -0,0 +1,23 @@
1
+ export declare type TokenType = "FUNCTION" | "STRING" | "NUMBER" | "UNARY_MINUS" | "BOOLEAN" | "WORD" | "OPERATOR" | "ARRAY" | "VARIABLE";
2
+ export declare class Token {
3
+ type: TokenType;
4
+ value: string | number;
5
+ constructor(tokenType: TokenType, value: string | number);
6
+ toString(): string;
7
+ }
8
+ export declare type ArrayNodeValue = (string | number | ArrayNodeValue)[];
9
+ export declare class ArrayLiteralNode {
10
+ elements: ArrayNodeValue;
11
+ constructor(elements: ArrayNodeValue);
12
+ evaluate(): ArrayNodeValue;
13
+ }
14
+ export declare type ASTNode = {
15
+ type: string;
16
+ value?: string | number;
17
+ operands?: (ASTNode | ArrayLiteralNode)[];
18
+ };
19
+ export declare type Context = {
20
+ [key: string]: boolean | number | object | string | undefined;
21
+ };
22
+ export declare const ValidFuncNames: string[];
23
+ //# sourceMappingURL=FormulaEvaluation.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormulaEvaluation.types.d.ts","sourceRoot":"","sources":["../../../src/common/utilities/FormulaEvaluation.types.ts"],"names":[],"mappings":"AAAA,oBAAY,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,aAAa,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,CAAC;AAElI,qBAAa,KAAK;IACd,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;gBAEX,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAKxD,QAAQ,IAAI,MAAM;CAGrB;AAED,oBAAY,cAAc,GAAG,CAAC,MAAM,GAAG,MAAM,GAAG,cAAc,CAAC,EAAE,CAAC;AAClE,qBAAa,gBAAgB;IACzB,QAAQ,EAAE,cAAc,CAAC;gBAEb,QAAQ,EAAE,cAAc;IAIpC,QAAQ,IAAI,cAAc;CAqB7B;AAED,oBAAY,OAAO,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,CAAC,OAAO,GAAG,gBAAgB,CAAC,EAAE,CAAC;CAC7C,CAAC;AAEF,oBAAY,OAAO,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAExF,eAAO,MAAM,cAAc,UAyC1B,CAAC"}
@@ -0,0 +1,80 @@
1
+ var Token = /** @class */ (function () {
2
+ function Token(tokenType, value) {
3
+ this.type = tokenType;
4
+ this.value = value;
5
+ }
6
+ Token.prototype.toString = function () {
7
+ return "".concat(this.type, ": ").concat(this.value);
8
+ };
9
+ return Token;
10
+ }());
11
+ export { Token };
12
+ var ArrayLiteralNode = /** @class */ (function () {
13
+ function ArrayLiteralNode(elements) {
14
+ this.elements = elements; // Store array elements
15
+ }
16
+ ArrayLiteralNode.prototype.evaluate = function () {
17
+ // Evaluate array elements and return the array
18
+ var evaluatedElements = this.elements.map(function (element) {
19
+ if (element instanceof ArrayLiteralNode) {
20
+ return element.evaluate();
21
+ }
22
+ else {
23
+ if (typeof element === "string" &&
24
+ ((element.startsWith("'") && element.endsWith("'")) ||
25
+ (element.startsWith('"') && element.endsWith('"')))) {
26
+ return element.slice(1, -1);
27
+ }
28
+ else {
29
+ return element;
30
+ }
31
+ }
32
+ });
33
+ return evaluatedElements;
34
+ };
35
+ return ArrayLiteralNode;
36
+ }());
37
+ export { ArrayLiteralNode };
38
+ export var ValidFuncNames = [
39
+ "if",
40
+ "ternary",
41
+ "Number",
42
+ "abs",
43
+ "floor",
44
+ "ceiling",
45
+ "pow",
46
+ "cos",
47
+ "sin",
48
+ "indexOf",
49
+ "lastIndexOf",
50
+ "toString",
51
+ "join",
52
+ "substring",
53
+ "toUpperCase",
54
+ "toLowerCase",
55
+ "startsWith",
56
+ "endsWith",
57
+ "replaceAll",
58
+ "replace",
59
+ "padStart",
60
+ "padEnd",
61
+ "split",
62
+ "toDateString",
63
+ "toDate",
64
+ "toLocaleString",
65
+ "toLocaleDateString",
66
+ "toLocaleTimeString",
67
+ "getDate",
68
+ "getMonth",
69
+ "getYear",
70
+ "addDays",
71
+ "addMinutes",
72
+ "getUserImage",
73
+ "getThumbnailImage",
74
+ "indexOf",
75
+ "length",
76
+ "appendTo",
77
+ "removeFrom",
78
+ "loopIndex"
79
+ ];
80
+ //# sourceMappingURL=FormulaEvaluation.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormulaEvaluation.types.js","sourceRoot":"","sources":["../../../src/common/utilities/FormulaEvaluation.types.ts"],"names":[],"mappings":"AAEA;IAII,eAAY,SAAoB,EAAE,KAAsB;QACpD,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,wBAAQ,GAAR;QACI,OAAO,UAAG,IAAI,CAAC,IAAI,eAAK,IAAI,CAAC,KAAK,CAAE,CAAC;IACzC,CAAC;IACL,YAAC;AAAD,CAAC,AAZD,IAYC;;AAGD;IAGI,0BAAY,QAAwB;QAChC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,uBAAuB;IACrD,CAAC;IAED,mCAAQ,GAAR;QACI,+CAA+C;QAC/C,IAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,OAAO;YAChD,IAAI,OAAO,YAAY,gBAAgB,EAAE;gBACrC,OAAO,OAAO,CAAC,QAAQ,EAAE,CAAC;aAC7B;iBAAM;gBACH,IACI,OAAO,OAAO,KAAK,QAAQ;oBAC3B,CACI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;wBAClD,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CACrD,EACH;oBACE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;iBAC/B;qBAAM;oBACH,OAAO,OAAO,CAAC;iBAClB;aACJ;QACL,CAAC,CAAC,CAAC;QACH,OAAO,iBAAiB,CAAC;IAC7B,CAAC;IACL,uBAAC;AAAD,CAAC,AA5BD,IA4BC;;AAUD,MAAM,CAAC,IAAM,cAAc,GAAG;IAC1B,IAAI;IACJ,SAAS;IACT,QAAQ;IACR,KAAK;IACL,OAAO;IACP,SAAS;IACT,KAAK;IACL,KAAK;IACL,KAAK;IACL,SAAS;IACT,aAAa;IACb,UAAU;IACV,MAAM;IACN,WAAW;IACX,aAAa;IACb,aAAa;IACb,YAAY;IACZ,UAAU;IACV,YAAY;IACZ,SAAS;IACT,UAAU;IACV,QAAQ;IACR,OAAO;IACP,cAAc;IACd,QAAQ;IACR,gBAAgB;IAChB,oBAAoB;IACpB,oBAAoB;IACpB,SAAS;IACT,UAAU;IACV,SAAS;IACT,SAAS;IACT,YAAY;IACZ,cAAc;IACd,mBAAmB;IACnB,SAAS;IACT,QAAQ;IACR,UAAU;IACV,YAAY;IACZ,WAAW;CACd,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { CSSProperties } from "react";
2
+ export interface ICustomFormattingExpressionNode {
3
+ operator: string;
4
+ operands: (string | number | ICustomFormattingExpressionNode)[];
5
+ }
6
+ export interface ICustomFormattingNode {
7
+ elmType: keyof HTMLElementTagNameMap;
8
+ iconName: string;
9
+ style: CSSProperties;
10
+ attributes?: {
11
+ [key: string]: string;
12
+ };
13
+ children?: ICustomFormattingNode[];
14
+ txtContent?: string;
15
+ }
16
+ export interface ICustomFormattingBodySection {
17
+ displayname: string;
18
+ fields: string[];
19
+ }
20
+ export interface ICustomFormatting {
21
+ headerJSONFormatter: ICustomFormattingNode;
22
+ bodyJSONFormatter: {
23
+ sections: ICustomFormattingBodySection[];
24
+ };
25
+ footerJSONFormatter: ICustomFormattingNode;
26
+ }
27
+ //# sourceMappingURL=ICustomFormatting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ICustomFormatting.d.ts","sourceRoot":"","sources":["../../../src/common/utilities/ICustomFormatting.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,MAAM,WAAW,+BAA+B;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,+BAA+B,CAAC,EAAE,CAAC;CACnE;AAED,MAAM,WAAW,qBAAqB;IAClC,OAAO,EAAE,MAAM,qBAAqB,CAAC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;IACrB,UAAU,CAAC,EAAE;QACT,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;KACzB,CAAC;IACF,QAAQ,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,4BAA4B;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAC9B,mBAAmB,EAAE,qBAAqB,CAAC;IAC3C,iBAAiB,EAAE;QACf,QAAQ,EAAE,4BAA4B,EAAE,CAAC;KAC5C,CAAC;IACF,mBAAmB,EAAE,qBAAqB,CAAC;CAC9C"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ICustomFormatting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ICustomFormatting.js","sourceRoot":"","sources":["../../../src/common/utilities/ICustomFormatting.ts"],"names":[],"mappings":""}
@@ -1,38 +1,86 @@
1
1
  import * as React from "react";
2
- import { IDynamicFormProps } from "./IDynamicFormProps";
3
- import { IDynamicFormState } from "./IDynamicFormState";
4
2
  import "@pnp/sp/lists";
5
3
  import "@pnp/sp/content-types";
6
4
  import "@pnp/sp/folders";
7
5
  import "@pnp/sp/items";
6
+ import { IDynamicFormProps } from "./IDynamicFormProps";
7
+ import { IDynamicFormState } from "./IDynamicFormState";
8
8
  /**
9
9
  * DynamicForm Class Control
10
10
  */
11
11
  export declare class DynamicForm extends React.Component<IDynamicFormProps, IDynamicFormState> {
12
12
  private _spService;
13
+ private _formulaEvaluation;
14
+ private _customFormatter;
13
15
  private webURL;
14
16
  constructor(props: IDynamicFormProps);
15
17
  /**
16
18
  * Lifecycle hook when component is mounted
17
19
  */
18
20
  componentDidMount(): void;
21
+ componentDidUpdate(prevProps: IDynamicFormProps, prevState: IDynamicFormState): void;
19
22
  /**
20
23
  * Default React component render method
21
24
  */
22
25
  render(): JSX.Element;
26
+ private renderField;
27
+ private updateFormMessages;
28
+ /** Triggered when the user submits the form. */
23
29
  private onSubmitClick;
30
+ /**
31
+ * Adds selected file to the library
32
+ */
24
33
  private addFileToLibrary;
34
+ /**
35
+ * Triggered when the user makes any field value change in the form
36
+ */
25
37
  private onChange;
26
- private getFieldInformations;
38
+ /** Validation callback, used when form first loads (getListInformation) and following onChange */
39
+ private performValidation;
40
+ /** Determines visibility of fields that have show/hide formulas set in Edit Form > Edit Columns > Edit Conditional Formula */
41
+ private evaluateColumnVisibilityFormulas;
42
+ /** Evaluates field validation formulas set in column settings and returns a Record of error messages */
43
+ private evaluateFieldValueFormulas;
44
+ /**
45
+ * Evaluates formulas and returns a Record of error messages or an array of column names that have failed validation
46
+ * @param formulas A Record / dictionary-like object, where key is internal column name and value is an object with ValidationFormula and ValidationMessage properties
47
+ * @param returnMessages Determines whether a Record of error messages is returned or an array of column names that have failed validation
48
+ * @param requireValue Set to true if the formula should only be evaluated when the field has a value
49
+ * @returns
50
+ */
51
+ private evaluateFormulas;
52
+ /**
53
+ * Used for validation. Returns a Record of field values, where key is internal column name and value is the field value.
54
+ * Expands certain properties and stores many of them as primitives (strings, numbers or bools) so the expression evaluator
55
+ * can process them. For example: a User column named Person will have values stored as Person, Person.email, Person.title etc.
56
+ * This is so the expression evaluator can process expressions like '=[$Person.title] == "Contoso Employee 1138"'
57
+ * @param fieldCollection Optional. Could be used to compare field values in state with previous state.
58
+ * @returns
59
+ */
60
+ private getFormValuesForValidation;
61
+ /**
62
+ * Invoked when component first mounts, loads information about the SharePoint list, fields and list item
63
+ */
64
+ private getListInformation;
65
+ /**
66
+ * Builds a collection of fields to be rendered in the form
67
+ * @param listInfo Data returned by RenderListDataAsStream with RenderOptions = 64 (ClientFormSchema)
68
+ * @param contentTypeName SharePoint List Content Type
69
+ * @param item SharePoint List Item
70
+ * @param numberFields Additional information about Number fields (min and max values)
71
+ * @param listId SharePoint List ID
72
+ * @param listItemId SharePoint List Item ID
73
+ * @param disabledFields Fields that should be disabled due to configuration
74
+ * @returns
75
+ */
76
+ private buildFieldCollection;
27
77
  private cultureNameLookup;
28
78
  private uploadImage;
29
79
  private getImageArrayBuffer;
30
- private getFormFields;
31
80
  private closeValidationErrorDialog;
32
81
  private getValidationErrorTitle;
33
82
  private getValidationErrorMessage;
34
83
  private renderFileSelectionControl;
35
84
  private getFileIconFromExtension;
36
- private isEmptyNumOrString;
37
85
  }
38
86
  //# sourceMappingURL=DynamicForm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicForm.d.ts","sourceRoot":"","sources":["../../../src/controls/dynamicForm/DynamicForm.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAOxD,OAAO,eAAe,CAAC;AACvB,OAAO,uBAAuB,CAAC;AAC/B,OAAO,iBAAiB,CAAC;AACzB,OAAO,eAAe,CAAC;AAIvB;;GAEG;AACH,qBAAa,WAAY,SAAQ,KAAK,CAAC,SAAS,CAC9C,iBAAiB,EACjB,iBAAiB,CAClB;IACC,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,MAAM,CAEqC;gBAEvC,KAAK,EAAE,iBAAiB;IA8BpC;;OAEG;IACI,iBAAiB,IAAI,IAAI;IAUhC;;OAEG;IACI,MAAM,IAAI,GAAG,CAAC,OAAO;IAsF5B,OAAO,CAAC,aAAa,CA4QnB;IAEF,OAAO,CAAC,gBAAgB,CAwDvB;IAGD,OAAO,CAAC,QAAQ,CAkDd;IAGF,OAAO,CAAC,oBAAoB,CAyR1B;IAEF,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,WAAW,CAqBjB;IAEF,OAAO,CAAC,mBAAmB,CASzB;IAEF,OAAO,CAAC,aAAa,CA0CnB;IAEF,OAAO,CAAC,0BAA0B,CAIhC;IAEF,OAAO,CAAC,uBAAuB,CAS7B;IAEF,OAAO,CAAC,yBAAyB,CAS/B;IAEF,OAAO,CAAC,0BAA0B,CA6CjC;IAED,OAAO,CAAC,wBAAwB,CAsB/B;IAED,OAAO,CAAC,kBAAkB;CAG3B"}
1
+ {"version":3,"file":"DynamicForm.d.ts","sourceRoot":"","sources":["../../../src/controls/dynamicForm/DynamicForm.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA6B/B,OAAO,eAAe,CAAC;AACvB,OAAO,uBAAuB,CAAC;AAC/B,OAAO,iBAAiB,CAAC;AACzB,OAAO,eAAe,CAAC;AAYvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAIxD;;GAEG;AACH,qBAAa,WAAY,SAAQ,KAAK,CAAC,SAAS,CAC9C,iBAAiB,EACjB,iBAAiB,CAClB;IACC,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,kBAAkB,CAAoB;IAC9C,OAAO,CAAC,gBAAgB,CAAyB;IAEjD,OAAO,CAAC,MAAM,CAEqC;gBAEvC,KAAK,EAAE,iBAAiB;IA0CpC;;OAEG;IACI,iBAAiB,IAAI,IAAI;IAWzB,kBAAkB,CAAC,SAAS,EAAE,iBAAiB,EAAE,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAwB3F;;OAEG;IACI,MAAM,IAAI,GAAG,CAAC,OAAO;IAqH5B,OAAO,CAAC,WAAW,CAoClB;IAED,OAAO,CAAC,kBAAkB;IAO1B,gDAAgD;IAChD,OAAO,CAAC,aAAa,CA+TnB;IAEF;;OAEG;IACH,OAAO,CAAC,gBAAgB,CA2DvB;IAED;;OAEG;IACH,OAAO,CAAC,QAAQ,CAyFd;IAEF,kGAAkG;IAClG,OAAO,CAAC,iBAAiB,CAexB;IAED,8HAA8H;IAC9H,OAAO,CAAC,gCAAgC,CAEvC;IAED,wGAAwG;IACxG,OAAO,CAAC,0BAA0B,CAEjC;IAED;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB,CA2BvB;IAED;;;;;;;OAOG;IACH,OAAO,CAAC,0BAA0B,CAsCjC;IAED;;OAEG;IACH,OAAO,CAAC,kBAAkB,CAgHzB;IAED;;;;;;;;;;OAUG;YAEW,oBAAoB;IA0QlC,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,WAAW,CAqBjB;IAEF,OAAO,CAAC,mBAAmB,CASzB;IAEF,OAAO,CAAC,0BAA0B,CAIhC;IAEF,OAAO,CAAC,uBAAuB,CAS7B;IAEF,OAAO,CAAC,yBAAyB,CAS/B;IAEF,OAAO,CAAC,0BAA0B,CA6CjC;IAED,OAAO,CAAC,wBAAwB,CAsB/B;CAEF"}