@quickflo/quickforms-quasar 1.9.6 → 1.10.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.
- package/dist/components/QuasarJsonLogicBuilderField.vue.d.ts +55 -0
- package/dist/components/QuasarJsonLogicBuilderField.vue.d.ts.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9483 -8700
- package/dist/registry.d.ts.map +1 -1
- package/dist/style.css +1 -1
- package/dist/utils/jsonlogic.d.ts +79 -0
- package/dist/utils/jsonlogic.d.ts.map +1 -0
- package/package.json +3 -3
package/dist/registry.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AACrC,OAAO,EACL,iBAAiB,EAkBlB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AACrC,OAAO,EACL,iBAAiB,EAkBlB,MAAM,sBAAsB,CAAC;AAkB9B;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,oBAAoB,IAAI,iBAAiB,CAAC,SAAS,CAAC,CAkJnE"}
|
package/dist/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.datetime-picker-card[data-v-76abc7a3]{overflow:hidden}[data-v-76abc7a3] .datetime-date-picker .q-date__view,[data-v-76abc7a3] .datetime-time-picker .q-time{border:none!important;box-shadow:none!important}[data-v-76abc7a3] .datetime-date-picker,[data-v-76abc7a3] .datetime-time-picker{max-width:290px}.quickform-json-field-wrapper{width:100%}.quickform-label-header{display:flex;align-items:center;gap:.375rem;margin-bottom:.5rem}.quickform-label-text{font-size:.875rem;font-weight:500;color:#000000de}.quickform-hint{font-size:.875rem;color:#0009;margin-bottom:.25rem}.quickform-json-format-hint{font-size:.75rem;color:#00000073;margin-bottom:.5rem;font-style:italic}.quickform-json-format-hint kbd{background-color:#0000000d;border:1px solid rgba(0,0,0,.12);border-radius:3px;padding:.125rem .375rem;font-family:monospace;font-size:.75rem;font-style:normal}.quickform-json-editor-container{border-radius:4px;overflow:hidden;box-shadow:0 1px 3px #0000001f,0 1px 2px #0000003d;font-family:Monaco,Menlo,Ubuntu Mono,Consolas,source-code-pro,monospace;font-size:.875rem}.quickform-error{margin-top:.5rem;font-size:.75rem;color:#c10015}.quickform-json-editor-container :deep(.cm-scroller){overflow:auto}.quickform-json-editor-container:not(.quickform-json-editor-dark) :deep(.cm-editor){background-color:#fff}.quickform-json-editor-container:not(.quickform-json-editor-dark) :deep(.cm-gutters){background-color:#f5f5f5;border-right:1px solid rgba(0,0,0,.12)}.quickform-json-editor-container:not(.quickform-json-editor-dark) :deep(.cm-activeLineGutter){background-color:#1976d214}
|
|
1
|
+
.datetime-picker-card[data-v-76abc7a3]{overflow:hidden}[data-v-76abc7a3] .datetime-date-picker .q-date__view,[data-v-76abc7a3] .datetime-time-picker .q-time{border:none!important;box-shadow:none!important}[data-v-76abc7a3] .datetime-date-picker,[data-v-76abc7a3] .datetime-time-picker{max-width:290px}.quickform-json-field-wrapper{width:100%}.quickform-label-header{display:flex;align-items:center;gap:.375rem;margin-bottom:.5rem}.quickform-label-text{font-size:.875rem;font-weight:500;color:#000000de}.quickform-hint{font-size:.875rem;color:#0009;margin-bottom:.25rem}.quickform-json-format-hint{font-size:.75rem;color:#00000073;margin-bottom:.5rem;font-style:italic}.quickform-json-format-hint kbd{background-color:#0000000d;border:1px solid rgba(0,0,0,.12);border-radius:3px;padding:.125rem .375rem;font-family:monospace;font-size:.75rem;font-style:normal}.quickform-json-editor-container{border-radius:4px;overflow:hidden;box-shadow:0 1px 3px #0000001f,0 1px 2px #0000003d;font-family:Monaco,Menlo,Ubuntu Mono,Consolas,source-code-pro,monospace;font-size:.875rem}.quickform-error{margin-top:.5rem;font-size:.75rem;color:#c10015}.quickform-json-editor-container :deep(.cm-scroller){overflow:auto}.quickform-json-editor-container:not(.quickform-json-editor-dark) :deep(.cm-editor){background-color:#fff}.quickform-json-editor-container:not(.quickform-json-editor-dark) :deep(.cm-gutters){background-color:#f5f5f5;border-right:1px solid rgba(0,0,0,.12)}.quickform-json-editor-container:not(.quickform-json-editor-dark) :deep(.cm-activeLineGutter){background-color:#1976d214}.quickform-jsonlogic-builder[data-v-722c2e28]{width:100%}.builder-header[data-v-722c2e28]{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.builder-label[data-v-722c2e28]{font-size:.875rem;font-weight:500;color:#000000de}.builder-visual[data-v-722c2e28]{border:1px solid rgba(0,0,0,.12);border-radius:8px;padding:12px;background:#00000005}.logic-toggle[data-v-722c2e28]{display:flex;align-items:center}.conditions-container[data-v-722c2e28]{display:flex;flex-direction:column;gap:8px}.condition-row[data-v-722c2e28]{display:flex;align-items:center;gap:8px;padding:8px;background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:6px}.condition-row--nested[data-v-722c2e28]{background:#00000005}.condition-inputs[data-v-722c2e28]{display:flex;align-items:center;gap:8px;flex:1}.condition-input[data-v-722c2e28],.condition-input-placeholder[data-v-722c2e28]{flex:1;min-width:120px}.condition-operator[data-v-722c2e28]{width:160px;flex-shrink:0}.condition-remove[data-v-722c2e28]{opacity:.5;transition:opacity .15s}.condition-row:hover .condition-remove[data-v-722c2e28]{opacity:1}.condition-group[data-v-722c2e28]{border:2px dashed rgba(0,0,0,.12);border-radius:8px;padding:8px;background:#00000005}.group-header[data-v-722c2e28]{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid rgba(0,0,0,.08)}.group-conditions[data-v-722c2e28]{display:flex;flex-direction:column;gap:8px}.group-actions[data-v-722c2e28]{margin-top:4px}.logic-connector[data-v-722c2e28]{display:flex;align-items:center;justify-content:center;padding:4px 0}.logic-connector-text[data-v-722c2e28]{font-size:11px;font-weight:600;color:#0006;text-transform:uppercase;letter-spacing:.5px}.builder-actions-bottom[data-v-722c2e28]{display:flex;align-items:center;padding-top:8px;border-top:1px solid rgba(0,0,0,.08)}.builder-advanced .json-editor[data-v-722c2e28] .json-textarea{font-family:Monaco,Menlo,Ubuntu Mono,Consolas,monospace;font-size:13px;line-height:1.5}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSONLogic Utilities for Condition Builder
|
|
3
|
+
*
|
|
4
|
+
* Converts between visual condition format and JSONLogic.
|
|
5
|
+
* Supports common comparison operators and AND/OR grouping.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Supported comparison operators
|
|
9
|
+
*/
|
|
10
|
+
export type ComparisonOperator = '==' | '!=' | '>' | '>=' | '<' | '<=' | 'in' | 'contains' | 'startsWith' | 'endsWith' | 'matches' | 'isTrue' | 'isFalse' | 'isEmpty' | 'isNotEmpty';
|
|
11
|
+
/**
|
|
12
|
+
* Operator metadata for UI display
|
|
13
|
+
*/
|
|
14
|
+
export interface OperatorInfo {
|
|
15
|
+
value: ComparisonOperator;
|
|
16
|
+
label: string;
|
|
17
|
+
symbol?: string;
|
|
18
|
+
rightRequired: boolean;
|
|
19
|
+
rightType?: 'text' | 'number' | 'regex' | 'array';
|
|
20
|
+
description?: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* A single condition (left operator right)
|
|
24
|
+
*/
|
|
25
|
+
export interface SimpleCondition {
|
|
26
|
+
id: string;
|
|
27
|
+
type: 'condition';
|
|
28
|
+
left: string;
|
|
29
|
+
operator: ComparisonOperator;
|
|
30
|
+
right: string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* A group of conditions with AND/OR logic
|
|
34
|
+
*/
|
|
35
|
+
export interface ConditionGroup {
|
|
36
|
+
id: string;
|
|
37
|
+
type: 'group';
|
|
38
|
+
logic: 'and' | 'or';
|
|
39
|
+
conditions: ConditionItem[];
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Either a simple condition or a nested group
|
|
43
|
+
*/
|
|
44
|
+
export type ConditionItem = SimpleCondition | ConditionGroup;
|
|
45
|
+
/**
|
|
46
|
+
* The root condition structure
|
|
47
|
+
*/
|
|
48
|
+
export interface ConditionRoot {
|
|
49
|
+
logic: 'and' | 'or';
|
|
50
|
+
conditions: ConditionItem[];
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* JSONLogic object type
|
|
54
|
+
*/
|
|
55
|
+
export type JsonLogic = Record<string, unknown> | boolean;
|
|
56
|
+
export declare const OPERATORS: OperatorInfo[];
|
|
57
|
+
export declare function getOperatorInfo(op: ComparisonOperator): OperatorInfo | undefined;
|
|
58
|
+
export declare function generateConditionId(): string;
|
|
59
|
+
/**
|
|
60
|
+
* Convert a condition root to JSONLogic
|
|
61
|
+
*/
|
|
62
|
+
export declare function toJsonLogic(root: ConditionRoot): JsonLogic;
|
|
63
|
+
/**
|
|
64
|
+
* Convert JSONLogic to a condition root
|
|
65
|
+
*/
|
|
66
|
+
export declare function fromJsonLogic(logic: JsonLogic): ConditionRoot;
|
|
67
|
+
/**
|
|
68
|
+
* Create an empty condition
|
|
69
|
+
*/
|
|
70
|
+
export declare function createEmptyCondition(): SimpleCondition;
|
|
71
|
+
/**
|
|
72
|
+
* Create an empty group
|
|
73
|
+
*/
|
|
74
|
+
export declare function createEmptyGroup(logic?: 'and' | 'or'): ConditionGroup;
|
|
75
|
+
/**
|
|
76
|
+
* Create an empty root
|
|
77
|
+
*/
|
|
78
|
+
export declare function createEmptyRoot(): ConditionRoot;
|
|
79
|
+
//# sourceMappingURL=jsonlogic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsonlogic.d.ts","sourceRoot":"","sources":["../../src/utils/jsonlogic.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAC1B,IAAI,GACJ,IAAI,GACJ,GAAG,GACH,IAAI,GACJ,GAAG,GACH,IAAI,GACJ,IAAI,GACJ,UAAU,GACV,YAAY,GACZ,UAAU,GACV,SAAS,GACT,QAAQ,GACR,SAAS,GACT,SAAS,GACT,YAAY,CAAA;AAEhB;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,kBAAkB,CAAA;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,OAAO,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAA;IACjD,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,WAAW,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;IACnB,UAAU,EAAE,aAAa,EAAE,CAAA;CAC5B;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,eAAe,GAAG,cAAc,CAAA;AAE5D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;IACnB,UAAU,EAAE,aAAa,EAAE,CAAA;CAC5B;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAA;AAMzD,eAAO,MAAM,SAAS,EAAE,YAAY,EAgBnC,CAAA;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,kBAAkB,GAAG,YAAY,GAAG,SAAS,CAEhF;AAQD,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAMD;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS,CAY1D;AAkJD;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,aAAa,CA0B7D;AAsGD;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,eAAe,CAQtD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,GAAE,KAAK,GAAG,IAAY,GAAG,cAAc,CAO5E;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,aAAa,CAK/C"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quickflo/quickforms-quasar",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.10.0",
|
|
4
4
|
"description": "Quasar UI components for QuickForms - JSON Schema form generator",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
"@codemirror/view": "^6.38.8",
|
|
39
39
|
"vee-validate": "^4.12.0",
|
|
40
40
|
"vue-codemirror": "^6.1.1",
|
|
41
|
-
"@quickflo/quickforms": "1.
|
|
42
|
-
"@quickflo/quickforms-vue": "1.
|
|
41
|
+
"@quickflo/quickforms": "1.10.0",
|
|
42
|
+
"@quickflo/quickforms-vue": "1.10.0"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"@quasar/extras": "^1.17.0",
|