@bpmn-io/form-js-playground 1.7.1 → 1.7.3
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/form-playground.umd.js +131 -91
- package/dist/index.cjs +3 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.es.js +3 -0
- package/dist/index.es.js.map +1 -1
- package/package.json +4 -4
|
@@ -53323,20 +53323,59 @@
|
|
|
53323
53323
|
}, [conditionChecker, condition, expressionContextInfo]);
|
|
53324
53324
|
}
|
|
53325
53325
|
|
|
53326
|
-
|
|
53327
|
-
|
|
53326
|
+
/**
|
|
53327
|
+
* Returns the options data for the provided if they can be simply determined, ignoring expression defined options.
|
|
53328
|
+
*
|
|
53329
|
+
* @param {object} formField
|
|
53330
|
+
* @param {object} formData
|
|
53331
|
+
*/
|
|
53332
|
+
function getSimpleOptionsData(formField, formData) {
|
|
53328
53333
|
const {
|
|
53334
|
+
valuesExpression: optionsExpression,
|
|
53329
53335
|
valuesKey: optionsKey,
|
|
53330
53336
|
values: staticOptions
|
|
53331
53337
|
} = formField;
|
|
53338
|
+
if (optionsExpression) {
|
|
53339
|
+
return null;
|
|
53340
|
+
}
|
|
53332
53341
|
return optionsKey ? get$1(formData, [optionsKey]) : staticOptions;
|
|
53333
53342
|
}
|
|
53334
53343
|
|
|
53335
|
-
|
|
53344
|
+
/**
|
|
53345
|
+
* Normalizes the provided options data to a format that can be used by the select components.
|
|
53346
|
+
* If the options data is not valid, it is filtered out.
|
|
53347
|
+
*
|
|
53348
|
+
* @param {any[]} optionsData
|
|
53349
|
+
*
|
|
53350
|
+
* @returns {object[]}
|
|
53351
|
+
*/
|
|
53336
53352
|
function normalizeOptionsData(optionsData) {
|
|
53337
53353
|
return optionsData.filter(_isAllowedValue).map(_normalizeOption).filter(o => !isNil$1(o));
|
|
53338
53354
|
}
|
|
53339
53355
|
|
|
53356
|
+
/**
|
|
53357
|
+
* Creates an options object with default values if no options are provided.
|
|
53358
|
+
*
|
|
53359
|
+
* @param {object} options
|
|
53360
|
+
*
|
|
53361
|
+
* @returns {object}
|
|
53362
|
+
*/
|
|
53363
|
+
function createEmptyOptions(options = {}) {
|
|
53364
|
+
const defaults = {};
|
|
53365
|
+
|
|
53366
|
+
// provide default options if valuesKey and valuesExpression are not set
|
|
53367
|
+
if (!options.valuesKey && !options.valuesExpression) {
|
|
53368
|
+
defaults.values = [{
|
|
53369
|
+
label: 'Value',
|
|
53370
|
+
value: 'value'
|
|
53371
|
+
}];
|
|
53372
|
+
}
|
|
53373
|
+
return {
|
|
53374
|
+
...defaults,
|
|
53375
|
+
...options
|
|
53376
|
+
};
|
|
53377
|
+
}
|
|
53378
|
+
|
|
53340
53379
|
/**
|
|
53341
53380
|
* Converts the provided option to a normalized format.
|
|
53342
53381
|
* If the option is not valid, null is returned.
|
|
@@ -53387,21 +53426,6 @@
|
|
|
53387
53426
|
}
|
|
53388
53427
|
return _isAllowedPrimitive(value);
|
|
53389
53428
|
}
|
|
53390
|
-
function createEmptyOptions(options = {}) {
|
|
53391
|
-
const defaults = {};
|
|
53392
|
-
|
|
53393
|
-
// provide default options if valuesKey and valuesExpression are not set
|
|
53394
|
-
if (!options.valuesKey && !options.valuesExpression) {
|
|
53395
|
-
defaults.values = [{
|
|
53396
|
-
label: 'Value',
|
|
53397
|
-
value: 'value'
|
|
53398
|
-
}];
|
|
53399
|
-
}
|
|
53400
|
-
return {
|
|
53401
|
-
...defaults,
|
|
53402
|
-
...options
|
|
53403
|
-
};
|
|
53404
|
-
}
|
|
53405
53429
|
|
|
53406
53430
|
/**
|
|
53407
53431
|
* Evaluate a string reactively based on the expressionLanguage and form data.
|
|
@@ -53421,29 +53445,20 @@
|
|
|
53421
53445
|
return value;
|
|
53422
53446
|
}, [expressionLanguage, expressionContextInfo, value]);
|
|
53423
53447
|
}
|
|
53424
|
-
function usePrevious$1(value, defaultValue = null) {
|
|
53425
|
-
const ref = s$1(defaultValue);
|
|
53426
|
-
y(() => ref.current = value, [value]);
|
|
53427
|
-
return ref.current;
|
|
53428
|
-
}
|
|
53429
53448
|
|
|
53430
53449
|
/**
|
|
53431
53450
|
* A custom hook to manage state changes with deep comparison.
|
|
53432
53451
|
*
|
|
53433
|
-
* @
|
|
53434
|
-
* @param {
|
|
53435
|
-
* @returns {
|
|
53452
|
+
* @template T
|
|
53453
|
+
* @param {T} value - The current value to manage.
|
|
53454
|
+
* @returns {T} - Returns the current state.
|
|
53436
53455
|
*/
|
|
53437
|
-
function
|
|
53438
|
-
const
|
|
53439
|
-
|
|
53440
|
-
|
|
53441
|
-
|
|
53442
|
-
|
|
53443
|
-
setState(value);
|
|
53444
|
-
}
|
|
53445
|
-
}, [changed, value]);
|
|
53446
|
-
return state;
|
|
53456
|
+
function useDeepCompareMemoize(value) {
|
|
53457
|
+
const ref = s$1();
|
|
53458
|
+
if (!isEqual$1(value, ref.current)) {
|
|
53459
|
+
ref.current = value;
|
|
53460
|
+
}
|
|
53461
|
+
return ref.current;
|
|
53447
53462
|
}
|
|
53448
53463
|
|
|
53449
53464
|
/**
|
|
@@ -53473,15 +53488,10 @@
|
|
|
53473
53488
|
valuesKey: optionsKey,
|
|
53474
53489
|
values: staticOptions
|
|
53475
53490
|
} = field;
|
|
53476
|
-
const [optionsGetter, setOptionsGetter] = l$1({
|
|
53477
|
-
options: [],
|
|
53478
|
-
error: undefined,
|
|
53479
|
-
loadState: LOAD_STATES.LOADING
|
|
53480
|
-
});
|
|
53481
53491
|
const initialData = useService$2('form')._getState().initialData;
|
|
53482
53492
|
const expressionEvaluation = useExpressionEvaluation(optionsExpression);
|
|
53483
|
-
const evaluatedOptions =
|
|
53484
|
-
|
|
53493
|
+
const evaluatedOptions = useDeepCompareMemoize(expressionEvaluation || []);
|
|
53494
|
+
const optionsGetter = d(() => {
|
|
53485
53495
|
let options = [];
|
|
53486
53496
|
|
|
53487
53497
|
// dynamic options
|
|
@@ -53496,18 +53506,16 @@
|
|
|
53496
53506
|
options = Array.isArray(staticOptions) ? staticOptions : [];
|
|
53497
53507
|
|
|
53498
53508
|
// expression
|
|
53499
|
-
} else if (optionsExpression) {
|
|
53500
|
-
|
|
53501
|
-
|
|
53502
|
-
|
|
53509
|
+
} else if (optionsExpression && evaluatedOptions && Array.isArray(evaluatedOptions)) {
|
|
53510
|
+
options = evaluatedOptions;
|
|
53511
|
+
|
|
53512
|
+
// error case
|
|
53503
53513
|
} else {
|
|
53504
|
-
|
|
53505
|
-
return;
|
|
53514
|
+
return buildErrorState('No options source defined in the form definition');
|
|
53506
53515
|
}
|
|
53507
53516
|
|
|
53508
53517
|
// normalize data to support primitives and partially defined objects
|
|
53509
|
-
|
|
53510
|
-
setOptionsGetter(buildLoadedState(options));
|
|
53518
|
+
return buildLoadedState(normalizeOptionsData(options));
|
|
53511
53519
|
}, [optionsKey, staticOptions, initialData, optionsExpression, evaluatedOptions]);
|
|
53512
53520
|
return optionsGetter;
|
|
53513
53521
|
}
|
|
@@ -53552,14 +53560,14 @@
|
|
|
53552
53560
|
};
|
|
53553
53561
|
};
|
|
53554
53562
|
|
|
53555
|
-
/**
|
|
53556
|
-
* A custom hook to build up security attributes from form configuration.
|
|
53557
|
-
*
|
|
53558
|
-
* @param {Object} security - The security configuration.
|
|
53559
|
-
* @returns {Array} - Returns a tuple with sandbox and allow attributes.
|
|
53563
|
+
/**
|
|
53564
|
+
* A custom hook to build up security attributes from form configuration.
|
|
53565
|
+
*
|
|
53566
|
+
* @param {Object} security - The security configuration.
|
|
53567
|
+
* @returns {Array} - Returns a tuple with sandbox and allow attributes.
|
|
53560
53568
|
*/
|
|
53561
53569
|
function useSecurityAttributesMap(security) {
|
|
53562
|
-
const securityMemoized =
|
|
53570
|
+
const securityMemoized = useDeepCompareMemoize(security);
|
|
53563
53571
|
const sandbox = d(() => SECURITY_ATTRIBUTES_DEFINITIONS.filter(({
|
|
53564
53572
|
attribute
|
|
53565
53573
|
}) => attribute === SANDBOX_ATTRIBUTE).filter(({
|
|
@@ -53729,6 +53737,11 @@
|
|
|
53729
53737
|
}
|
|
53730
53738
|
return readonly || false;
|
|
53731
53739
|
}
|
|
53740
|
+
function usePrevious$1(value, defaultValue = null) {
|
|
53741
|
+
const ref = s$1(defaultValue);
|
|
53742
|
+
y(() => ref.current = value, [value]);
|
|
53743
|
+
return ref.current;
|
|
53744
|
+
}
|
|
53732
53745
|
function useFlushDebounce(func) {
|
|
53733
53746
|
const timeoutRef = s$1(null);
|
|
53734
53747
|
const lastArgsRef = s$1(null);
|
|
@@ -53991,8 +54004,16 @@
|
|
|
53991
54004
|
data,
|
|
53992
54005
|
value
|
|
53993
54006
|
} = options;
|
|
54007
|
+
const {
|
|
54008
|
+
valuesExpression: optionsExpression
|
|
54009
|
+
} = formField;
|
|
53994
54010
|
try {
|
|
53995
|
-
|
|
54011
|
+
// if options are expression evaluated, we don't need to sanitize the value against the options
|
|
54012
|
+
// and defer to the field's internal validation
|
|
54013
|
+
if (optionsExpression) {
|
|
54014
|
+
return value;
|
|
54015
|
+
}
|
|
54016
|
+
const validValues = normalizeOptionsData(getSimpleOptionsData(formField, data)).map(v => v.value);
|
|
53996
54017
|
return hasEqualValue(value, validValues) ? value : null;
|
|
53997
54018
|
} catch (error) {
|
|
53998
54019
|
// use default value in case of formatting error
|
|
@@ -54006,8 +54027,16 @@
|
|
|
54006
54027
|
data,
|
|
54007
54028
|
value
|
|
54008
54029
|
} = options;
|
|
54030
|
+
const {
|
|
54031
|
+
valuesExpression: optionsExpression
|
|
54032
|
+
} = formField;
|
|
54009
54033
|
try {
|
|
54010
|
-
|
|
54034
|
+
// if options are expression evaluated, we don't need to sanitize the values against the options
|
|
54035
|
+
// and defer to the field's internal validation
|
|
54036
|
+
if (optionsExpression) {
|
|
54037
|
+
return value;
|
|
54038
|
+
}
|
|
54039
|
+
const validValues = normalizeOptionsData(getSimpleOptionsData(formField, data)).map(v => v.value);
|
|
54011
54040
|
return value.filter(v => hasEqualValue(v, validValues));
|
|
54012
54041
|
} catch (error) {
|
|
54013
54042
|
// use default value in case of formatting error
|
|
@@ -54093,7 +54122,7 @@
|
|
|
54093
54122
|
onChange,
|
|
54094
54123
|
values
|
|
54095
54124
|
} = props;
|
|
54096
|
-
const memoizedValues =
|
|
54125
|
+
const memoizedValues = useDeepCompareMemoize(values || []);
|
|
54097
54126
|
|
|
54098
54127
|
// ensures that the values are always a subset of the possible options
|
|
54099
54128
|
y(() => {
|
|
@@ -54783,7 +54812,7 @@
|
|
|
54783
54812
|
const [forceFocusCalendar, setForceFocusCalendar] = l$1(false);
|
|
54784
54813
|
|
|
54785
54814
|
// ensures we render based on date value instead of reference
|
|
54786
|
-
const date =
|
|
54815
|
+
const date = useDeepCompareMemoize(dateObject);
|
|
54787
54816
|
|
|
54788
54817
|
// shorts the date value back to the source
|
|
54789
54818
|
y(() => {
|
|
@@ -56487,8 +56516,8 @@
|
|
|
56487
56516
|
'fjs-readonly': readonly
|
|
56488
56517
|
}),
|
|
56489
56518
|
children: [e("button", {
|
|
56490
|
-
class: "fjs-number-arrow-up",
|
|
56491
56519
|
type: "button",
|
|
56520
|
+
class: "fjs-number-arrow-up",
|
|
56492
56521
|
"aria-label": "Increment",
|
|
56493
56522
|
onClick: () => increment(),
|
|
56494
56523
|
tabIndex: -1,
|
|
@@ -56496,8 +56525,8 @@
|
|
|
56496
56525
|
}), e("div", {
|
|
56497
56526
|
class: "fjs-number-arrow-separator"
|
|
56498
56527
|
}), e("button", {
|
|
56499
|
-
class: "fjs-number-arrow-down",
|
|
56500
56528
|
type: "button",
|
|
56529
|
+
class: "fjs-number-arrow-down",
|
|
56501
56530
|
"aria-label": "Decrement",
|
|
56502
56531
|
onClick: () => decrement(),
|
|
56503
56532
|
tabIndex: -1,
|
|
@@ -57171,7 +57200,7 @@
|
|
|
57171
57200
|
} = useOptionsAsync(field);
|
|
57172
57201
|
|
|
57173
57202
|
// ensures we render based on array content instead of reference
|
|
57174
|
-
const values =
|
|
57203
|
+
const values = useDeepCompareMemoize(value || []);
|
|
57175
57204
|
useCleanupMultiSelectValue({
|
|
57176
57205
|
field,
|
|
57177
57206
|
loadState,
|
|
@@ -59493,9 +59522,9 @@
|
|
|
59493
59522
|
};
|
|
59494
59523
|
const parentExpressionContextInfo = F$1(LocalExpressionContext);
|
|
59495
59524
|
return e(d$1, {
|
|
59496
|
-
children: displayValues.map((
|
|
59497
|
-
|
|
59498
|
-
|
|
59525
|
+
children: displayValues.map((itemValue, itemIndex) => e(RepetitionScaffold, {
|
|
59526
|
+
itemIndex: itemIndex,
|
|
59527
|
+
itemValue: itemValue,
|
|
59499
59528
|
parentExpressionContextInfo: parentExpressionContextInfo,
|
|
59500
59529
|
repeaterField: repeaterField,
|
|
59501
59530
|
RowsRenderer: RowsRenderer,
|
|
@@ -59503,7 +59532,7 @@
|
|
|
59503
59532
|
onDeleteItem: onDeleteItem,
|
|
59504
59533
|
showRemove: showRemove,
|
|
59505
59534
|
...restProps
|
|
59506
|
-
},
|
|
59535
|
+
}, itemIndex))
|
|
59507
59536
|
});
|
|
59508
59537
|
}
|
|
59509
59538
|
RepeatFooter(props) {
|
|
@@ -59566,18 +59595,18 @@
|
|
|
59566
59595
|
'fjs-remove-allowed': repeaterField.allowAddRemove
|
|
59567
59596
|
}),
|
|
59568
59597
|
children: [showAdd ? e("button", {
|
|
59598
|
+
type: "button",
|
|
59569
59599
|
readOnly: readonly,
|
|
59570
59600
|
disabled: disabled || readonly,
|
|
59571
59601
|
class: "fjs-repeat-render-add",
|
|
59572
|
-
type: "button",
|
|
59573
59602
|
ref: addButtonRef,
|
|
59574
59603
|
onClick: onAddItem,
|
|
59575
59604
|
children: e(d$1, {
|
|
59576
59605
|
children: [e(AddSvg, {}), " ", 'Add new']
|
|
59577
59606
|
})
|
|
59578
59607
|
}) : null, collapseEnabled ? e("button", {
|
|
59579
|
-
class: "fjs-repeat-render-collapse",
|
|
59580
59608
|
type: "button",
|
|
59609
|
+
class: "fjs-repeat-render-collapse",
|
|
59581
59610
|
onClick: toggle,
|
|
59582
59611
|
children: isCollapsed ? e(d$1, {
|
|
59583
59612
|
children: [e(ExpandSvg, {}), " ", `Expand all (${values.length})`]
|
|
@@ -59600,8 +59629,8 @@
|
|
|
59600
59629
|
* Individual repetition of a repeated field and context scaffolding.
|
|
59601
59630
|
*
|
|
59602
59631
|
* @param {Object} props
|
|
59603
|
-
* @param {number} props.
|
|
59604
|
-
* @param {Object} props.
|
|
59632
|
+
* @param {number} props.itemIndex
|
|
59633
|
+
* @param {Object} props.itemValue
|
|
59605
59634
|
* @param {Object} props.parentExpressionContextInfo
|
|
59606
59635
|
* @param {Object} props.repeaterField
|
|
59607
59636
|
* @param {Function} props.RowsRenderer
|
|
@@ -59612,8 +59641,8 @@
|
|
|
59612
59641
|
|
|
59613
59642
|
const RepetitionScaffold = props => {
|
|
59614
59643
|
const {
|
|
59615
|
-
|
|
59616
|
-
|
|
59644
|
+
itemIndex,
|
|
59645
|
+
itemValue,
|
|
59617
59646
|
parentExpressionContextInfo,
|
|
59618
59647
|
repeaterField,
|
|
59619
59648
|
RowsRenderer,
|
|
@@ -59626,15 +59655,15 @@
|
|
|
59626
59655
|
...restProps,
|
|
59627
59656
|
indexes: {
|
|
59628
59657
|
...(indexes || {}),
|
|
59629
|
-
[repeaterField.id]:
|
|
59658
|
+
[repeaterField.id]: itemIndex
|
|
59630
59659
|
}
|
|
59631
|
-
}), [
|
|
59660
|
+
}), [itemIndex, indexes, repeaterField.id, restProps]);
|
|
59632
59661
|
const localExpressionContextInfo = d(() => ({
|
|
59633
59662
|
data: parentExpressionContextInfo.data,
|
|
59634
|
-
this:
|
|
59663
|
+
this: itemValue,
|
|
59635
59664
|
parent: buildExpressionContext(parentExpressionContextInfo),
|
|
59636
|
-
i: [...parentExpressionContextInfo.i,
|
|
59637
|
-
}), [
|
|
59665
|
+
i: [...parentExpressionContextInfo.i, itemIndex + 1]
|
|
59666
|
+
}), [itemIndex, parentExpressionContextInfo, itemValue]);
|
|
59638
59667
|
return !showRemove ? e(LocalExpressionContext.Provider, {
|
|
59639
59668
|
value: localExpressionContextInfo,
|
|
59640
59669
|
children: e(RowsRenderer, {
|
|
@@ -59651,10 +59680,10 @@
|
|
|
59651
59680
|
})
|
|
59652
59681
|
})
|
|
59653
59682
|
}), e("button", {
|
|
59654
|
-
class: "fjs-repeat-row-remove",
|
|
59655
59683
|
type: "button",
|
|
59656
|
-
"
|
|
59657
|
-
|
|
59684
|
+
class: "fjs-repeat-row-remove",
|
|
59685
|
+
"aria-label": `Remove list item ${itemIndex + 1}`,
|
|
59686
|
+
onClick: () => onDeleteItem(itemIndex),
|
|
59658
59687
|
children: e("div", {
|
|
59659
59688
|
class: "fjs-repeat-row-remove-icon-container",
|
|
59660
59689
|
children: e(DeleteSvg, {})
|
|
@@ -67729,6 +67758,7 @@
|
|
|
67729
67758
|
}
|
|
67730
67759
|
};
|
|
67731
67760
|
return e("button", {
|
|
67761
|
+
type: "button",
|
|
67732
67762
|
class: "fjs-palette-field fjs-drag-copy fjs-no-drop",
|
|
67733
67763
|
"data-field-type": type,
|
|
67734
67764
|
title: `Create ${getIndefiniteArticle(type)} ${label} element`,
|
|
@@ -67820,6 +67850,7 @@
|
|
|
67820
67850
|
value: searchTerm,
|
|
67821
67851
|
onInput: handleInput
|
|
67822
67852
|
}), searchTerm && e("button", {
|
|
67853
|
+
type: "button",
|
|
67823
67854
|
title: "Clear content",
|
|
67824
67855
|
class: "fjs-palette-search-clear",
|
|
67825
67856
|
onClick: handleClear,
|
|
@@ -68564,6 +68595,7 @@
|
|
|
68564
68595
|
field: field
|
|
68565
68596
|
}), e(ContextPad, {
|
|
68566
68597
|
children: selection.isSelected(field) && field.type !== 'default' ? e("button", {
|
|
68598
|
+
type: "button",
|
|
68567
68599
|
title: getRemoveButtonTitle(field, formFields),
|
|
68568
68600
|
class: "fjs-context-pad-item",
|
|
68569
68601
|
onClick: onRemove,
|
|
@@ -75988,7 +76020,7 @@
|
|
|
75988
76020
|
getValue,
|
|
75989
76021
|
id,
|
|
75990
76022
|
label: 'Disabled',
|
|
75991
|
-
tooltip: 'Field cannot be edited by the end-user, and the data is not submitted.',
|
|
76023
|
+
tooltip: 'Field cannot be edited by the end-user, and the data is not submitted. Takes precedence over read only.',
|
|
75992
76024
|
inline: true,
|
|
75993
76025
|
setValue
|
|
75994
76026
|
});
|
|
@@ -77835,15 +77867,20 @@
|
|
|
77835
77867
|
editField,
|
|
77836
77868
|
field
|
|
77837
77869
|
} = props;
|
|
77870
|
+
const {
|
|
77871
|
+
disabled
|
|
77872
|
+
} = field;
|
|
77838
77873
|
const entries = [];
|
|
77839
|
-
|
|
77840
|
-
|
|
77841
|
-
|
|
77842
|
-
|
|
77843
|
-
|
|
77844
|
-
|
|
77845
|
-
|
|
77846
|
-
|
|
77874
|
+
if (!disabled) {
|
|
77875
|
+
entries.push({
|
|
77876
|
+
id: 'readonly',
|
|
77877
|
+
component: Readonly,
|
|
77878
|
+
editField: editField,
|
|
77879
|
+
field: field,
|
|
77880
|
+
isEdited: isEdited$6,
|
|
77881
|
+
isDefaultVisible: field => INPUTS.includes(field.type)
|
|
77882
|
+
});
|
|
77883
|
+
}
|
|
77847
77884
|
return entries;
|
|
77848
77885
|
}
|
|
77849
77886
|
function Readonly(props) {
|
|
@@ -79707,6 +79744,7 @@
|
|
|
79707
79744
|
}), e("div", {
|
|
79708
79745
|
class: "fjs-pgl-modal-footer",
|
|
79709
79746
|
children: e("button", {
|
|
79747
|
+
type: "button",
|
|
79710
79748
|
class: "fjs-pgl-button fjs-pgl-button-default",
|
|
79711
79749
|
onClick: props.onClose,
|
|
79712
79750
|
children: "Close"
|
|
@@ -81685,6 +81723,7 @@
|
|
|
81685
81723
|
name: "Form Definition",
|
|
81686
81724
|
children: [displayActions && e(Section.HeaderItem, {
|
|
81687
81725
|
children: e("button", {
|
|
81726
|
+
type: "button",
|
|
81688
81727
|
class: "fjs-pgl-button",
|
|
81689
81728
|
title: "Download form definition",
|
|
81690
81729
|
onClick: handleDownload,
|
|
@@ -81692,6 +81731,7 @@
|
|
|
81692
81731
|
})
|
|
81693
81732
|
}), displayActions && e(Section.HeaderItem, {
|
|
81694
81733
|
children: e("button", {
|
|
81734
|
+
type: "button",
|
|
81695
81735
|
class: "fjs-pgl-button",
|
|
81696
81736
|
onClick: showEmbedModal,
|
|
81697
81737
|
children: "Embed"
|
package/dist/index.cjs
CHANGED
|
@@ -49,6 +49,7 @@ function Modal(props) {
|
|
|
49
49
|
}), jsxRuntime.jsx("div", {
|
|
50
50
|
class: "fjs-pgl-modal-footer",
|
|
51
51
|
children: jsxRuntime.jsx("button", {
|
|
52
|
+
type: "button",
|
|
52
53
|
class: "fjs-pgl-button fjs-pgl-button-default",
|
|
53
54
|
onClick: props.onClose,
|
|
54
55
|
children: "Close"
|
|
@@ -499,6 +500,7 @@ function PlaygroundRoot(props) {
|
|
|
499
500
|
name: "Form Definition",
|
|
500
501
|
children: [displayActions && jsxRuntime.jsx(Section.HeaderItem, {
|
|
501
502
|
children: jsxRuntime.jsx("button", {
|
|
503
|
+
type: "button",
|
|
502
504
|
class: "fjs-pgl-button",
|
|
503
505
|
title: "Download form definition",
|
|
504
506
|
onClick: handleDownload,
|
|
@@ -506,6 +508,7 @@ function PlaygroundRoot(props) {
|
|
|
506
508
|
})
|
|
507
509
|
}), displayActions && jsxRuntime.jsx(Section.HeaderItem, {
|
|
508
510
|
children: jsxRuntime.jsx("button", {
|
|
511
|
+
type: "button",
|
|
509
512
|
class: "fjs-pgl-button",
|
|
510
513
|
onClick: showEmbedModal,
|
|
511
514
|
children: "Embed"
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../src/components/Modal.js","../src/components/EmbedModal.js","../src/components/autocompletion/VariablesFacet.js","../src/components/autocompletion/index.js","../src/components/JSONEditor.js","../src/components/Section.js","../src/components/PlaygroundRoot.js","../src/Playground.js"],"sourcesContent":["import { useEffect } from 'preact/hooks';\n\nexport function Modal(props) {\n\n useEffect(() => {\n function handleKey(event) {\n\n if (event.key === 'Escape') {\n event.stopPropagation();\n\n props.onClose();\n }\n }\n\n document.addEventListener('keydown', handleKey);\n\n return () => {\n document.removeEventListener('keydown', handleKey);\n };\n });\n\n return (\n <div class=\"fjs-pgl-modal\">\n <div class=\"fjs-pgl-modal-backdrop\" onClick={ props.onClose }></div>\n <div class=\"fjs-pgl-modal-content\">\n <h1 class=\"fjs-pgl-modal-header\">{ props.name }</h1>\n <div class=\"fjs-pgl-modal-body\">\n { props.children }\n </div>\n <div class=\"fjs-pgl-modal-footer\">\n <button class=\"fjs-pgl-button fjs-pgl-button-default\" onClick={ props.onClose }>Close</button>\n </div>\n </div>\n </div>\n );\n}\n","import { useEffect, useRef } from 'preact/hooks';\n\nimport { Modal } from './Modal';\n\n\nexport function EmbedModal(props) {\n\n const schema = serializeValue(props.schema);\n const data = serializeValue(props.data || {});\n\n const fieldRef = useRef();\n\n const snippet = `<!-- styles needed for rendering -->\n<link rel=\"stylesheet\" href=\"https://unpkg.com/@bpmn-io/form-js@0.2.4/dist/assets/form-js.css\">\n\n<!-- container to render the form into -->\n<div class=\"fjs-pgl-form-container\"></div>\n\n<!-- scripts needed for embedding -->\n<script src=\"https://unpkg.com/@bpmn-io/form-js@0.2.4/dist/form-viewer.umd.js\"></script>\n\n<!-- actual script to instantiate the form and load form schema + data -->\n<script>\n const data = JSON.parse(${data});\n const schema = JSON.parse(${schema});\n\n const form = new FormViewer.Form({\n container: document.querySelector(\".fjs-pgl-form-container\")\n });\n\n form.on(\"submit\", (event) => {\n console.log(event.data, event.errors);\n });\n\n form.importSchema(schema, data).catch(err => {\n console.error(\"Failed to render form\", err);\n });\n</script>\n `.trim();\n\n useEffect(() => {\n fieldRef.current.select();\n });\n\n return (\n <Modal name=\"Embed form\" onClose={ props.onClose }>\n <p>Use the following HTML snippet to embed your form with <a href=\"https://github.com/bpmn-io/form-js\">form-js</a>:</p>\n\n <textarea spellCheck=\"false\" ref={ fieldRef }>{snippet}</textarea>\n </Modal>\n );\n}\n\n\n// helpers ///////////\n\nfunction serializeValue(obj) {\n return JSON.stringify(JSON.stringify(obj)).replace(/</g, '<').replace(/>/g, '>');\n}","import { Facet } from '@codemirror/state';\n\n/**\n * @type {Facet<import('..').Variables>} Variables\n */\nexport const variablesFacet = Facet.define();","import { autocompletion } from '@codemirror/autocomplete';\nimport { variablesFacet } from './VariablesFacet';\n\nimport { syntaxTree } from '@codemirror/language';\n\nexport function autocompletionExtension() {\n return [\n autocompletion({\n override: [\n completions\n ]\n })\n ];\n}\n\nfunction completions(context) {\n\n const variables = context.state.facet(variablesFacet)[0];\n\n const options = variables.map(v => ({\n label: v,\n type: 'variable'\n }));\n\n let nodeBefore = syntaxTree(context.state).resolve(context.pos, -1);\n\n // handle inside property name as explicit call\n if (nodeBefore.type.name === 'PropertyName') {\n context.explicit = true;\n }\n\n let word = context.matchBefore(/\\w*/);\n\n if (word.from == word.to && !context.explicit) {\n return null;\n }\n\n return {\n from: word.from,\n options\n };\n}","import mitt from 'mitt';\n\nimport { basicSetup } from 'codemirror';\nimport { EditorView, keymap, placeholder } from '@codemirror/view';\nimport { EditorState, Compartment } from '@codemirror/state';\nimport { lintGutter, linter } from '@codemirror/lint';\nimport { json, jsonParseLinter } from '@codemirror/lang-json';\nimport { indentWithTab } from '@codemirror/commands';\nimport { autocompletionExtension } from './autocompletion/index';\nimport { variablesFacet } from './autocompletion/VariablesFacet';\n\nimport {\n classes as domClasses\n} from 'min-dom';\n\nconst NO_LINT_CLS = 'fjs-no-json-lint';\n\n\n/**\n * @param {object} options\n * @param {boolean} [options.readonly]\n * @param {object} [options.contentAttributes]\n * @param {string | HTMLElement} [options.placeholder]\n */\nexport function JSONEditor(options = {}) {\n const {\n contentAttributes = {},\n placeholder: editorPlaceholder,\n readonly = false,\n } = options;\n\n const emitter = mitt();\n\n let language = new Compartment().of(json());\n let tabSize = new Compartment().of(EditorState.tabSize.of(2));\n\n let container = null;\n\n\n /**\n * @typedef {Array<string>} Variables\n */\n\n const autocompletionConf = new Compartment();\n\n const linterExtension = linter(jsonParseLinter());\n\n // this sets no-linting mode if placeholders are present\n const placeholderLinterExtension = linter(view => {\n const placeholders = view.dom.querySelectorAll('.cm-placeholder');\n\n if (placeholders.length > 0) {\n set(container, NO_LINT_CLS);\n } else {\n unset(container, NO_LINT_CLS);\n }\n\n return [];\n });\n\n function createState(doc, extensions = [], variables = []) {\n return EditorState.create({\n doc,\n extensions: [\n basicSetup,\n language,\n tabSize,\n linterExtension,\n placeholderLinterExtension,\n lintGutter(),\n autocompletionConf.of(variablesFacet.of(variables)),\n autocompletionExtension(),\n keymap.of([ indentWithTab ]),\n editorPlaceholder ? placeholder(editorPlaceholder) : [],\n ...extensions\n ]\n });\n }\n\n function createView(readonly) {\n\n const updateListener = EditorView.updateListener.of(update => {\n if (update.docChanged) {\n emitter.emit('changed', {\n value: update.view.state.doc.toString()\n });\n }\n });\n\n const editable = EditorView.editable.of(!readonly);\n\n const contentAttributesExtension = EditorView.contentAttributes.of(contentAttributes);\n\n const view = new EditorView({\n state: createState('', [ updateListener, editable, contentAttributesExtension ])\n });\n\n view.setValue = function(value) {\n this.setState(createState(value, [ updateListener, editable, contentAttributesExtension ]));\n };\n\n view.setVariables = function(variables) {\n this.setState(createState(\n view.state.doc.toString(),\n [ updateListener, editable, contentAttributesExtension ],\n variables\n ));\n };\n\n return view;\n }\n\n const view = this._view = createView(readonly);\n\n this.setValue = function(value) {\n view.setValue(value);\n };\n\n this.getValue = function() {\n return view.state.doc.toString();\n };\n\n /**\n * @param {Variables} variables\n */\n this.setVariables = function(variables) {\n view.setVariables(variables);\n };\n\n this.on = emitter.on;\n this.off = emitter.off;\n this.emit = emitter.emit;\n\n this.attachTo = function(_container) {\n container = _container;\n container.appendChild(view.dom);\n };\n\n this.destroy = function() {\n if (view.dom.parentNode) {\n view.dom.parentNode.removeChild(view.dom);\n }\n\n view.destroy();\n };\n}\n\n// helpers //////////////////////\n\n\nfunction set(node, cls) {\n const classes = domClasses(node, document.body);\n classes.add(cls);\n}\n\nfunction unset(node, cls) {\n const classes = domClasses(node, document.body);\n classes.remove(cls);\n}\n","export function Section(props) {\n\n const elements =\n Array.isArray(props.children)\n ? props.children :\n [ props.children ];\n\n const {\n headerItems,\n children\n } = elements.reduce((_, child) => {\n const bucket =\n child.type === Section.HeaderItem\n ? _.headerItems\n : _.children;\n\n bucket.push(child);\n\n return _;\n }, { headerItems: [], children: [] });\n\n return (\n <div class=\"fjs-pgl-section\">\n <h1 class=\"header\">{ props.name } { headerItems.length ? <span class=\"header-items\">{ headerItems }</span> : null }</h1>\n <div class=\"body\">\n { children }\n </div>\n </div>\n );\n}\n\nSection.HeaderItem = function(props) {\n return props.children;\n};","import { useRef, useEffect, useState, useCallback } from 'preact/hooks';\nimport { isFunction } from 'min-dash';\nimport download from 'downloadjs';\n\nimport classNames from 'classnames';\n\nimport {\n Form,\n getSchemaVariables\n} from '@bpmn-io/form-js-viewer';\n\nimport {\n FormEditor\n} from '@bpmn-io/form-js-editor';\n\nimport { EmbedModal } from './EmbedModal';\nimport { JSONEditor } from './JSONEditor';\nimport { Section } from './Section';\n\n\nimport './FileDrop.css';\nimport './PlaygroundRoot.css';\n\n\nexport function PlaygroundRoot(props) {\n\n const {\n additionalModules = [], // goes into both editor + viewer\n actions: actionsConfig = {},\n emit,\n exporter: exporterConfig = {},\n viewerProperties = {},\n editorProperties = {},\n viewerAdditionalModules = [],\n editorAdditionalModules = [],\n propertiesPanel: propertiesPanelConfig = {},\n onInit: onPlaygroundInit,\n onStateChanged\n } = props;\n\n const {\n display: displayActions = true\n } = actionsConfig;\n\n const paletteContainerRef = useRef();\n const editorContainerRef = useRef();\n const formContainerRef = useRef();\n const dataContainerRef = useRef();\n const resultContainerRef = useRef();\n const propertiesPanelContainerRef = useRef();\n\n const paletteRef = useRef();\n const formEditorRef = useRef();\n const formRef = useRef();\n const dataEditorRef = useRef();\n const resultViewRef = useRef();\n const propertiesPanelRef = useRef();\n\n const [ showEmbed, setShowEmbed ] = useState(false);\n\n const [ initialData ] = useState(props.data || undefined);\n const [ initialSchema, setInitialSchema ] = useState(props.schema);\n\n const [ data, setData ] = useState(props.data || {});\n const [ schema, setSchema ] = useState(props.schema);\n\n const [ resultData, setResultData ] = useState({});\n\n // pipe to playground API\n useEffect(() => {\n onPlaygroundInit({\n attachDataContainer: (node) => dataEditorRef.current.attachTo(node),\n attachEditorContainer: (node) => formEditorRef.current.attachTo(node),\n attachFormContainer: (node) => formRef.current.attachTo(node),\n attachPaletteContainer: (node) => paletteRef.current.attachTo(node),\n attachPropertiesPanelContainer: (node) => propertiesPanelRef.current.attachTo(node),\n attachResultContainer: (node) => resultViewRef.current.attachTo(node),\n get: (name, strict) => formEditorRef.current.get(name, strict),\n getDataEditor: () => dataEditorRef.current,\n getEditor: () => formEditorRef.current,\n getForm: () => formRef.current,\n getResultView: () => resultViewRef.current,\n getSchema: () => formEditorRef.current.getSchema(),\n setSchema: setInitialSchema,\n saveSchema: () => formEditorRef.current.saveSchema()\n });\n }, [ onPlaygroundInit ]);\n\n useEffect(() => {\n setInitialSchema(props.schema || {});\n }, [ props.schema ]);\n\n useEffect(() => {\n const dataEditor = dataEditorRef.current = new JSONEditor({\n value: toString(data),\n contentAttributes: { 'aria-label': 'Form Input', tabIndex: 0 },\n placeholder: createDataEditorPlaceholder()\n });\n\n const resultView = resultViewRef.current = new JSONEditor({\n readonly: true,\n value: toString(resultData),\n contentAttributes: { 'aria-label': 'Form Output', tabIndex: 0 }\n });\n\n const form = formRef.current = new Form({\n additionalModules: [\n ...additionalModules,\n ...viewerAdditionalModules\n ],\n properties: {\n ...viewerProperties,\n 'ariaLabel': 'Form Preview'\n }\n });\n\n const formEditor = formEditorRef.current = new FormEditor({\n renderer: {\n compact: true\n },\n palette: {\n parent: paletteContainerRef.current\n },\n propertiesPanel: {\n parent: propertiesPanelContainerRef.current,\n ...propertiesPanelConfig\n },\n exporter: exporterConfig,\n properties: {\n ...editorProperties,\n 'ariaLabel': 'Form Definition'\n },\n additionalModules: [\n ...additionalModules,\n ...editorAdditionalModules\n ]\n });\n\n paletteRef.current = formEditor.get('palette');\n propertiesPanelRef.current = formEditor.get('propertiesPanel');\n\n formEditor.on('formField.add', ({ formField }) => {\n const formFields = formEditor.get('formFields');\n const { config } = formFields.get(formField.type);\n const { generateInitialDemoData } = config;\n const { id } = formField;\n\n if (!isFunction(generateInitialDemoData)) {\n return;\n }\n\n const initialDemoData = generateInitialDemoData(formField);\n\n if ([ initialDemoData, id ].includes(undefined)) {\n return;\n }\n\n setData((currentData) => {\n const newData = {\n ...currentData,\n [id]: initialDemoData,\n };\n\n dataEditorRef.current.setValue(\n toString(newData)\n );\n\n return newData;\n });\n });\n\n formEditor.on('changed', () => {\n setSchema(formEditor.getSchema());\n });\n\n formEditor.on('formEditor.rendered', () => {\n\n // notify interested parties after render\n emit('formPlayground.rendered');\n });\n\n form.on('changed', () => {\n setResultData(form._getSubmitData());\n });\n\n dataEditor.on('changed', event => {\n try {\n setData(JSON.parse(event.value));\n } catch (error) {\n\n // notify interested about input data error\n emit('formPlayground.inputDataError', error);\n }\n });\n\n const formContainer = formContainerRef.current;\n const editorContainer = editorContainerRef.current;\n const dataContainer = dataContainerRef.current;\n const resultContainer = resultContainerRef.current;\n\n dataEditor.attachTo(dataContainer);\n resultView.attachTo(resultContainer);\n form.attachTo(formContainer);\n formEditor.attachTo(editorContainer);\n\n return () => {\n dataEditor.destroy();\n resultView.destroy();\n form.destroy();\n formEditor.destroy();\n };\n }, []);\n\n useEffect(() => {\n dataEditorRef.current.setValue(toString(initialData));\n }, [ initialData ]);\n\n useEffect(() => {\n if (initialSchema) {\n formEditorRef.current.importSchema(initialSchema);\n dataEditorRef.current.setVariables(getSchemaVariables(initialSchema));\n }\n }, [ initialSchema ]);\n\n useEffect(() => {\n if (schema && dataContainerRef.current) {\n const variables = getSchemaVariables(schema);\n dataEditorRef.current.setVariables(variables);\n }\n }, [ schema ]);\n\n useEffect(() => {\n schema && formRef.current.importSchema(schema, data);\n }, [ schema, data ]);\n\n useEffect(() => {\n resultViewRef.current.setValue(toString(resultData));\n }, [ resultData ]);\n\n useEffect(() => {\n onStateChanged && onStateChanged({\n schema,\n data\n });\n }, [ onStateChanged, schema, data ]);\n\n const handleDownload = useCallback(() => {\n\n download(JSON.stringify(schema, null, ' '), 'form.json', 'text/json');\n }, [ schema ]);\n\n const hideEmbedModal = useCallback(() => {\n setShowEmbed(false);\n }, []);\n\n const showEmbedModal = useCallback(() => {\n setShowEmbed(true);\n }, []);\n\n return (\n <div class={ classNames(\n 'fjs-container',\n 'fjs-pgl-root'\n ) }>\n <div class=\"fjs-pgl-modals\">\n { showEmbed ? <EmbedModal schema={ schema } data={ data } onClose={ hideEmbedModal } /> : null }\n </div>\n <div class=\"fjs-pgl-palette-container\" ref={ paletteContainerRef } />\n <div class=\"fjs-pgl-main\">\n\n <Section name=\"Form Definition\">\n\n {\n displayActions && <Section.HeaderItem>\n <button\n class=\"fjs-pgl-button\"\n title=\"Download form definition\"\n onClick={ handleDownload }\n >Download</button>\n </Section.HeaderItem>\n }\n\n {\n displayActions && <Section.HeaderItem>\n <button\n class=\"fjs-pgl-button\"\n onClick={ showEmbedModal }\n >Embed</button>\n </Section.HeaderItem>\n }\n\n <div ref={ editorContainerRef } class=\"fjs-pgl-form-container\"></div>\n </Section>\n <Section name=\"Form Preview\">\n <div ref={ formContainerRef } class=\"fjs-pgl-form-container\"></div>\n </Section>\n <Section name=\"Form Input\">\n <div ref={ dataContainerRef } class=\"fjs-pgl-text-container\"></div>\n </Section>\n <Section name=\"Form Output\">\n <div ref={ resultContainerRef } class=\"fjs-pgl-text-container\"></div>\n </Section>\n </div>\n <div class=\"fjs-pgl-properties-container\" ref={ propertiesPanelContainerRef } />\n </div>\n );\n}\n\n\n// helpers ///////////////\n\nfunction toString(obj) {\n return JSON.stringify(obj, null, ' ');\n}\n\nfunction createDataEditorPlaceholder() {\n const element = document.createElement('p');\n\n element.innerHTML = 'Use this panel to simulate the form input, such as process variables.\\nThis helps to test the form by populating the preview.\\n\\n' +\n 'Follow the JSON format like this:\\n\\n' +\n '{\\n \"variable\": \"value\"\\n}';\n\n return element;\n}","import { render } from 'preact';\n\nimport fileDrop from 'file-drops';\n\nimport mitt from 'mitt';\n\nimport { PlaygroundRoot } from './components/PlaygroundRoot';\n\n/**\n * @typedef { import('@bpmn-io/form-js-viewer/dist/types/types').FormProperties } FormProperties\n * @typedef { import('@bpmn-io/form-js-editor/dist/types/types').FormEditorProperties } FormEditorProperties\n *\n * @typedef { {\n * actions?: { display: Boolean }\n * additionalModules?: Array<any>\n * container?: Element\n * data: any\n * editor?: { inlinePropertiesPanel: Boolean }\n * editorAdditionalModules?: Array<any>\n * editorProperties?: FormEditorProperties\n * exporter?: { name: String, version: String }\n * propertiesPanel?: { parent: Element, feelPopupContainer: Element }\n * schema: any\n * viewerAdditionalModules?: Array<any>\n * viewerProperties?: FormProperties\n * } } FormPlaygroundOptions\n */\n\n/**\n * @param {FormPlaygroundOptions} options\n */\nexport function Playground(options) {\n\n const {\n container: parent,\n schema,\n data,\n ...rest\n } = options;\n\n const emitter = mitt();\n\n let state = { data, schema };\n let ref;\n\n const container = document.createElement('div');\n\n container.classList.add('fjs-pgl-parent');\n\n if (parent) {\n parent.appendChild(container);\n }\n\n const handleDrop = fileDrop('Drop a form file', function(files) {\n const file = files[0];\n\n if (file) {\n try {\n ref.setSchema(JSON.parse(file.contents));\n } catch (err) {\n\n // TODO(nikku): indicate JSON parse error\n }\n }\n });\n\n const withRef = function(fn) {\n return function(...args) {\n if (!ref) {\n throw new Error('Playground is not initialized.');\n }\n\n return fn(...args);\n };\n };\n\n const onInit = function(_ref) {\n ref = _ref;\n emitter.emit('formPlayground.init');\n };\n\n container.addEventListener('dragover', handleDrop);\n\n render(\n <PlaygroundRoot\n data={ data }\n emit={ emitter.emit }\n onInit={ onInit }\n onStateChanged={ (_state) => state = _state }\n schema={ schema }\n { ...rest }\n />,\n container\n );\n\n this.on = emitter.on;\n this.off = emitter.off;\n\n this.emit = emitter.emit;\n\n this.on('destroy', function() {\n render(null, container);\n });\n\n this.on('destroy', function() {\n parent.removeChild(container);\n });\n\n this.getState = function() {\n return state;\n };\n\n this.getSchema = withRef(() => ref.getSchema());\n\n this.setSchema = withRef((schema) => ref.setSchema(schema));\n\n this.saveSchema = withRef(() => ref.saveSchema());\n\n this.get = withRef((name, strict) => ref.get(name, strict));\n\n this.getDataEditor = withRef(() => ref.getDataEditor());\n\n this.getEditor = withRef(() => ref.getEditor());\n\n this.getForm = withRef((name, strict) => ref.getForm(name, strict));\n\n this.getResultView = withRef(() => ref.getResultView());\n\n this.destroy = function() {\n this.emit('destroy');\n };\n\n this.attachEditorContainer = withRef((node) => ref.attachEditorContainer(node));\n\n this.attachPreviewContainer = withRef((node) => ref.attachFormContainer(node));\n\n this.attachDataContainer = withRef((node) => ref.attachDataContainer(node));\n\n this.attachResultContainer = withRef((node) => ref.attachResultContainer(node));\n\n this.attachPaletteContainer = withRef((node) => ref.attachPaletteContainer(node));\n\n this.attachPropertiesPanelContainer = withRef((node) => ref.attachPropertiesPanelContainer(node));\n}"],"names":["Modal","props","useEffect","handleKey","event","key","stopPropagation","onClose","document","addEventListener","removeEventListener","_jsxs","class","children","_jsx","onClick","name","EmbedModal","schema","serializeValue","data","fieldRef","useRef","snippet","trim","current","select","href","spellCheck","ref","obj","JSON","stringify","replace","variablesFacet","Facet","define","autocompletionExtension","autocompletion","override","completions","context","variables","state","facet","options","map","v","label","type","nodeBefore","syntaxTree","resolve","pos","explicit","word","matchBefore","from","to","NO_LINT_CLS","JSONEditor","contentAttributes","placeholder","editorPlaceholder","readonly","emitter","mitt","language","Compartment","of","json","tabSize","EditorState","container","autocompletionConf","linterExtension","linter","jsonParseLinter","placeholderLinterExtension","view","placeholders","dom","querySelectorAll","length","set","unset","createState","doc","extensions","create","basicSetup","lintGutter","keymap","indentWithTab","createView","updateListener","EditorView","update","docChanged","emit","value","toString","editable","contentAttributesExtension","setValue","setState","setVariables","_view","getValue","on","off","attachTo","_container","appendChild","destroy","parentNode","removeChild","node","cls","classes","domClasses","body","add","remove","Section","elements","Array","isArray","headerItems","reduce","_","child","bucket","HeaderItem","push","PlaygroundRoot","additionalModules","actions","actionsConfig","exporter","exporterConfig","viewerProperties","editorProperties","viewerAdditionalModules","editorAdditionalModules","propertiesPanel","propertiesPanelConfig","onInit","onPlaygroundInit","onStateChanged","display","displayActions","paletteContainerRef","editorContainerRef","formContainerRef","dataContainerRef","resultContainerRef","propertiesPanelContainerRef","paletteRef","formEditorRef","formRef","dataEditorRef","resultViewRef","propertiesPanelRef","showEmbed","setShowEmbed","useState","initialData","undefined","initialSchema","setInitialSchema","setData","setSchema","resultData","setResultData","attachDataContainer","attachEditorContainer","attachFormContainer","attachPaletteContainer","attachPropertiesPanelContainer","attachResultContainer","get","strict","getDataEditor","getEditor","getForm","getResultView","getSchema","saveSchema","dataEditor","tabIndex","createDataEditorPlaceholder","resultView","form","Form","properties","formEditor","FormEditor","renderer","compact","palette","parent","formField","formFields","config","generateInitialDemoData","id","isFunction","initialDemoData","includes","currentData","newData","_getSubmitData","parse","error","formContainer","editorContainer","dataContainer","resultContainer","importSchema","getSchemaVariables","handleDownload","useCallback","download","hideEmbedModal","showEmbedModal","classNames","title","element","createElement","innerHTML","Playground","rest","classList","handleDrop","fileDrop","files","file","contents","err","withRef","fn","args","Error","_ref","render","_state","getState","attachPreviewContainer"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/components/Modal.js","../src/components/EmbedModal.js","../src/components/autocompletion/VariablesFacet.js","../src/components/autocompletion/index.js","../src/components/JSONEditor.js","../src/components/Section.js","../src/components/PlaygroundRoot.js","../src/Playground.js"],"sourcesContent":["import { useEffect } from 'preact/hooks';\n\nexport function Modal(props) {\n\n useEffect(() => {\n function handleKey(event) {\n\n if (event.key === 'Escape') {\n event.stopPropagation();\n\n props.onClose();\n }\n }\n\n document.addEventListener('keydown', handleKey);\n\n return () => {\n document.removeEventListener('keydown', handleKey);\n };\n });\n\n return (\n <div class=\"fjs-pgl-modal\">\n <div class=\"fjs-pgl-modal-backdrop\" onClick={ props.onClose }></div>\n <div class=\"fjs-pgl-modal-content\">\n <h1 class=\"fjs-pgl-modal-header\">{ props.name }</h1>\n <div class=\"fjs-pgl-modal-body\">\n { props.children }\n </div>\n <div class=\"fjs-pgl-modal-footer\">\n <button type=\"button\" class=\"fjs-pgl-button fjs-pgl-button-default\" onClick={ props.onClose }>Close</button>\n </div>\n </div>\n </div>\n );\n}\n","import { useEffect, useRef } from 'preact/hooks';\n\nimport { Modal } from './Modal';\n\n\nexport function EmbedModal(props) {\n\n const schema = serializeValue(props.schema);\n const data = serializeValue(props.data || {});\n\n const fieldRef = useRef();\n\n const snippet = `<!-- styles needed for rendering -->\n<link rel=\"stylesheet\" href=\"https://unpkg.com/@bpmn-io/form-js@0.2.4/dist/assets/form-js.css\">\n\n<!-- container to render the form into -->\n<div class=\"fjs-pgl-form-container\"></div>\n\n<!-- scripts needed for embedding -->\n<script src=\"https://unpkg.com/@bpmn-io/form-js@0.2.4/dist/form-viewer.umd.js\"></script>\n\n<!-- actual script to instantiate the form and load form schema + data -->\n<script>\n const data = JSON.parse(${data});\n const schema = JSON.parse(${schema});\n\n const form = new FormViewer.Form({\n container: document.querySelector(\".fjs-pgl-form-container\")\n });\n\n form.on(\"submit\", (event) => {\n console.log(event.data, event.errors);\n });\n\n form.importSchema(schema, data).catch(err => {\n console.error(\"Failed to render form\", err);\n });\n</script>\n `.trim();\n\n useEffect(() => {\n fieldRef.current.select();\n });\n\n return (\n <Modal name=\"Embed form\" onClose={ props.onClose }>\n <p>Use the following HTML snippet to embed your form with <a href=\"https://github.com/bpmn-io/form-js\">form-js</a>:</p>\n\n <textarea spellCheck=\"false\" ref={ fieldRef }>{snippet}</textarea>\n </Modal>\n );\n}\n\n\n// helpers ///////////\n\nfunction serializeValue(obj) {\n return JSON.stringify(JSON.stringify(obj)).replace(/</g, '<').replace(/>/g, '>');\n}","import { Facet } from '@codemirror/state';\n\n/**\n * @type {Facet<import('..').Variables>} Variables\n */\nexport const variablesFacet = Facet.define();","import { autocompletion } from '@codemirror/autocomplete';\nimport { variablesFacet } from './VariablesFacet';\n\nimport { syntaxTree } from '@codemirror/language';\n\nexport function autocompletionExtension() {\n return [\n autocompletion({\n override: [\n completions\n ]\n })\n ];\n}\n\nfunction completions(context) {\n\n const variables = context.state.facet(variablesFacet)[0];\n\n const options = variables.map(v => ({\n label: v,\n type: 'variable'\n }));\n\n let nodeBefore = syntaxTree(context.state).resolve(context.pos, -1);\n\n // handle inside property name as explicit call\n if (nodeBefore.type.name === 'PropertyName') {\n context.explicit = true;\n }\n\n let word = context.matchBefore(/\\w*/);\n\n if (word.from == word.to && !context.explicit) {\n return null;\n }\n\n return {\n from: word.from,\n options\n };\n}","import mitt from 'mitt';\n\nimport { basicSetup } from 'codemirror';\nimport { EditorView, keymap, placeholder } from '@codemirror/view';\nimport { EditorState, Compartment } from '@codemirror/state';\nimport { lintGutter, linter } from '@codemirror/lint';\nimport { json, jsonParseLinter } from '@codemirror/lang-json';\nimport { indentWithTab } from '@codemirror/commands';\nimport { autocompletionExtension } from './autocompletion/index';\nimport { variablesFacet } from './autocompletion/VariablesFacet';\n\nimport {\n classes as domClasses\n} from 'min-dom';\n\nconst NO_LINT_CLS = 'fjs-no-json-lint';\n\n\n/**\n * @param {object} options\n * @param {boolean} [options.readonly]\n * @param {object} [options.contentAttributes]\n * @param {string | HTMLElement} [options.placeholder]\n */\nexport function JSONEditor(options = {}) {\n const {\n contentAttributes = {},\n placeholder: editorPlaceholder,\n readonly = false,\n } = options;\n\n const emitter = mitt();\n\n let language = new Compartment().of(json());\n let tabSize = new Compartment().of(EditorState.tabSize.of(2));\n\n let container = null;\n\n\n /**\n * @typedef {Array<string>} Variables\n */\n\n const autocompletionConf = new Compartment();\n\n const linterExtension = linter(jsonParseLinter());\n\n // this sets no-linting mode if placeholders are present\n const placeholderLinterExtension = linter(view => {\n const placeholders = view.dom.querySelectorAll('.cm-placeholder');\n\n if (placeholders.length > 0) {\n set(container, NO_LINT_CLS);\n } else {\n unset(container, NO_LINT_CLS);\n }\n\n return [];\n });\n\n function createState(doc, extensions = [], variables = []) {\n return EditorState.create({\n doc,\n extensions: [\n basicSetup,\n language,\n tabSize,\n linterExtension,\n placeholderLinterExtension,\n lintGutter(),\n autocompletionConf.of(variablesFacet.of(variables)),\n autocompletionExtension(),\n keymap.of([ indentWithTab ]),\n editorPlaceholder ? placeholder(editorPlaceholder) : [],\n ...extensions\n ]\n });\n }\n\n function createView(readonly) {\n\n const updateListener = EditorView.updateListener.of(update => {\n if (update.docChanged) {\n emitter.emit('changed', {\n value: update.view.state.doc.toString()\n });\n }\n });\n\n const editable = EditorView.editable.of(!readonly);\n\n const contentAttributesExtension = EditorView.contentAttributes.of(contentAttributes);\n\n const view = new EditorView({\n state: createState('', [ updateListener, editable, contentAttributesExtension ])\n });\n\n view.setValue = function(value) {\n this.setState(createState(value, [ updateListener, editable, contentAttributesExtension ]));\n };\n\n view.setVariables = function(variables) {\n this.setState(createState(\n view.state.doc.toString(),\n [ updateListener, editable, contentAttributesExtension ],\n variables\n ));\n };\n\n return view;\n }\n\n const view = this._view = createView(readonly);\n\n this.setValue = function(value) {\n view.setValue(value);\n };\n\n this.getValue = function() {\n return view.state.doc.toString();\n };\n\n /**\n * @param {Variables} variables\n */\n this.setVariables = function(variables) {\n view.setVariables(variables);\n };\n\n this.on = emitter.on;\n this.off = emitter.off;\n this.emit = emitter.emit;\n\n this.attachTo = function(_container) {\n container = _container;\n container.appendChild(view.dom);\n };\n\n this.destroy = function() {\n if (view.dom.parentNode) {\n view.dom.parentNode.removeChild(view.dom);\n }\n\n view.destroy();\n };\n}\n\n// helpers //////////////////////\n\n\nfunction set(node, cls) {\n const classes = domClasses(node, document.body);\n classes.add(cls);\n}\n\nfunction unset(node, cls) {\n const classes = domClasses(node, document.body);\n classes.remove(cls);\n}\n","export function Section(props) {\n\n const elements =\n Array.isArray(props.children)\n ? props.children :\n [ props.children ];\n\n const {\n headerItems,\n children\n } = elements.reduce((_, child) => {\n const bucket =\n child.type === Section.HeaderItem\n ? _.headerItems\n : _.children;\n\n bucket.push(child);\n\n return _;\n }, { headerItems: [], children: [] });\n\n return (\n <div class=\"fjs-pgl-section\">\n <h1 class=\"header\">{ props.name } { headerItems.length ? <span class=\"header-items\">{ headerItems }</span> : null }</h1>\n <div class=\"body\">\n { children }\n </div>\n </div>\n );\n}\n\nSection.HeaderItem = function(props) {\n return props.children;\n};","import { useRef, useEffect, useState, useCallback } from 'preact/hooks';\nimport { isFunction } from 'min-dash';\nimport download from 'downloadjs';\n\nimport classNames from 'classnames';\n\nimport {\n Form,\n getSchemaVariables\n} from '@bpmn-io/form-js-viewer';\n\nimport {\n FormEditor\n} from '@bpmn-io/form-js-editor';\n\nimport { EmbedModal } from './EmbedModal';\nimport { JSONEditor } from './JSONEditor';\nimport { Section } from './Section';\n\n\nimport './FileDrop.css';\nimport './PlaygroundRoot.css';\n\n\nexport function PlaygroundRoot(props) {\n\n const {\n additionalModules = [], // goes into both editor + viewer\n actions: actionsConfig = {},\n emit,\n exporter: exporterConfig = {},\n viewerProperties = {},\n editorProperties = {},\n viewerAdditionalModules = [],\n editorAdditionalModules = [],\n propertiesPanel: propertiesPanelConfig = {},\n onInit: onPlaygroundInit,\n onStateChanged\n } = props;\n\n const {\n display: displayActions = true\n } = actionsConfig;\n\n const paletteContainerRef = useRef();\n const editorContainerRef = useRef();\n const formContainerRef = useRef();\n const dataContainerRef = useRef();\n const resultContainerRef = useRef();\n const propertiesPanelContainerRef = useRef();\n\n const paletteRef = useRef();\n const formEditorRef = useRef();\n const formRef = useRef();\n const dataEditorRef = useRef();\n const resultViewRef = useRef();\n const propertiesPanelRef = useRef();\n\n const [ showEmbed, setShowEmbed ] = useState(false);\n\n const [ initialData ] = useState(props.data || undefined);\n const [ initialSchema, setInitialSchema ] = useState(props.schema);\n\n const [ data, setData ] = useState(props.data || {});\n const [ schema, setSchema ] = useState(props.schema);\n\n const [ resultData, setResultData ] = useState({});\n\n // pipe to playground API\n useEffect(() => {\n onPlaygroundInit({\n attachDataContainer: (node) => dataEditorRef.current.attachTo(node),\n attachEditorContainer: (node) => formEditorRef.current.attachTo(node),\n attachFormContainer: (node) => formRef.current.attachTo(node),\n attachPaletteContainer: (node) => paletteRef.current.attachTo(node),\n attachPropertiesPanelContainer: (node) => propertiesPanelRef.current.attachTo(node),\n attachResultContainer: (node) => resultViewRef.current.attachTo(node),\n get: (name, strict) => formEditorRef.current.get(name, strict),\n getDataEditor: () => dataEditorRef.current,\n getEditor: () => formEditorRef.current,\n getForm: () => formRef.current,\n getResultView: () => resultViewRef.current,\n getSchema: () => formEditorRef.current.getSchema(),\n setSchema: setInitialSchema,\n saveSchema: () => formEditorRef.current.saveSchema()\n });\n }, [ onPlaygroundInit ]);\n\n useEffect(() => {\n setInitialSchema(props.schema || {});\n }, [ props.schema ]);\n\n useEffect(() => {\n const dataEditor = dataEditorRef.current = new JSONEditor({\n value: toString(data),\n contentAttributes: { 'aria-label': 'Form Input', tabIndex: 0 },\n placeholder: createDataEditorPlaceholder()\n });\n\n const resultView = resultViewRef.current = new JSONEditor({\n readonly: true,\n value: toString(resultData),\n contentAttributes: { 'aria-label': 'Form Output', tabIndex: 0 }\n });\n\n const form = formRef.current = new Form({\n additionalModules: [\n ...additionalModules,\n ...viewerAdditionalModules\n ],\n properties: {\n ...viewerProperties,\n 'ariaLabel': 'Form Preview'\n }\n });\n\n const formEditor = formEditorRef.current = new FormEditor({\n renderer: {\n compact: true\n },\n palette: {\n parent: paletteContainerRef.current\n },\n propertiesPanel: {\n parent: propertiesPanelContainerRef.current,\n ...propertiesPanelConfig\n },\n exporter: exporterConfig,\n properties: {\n ...editorProperties,\n 'ariaLabel': 'Form Definition'\n },\n additionalModules: [\n ...additionalModules,\n ...editorAdditionalModules\n ]\n });\n\n paletteRef.current = formEditor.get('palette');\n propertiesPanelRef.current = formEditor.get('propertiesPanel');\n\n formEditor.on('formField.add', ({ formField }) => {\n const formFields = formEditor.get('formFields');\n const { config } = formFields.get(formField.type);\n const { generateInitialDemoData } = config;\n const { id } = formField;\n\n if (!isFunction(generateInitialDemoData)) {\n return;\n }\n\n const initialDemoData = generateInitialDemoData(formField);\n\n if ([ initialDemoData, id ].includes(undefined)) {\n return;\n }\n\n setData((currentData) => {\n const newData = {\n ...currentData,\n [id]: initialDemoData,\n };\n\n dataEditorRef.current.setValue(\n toString(newData)\n );\n\n return newData;\n });\n });\n\n formEditor.on('changed', () => {\n setSchema(formEditor.getSchema());\n });\n\n formEditor.on('formEditor.rendered', () => {\n\n // notify interested parties after render\n emit('formPlayground.rendered');\n });\n\n form.on('changed', () => {\n setResultData(form._getSubmitData());\n });\n\n dataEditor.on('changed', event => {\n try {\n setData(JSON.parse(event.value));\n } catch (error) {\n\n // notify interested about input data error\n emit('formPlayground.inputDataError', error);\n }\n });\n\n const formContainer = formContainerRef.current;\n const editorContainer = editorContainerRef.current;\n const dataContainer = dataContainerRef.current;\n const resultContainer = resultContainerRef.current;\n\n dataEditor.attachTo(dataContainer);\n resultView.attachTo(resultContainer);\n form.attachTo(formContainer);\n formEditor.attachTo(editorContainer);\n\n return () => {\n dataEditor.destroy();\n resultView.destroy();\n form.destroy();\n formEditor.destroy();\n };\n }, []);\n\n useEffect(() => {\n dataEditorRef.current.setValue(toString(initialData));\n }, [ initialData ]);\n\n useEffect(() => {\n if (initialSchema) {\n formEditorRef.current.importSchema(initialSchema);\n dataEditorRef.current.setVariables(getSchemaVariables(initialSchema));\n }\n }, [ initialSchema ]);\n\n useEffect(() => {\n if (schema && dataContainerRef.current) {\n const variables = getSchemaVariables(schema);\n dataEditorRef.current.setVariables(variables);\n }\n }, [ schema ]);\n\n useEffect(() => {\n schema && formRef.current.importSchema(schema, data);\n }, [ schema, data ]);\n\n useEffect(() => {\n resultViewRef.current.setValue(toString(resultData));\n }, [ resultData ]);\n\n useEffect(() => {\n onStateChanged && onStateChanged({\n schema,\n data\n });\n }, [ onStateChanged, schema, data ]);\n\n const handleDownload = useCallback(() => {\n\n download(JSON.stringify(schema, null, ' '), 'form.json', 'text/json');\n }, [ schema ]);\n\n const hideEmbedModal = useCallback(() => {\n setShowEmbed(false);\n }, []);\n\n const showEmbedModal = useCallback(() => {\n setShowEmbed(true);\n }, []);\n\n return (\n <div class={ classNames(\n 'fjs-container',\n 'fjs-pgl-root'\n ) }>\n <div class=\"fjs-pgl-modals\">\n { showEmbed ? <EmbedModal schema={ schema } data={ data } onClose={ hideEmbedModal } /> : null }\n </div>\n <div class=\"fjs-pgl-palette-container\" ref={ paletteContainerRef } />\n <div class=\"fjs-pgl-main\">\n\n <Section name=\"Form Definition\">\n\n {\n displayActions && <Section.HeaderItem>\n <button\n type=\"button\"\n class=\"fjs-pgl-button\"\n title=\"Download form definition\"\n onClick={ handleDownload }\n >Download</button>\n </Section.HeaderItem>\n }\n\n {\n displayActions && <Section.HeaderItem>\n <button\n type=\"button\"\n class=\"fjs-pgl-button\"\n onClick={ showEmbedModal }\n >Embed</button>\n </Section.HeaderItem>\n }\n\n <div ref={ editorContainerRef } class=\"fjs-pgl-form-container\"></div>\n </Section>\n <Section name=\"Form Preview\">\n <div ref={ formContainerRef } class=\"fjs-pgl-form-container\"></div>\n </Section>\n <Section name=\"Form Input\">\n <div ref={ dataContainerRef } class=\"fjs-pgl-text-container\"></div>\n </Section>\n <Section name=\"Form Output\">\n <div ref={ resultContainerRef } class=\"fjs-pgl-text-container\"></div>\n </Section>\n </div>\n <div class=\"fjs-pgl-properties-container\" ref={ propertiesPanelContainerRef } />\n </div>\n );\n}\n\n\n// helpers ///////////////\n\nfunction toString(obj) {\n return JSON.stringify(obj, null, ' ');\n}\n\nfunction createDataEditorPlaceholder() {\n const element = document.createElement('p');\n\n element.innerHTML = 'Use this panel to simulate the form input, such as process variables.\\nThis helps to test the form by populating the preview.\\n\\n' +\n 'Follow the JSON format like this:\\n\\n' +\n '{\\n \"variable\": \"value\"\\n}';\n\n return element;\n}","import { render } from 'preact';\n\nimport fileDrop from 'file-drops';\n\nimport mitt from 'mitt';\n\nimport { PlaygroundRoot } from './components/PlaygroundRoot';\n\n/**\n * @typedef { import('@bpmn-io/form-js-viewer/dist/types/types').FormProperties } FormProperties\n * @typedef { import('@bpmn-io/form-js-editor/dist/types/types').FormEditorProperties } FormEditorProperties\n *\n * @typedef { {\n * actions?: { display: Boolean }\n * additionalModules?: Array<any>\n * container?: Element\n * data: any\n * editor?: { inlinePropertiesPanel: Boolean }\n * editorAdditionalModules?: Array<any>\n * editorProperties?: FormEditorProperties\n * exporter?: { name: String, version: String }\n * propertiesPanel?: { parent: Element, feelPopupContainer: Element }\n * schema: any\n * viewerAdditionalModules?: Array<any>\n * viewerProperties?: FormProperties\n * } } FormPlaygroundOptions\n */\n\n/**\n * @param {FormPlaygroundOptions} options\n */\nexport function Playground(options) {\n\n const {\n container: parent,\n schema,\n data,\n ...rest\n } = options;\n\n const emitter = mitt();\n\n let state = { data, schema };\n let ref;\n\n const container = document.createElement('div');\n\n container.classList.add('fjs-pgl-parent');\n\n if (parent) {\n parent.appendChild(container);\n }\n\n const handleDrop = fileDrop('Drop a form file', function(files) {\n const file = files[0];\n\n if (file) {\n try {\n ref.setSchema(JSON.parse(file.contents));\n } catch (err) {\n\n // TODO(nikku): indicate JSON parse error\n }\n }\n });\n\n const withRef = function(fn) {\n return function(...args) {\n if (!ref) {\n throw new Error('Playground is not initialized.');\n }\n\n return fn(...args);\n };\n };\n\n const onInit = function(_ref) {\n ref = _ref;\n emitter.emit('formPlayground.init');\n };\n\n container.addEventListener('dragover', handleDrop);\n\n render(\n <PlaygroundRoot\n data={ data }\n emit={ emitter.emit }\n onInit={ onInit }\n onStateChanged={ (_state) => state = _state }\n schema={ schema }\n { ...rest }\n />,\n container\n );\n\n this.on = emitter.on;\n this.off = emitter.off;\n\n this.emit = emitter.emit;\n\n this.on('destroy', function() {\n render(null, container);\n });\n\n this.on('destroy', function() {\n parent.removeChild(container);\n });\n\n this.getState = function() {\n return state;\n };\n\n this.getSchema = withRef(() => ref.getSchema());\n\n this.setSchema = withRef((schema) => ref.setSchema(schema));\n\n this.saveSchema = withRef(() => ref.saveSchema());\n\n this.get = withRef((name, strict) => ref.get(name, strict));\n\n this.getDataEditor = withRef(() => ref.getDataEditor());\n\n this.getEditor = withRef(() => ref.getEditor());\n\n this.getForm = withRef((name, strict) => ref.getForm(name, strict));\n\n this.getResultView = withRef(() => ref.getResultView());\n\n this.destroy = function() {\n this.emit('destroy');\n };\n\n this.attachEditorContainer = withRef((node) => ref.attachEditorContainer(node));\n\n this.attachPreviewContainer = withRef((node) => ref.attachFormContainer(node));\n\n this.attachDataContainer = withRef((node) => ref.attachDataContainer(node));\n\n this.attachResultContainer = withRef((node) => ref.attachResultContainer(node));\n\n this.attachPaletteContainer = withRef((node) => ref.attachPaletteContainer(node));\n\n this.attachPropertiesPanelContainer = withRef((node) => ref.attachPropertiesPanelContainer(node));\n}"],"names":["Modal","props","useEffect","handleKey","event","key","stopPropagation","onClose","document","addEventListener","removeEventListener","_jsxs","class","children","_jsx","onClick","name","type","EmbedModal","schema","serializeValue","data","fieldRef","useRef","snippet","trim","current","select","href","spellCheck","ref","obj","JSON","stringify","replace","variablesFacet","Facet","define","autocompletionExtension","autocompletion","override","completions","context","variables","state","facet","options","map","v","label","nodeBefore","syntaxTree","resolve","pos","explicit","word","matchBefore","from","to","NO_LINT_CLS","JSONEditor","contentAttributes","placeholder","editorPlaceholder","readonly","emitter","mitt","language","Compartment","of","json","tabSize","EditorState","container","autocompletionConf","linterExtension","linter","jsonParseLinter","placeholderLinterExtension","view","placeholders","dom","querySelectorAll","length","set","unset","createState","doc","extensions","create","basicSetup","lintGutter","keymap","indentWithTab","createView","updateListener","EditorView","update","docChanged","emit","value","toString","editable","contentAttributesExtension","setValue","setState","setVariables","_view","getValue","on","off","attachTo","_container","appendChild","destroy","parentNode","removeChild","node","cls","classes","domClasses","body","add","remove","Section","elements","Array","isArray","headerItems","reduce","_","child","bucket","HeaderItem","push","PlaygroundRoot","additionalModules","actions","actionsConfig","exporter","exporterConfig","viewerProperties","editorProperties","viewerAdditionalModules","editorAdditionalModules","propertiesPanel","propertiesPanelConfig","onInit","onPlaygroundInit","onStateChanged","display","displayActions","paletteContainerRef","editorContainerRef","formContainerRef","dataContainerRef","resultContainerRef","propertiesPanelContainerRef","paletteRef","formEditorRef","formRef","dataEditorRef","resultViewRef","propertiesPanelRef","showEmbed","setShowEmbed","useState","initialData","undefined","initialSchema","setInitialSchema","setData","setSchema","resultData","setResultData","attachDataContainer","attachEditorContainer","attachFormContainer","attachPaletteContainer","attachPropertiesPanelContainer","attachResultContainer","get","strict","getDataEditor","getEditor","getForm","getResultView","getSchema","saveSchema","dataEditor","tabIndex","createDataEditorPlaceholder","resultView","form","Form","properties","formEditor","FormEditor","renderer","compact","palette","parent","formField","formFields","config","generateInitialDemoData","id","isFunction","initialDemoData","includes","currentData","newData","_getSubmitData","parse","error","formContainer","editorContainer","dataContainer","resultContainer","importSchema","getSchemaVariables","handleDownload","useCallback","download","hideEmbedModal","showEmbedModal","classNames","title","element","createElement","innerHTML","Playground","rest","classList","handleDrop","fileDrop","files","file","contents","err","withRef","fn","args","Error","_ref","render","_state","getState","attachPreviewContainer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAEO,SAASA,KAAKA,CAACC,KAAK,EAAE;AAE3BC,EAAAA,eAAS,CAAC,MAAM;IACd,SAASC,SAASA,CAACC,KAAK,EAAE;AAExB,MAAA,IAAIA,KAAK,CAACC,GAAG,KAAK,QAAQ,EAAE;QAC1BD,KAAK,CAACE,eAAe,EAAE,CAAA;QAEvBL,KAAK,CAACM,OAAO,EAAE,CAAA;AACjB,OAAA;AACF,KAAA;AAEAC,IAAAA,QAAQ,CAACC,gBAAgB,CAAC,SAAS,EAAEN,SAAS,CAAC,CAAA;AAE/C,IAAA,OAAO,MAAM;AACXK,MAAAA,QAAQ,CAACE,mBAAmB,CAAC,SAAS,EAAEP,SAAS,CAAC,CAAA;KACnD,CAAA;AACH,GAAC,CAAC,CAAA;AAEF,EAAA,OACEQ,eAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,KAAK,EAAC,eAAe;AAAAC,IAAAA,QAAA,GACxBC,cAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,KAAK,EAAC,wBAAwB;MAACG,OAAO,EAAGd,KAAK,CAACM,OAAAA;KAAe,CAAC,EACpEI,eAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,KAAK,EAAC,uBAAuB;AAAAC,MAAAA,QAAA,GAChCC,cAAA,CAAA,IAAA,EAAA;AAAIF,QAAAA,KAAK,EAAC,sBAAsB;QAAAC,QAAA,EAAGZ,KAAK,CAACe,IAAAA;OAAU,CAAC,EACpDF,cAAA,CAAA,KAAA,EAAA;AAAKF,QAAAA,KAAK,EAAC,oBAAoB;QAAAC,QAAA,EAC3BZ,KAAK,CAACY,QAAAA;OACL,CAAC,EACNC,cAAA,CAAA,KAAA,EAAA;AAAKF,QAAAA,KAAK,EAAC,sBAAsB;AAAAC,QAAAA,QAAA,EAC/BC,cAAA,CAAA,QAAA,EAAA;AAAQG,UAAAA,IAAI,EAAC,QAAQ;AAACL,UAAAA,KAAK,EAAC,uCAAuC;UAACG,OAAO,EAAGd,KAAK,CAACM,OAAS;AAAAM,UAAAA,QAAA,EAAC,OAAA;SAAa,CAAA;AAAC,OACzG,CAAC,CAAA;AAAA,KACH,CAAC,CAAA;AAAA,GACH,CAAC,CAAA;AAEV;;AC9BO,SAASK,UAAUA,CAACjB,KAAK,EAAE;AAEhC,EAAA,MAAMkB,MAAM,GAAGC,cAAc,CAACnB,KAAK,CAACkB,MAAM,CAAC,CAAA;EAC3C,MAAME,IAAI,GAAGD,cAAc,CAACnB,KAAK,CAACoB,IAAI,IAAI,EAAE,CAAC,CAAA;AAE7C,EAAA,MAAMC,QAAQ,GAAGC,YAAM,EAAE,CAAA;AAEzB,EAAA,MAAMC,OAAO,GAAI,CAAA;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAAA,EAA4BH,IAAK,CAAA;AACjC,4BAAA,EAA8BF,MAAO,CAAA;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAG,CAAA,CAACM,IAAI,EAAE,CAAA;AAERvB,EAAAA,eAAS,CAAC,MAAM;AACdoB,IAAAA,QAAQ,CAACI,OAAO,CAACC,MAAM,EAAE,CAAA;AAC3B,GAAC,CAAC,CAAA;EAEF,OACEhB,eAAA,CAACX,KAAK,EAAA;AAACgB,IAAAA,IAAI,EAAC,YAAY;IAACT,OAAO,EAAGN,KAAK,CAACM,OAAS;AAAAM,IAAAA,QAAA,GAChDF,eAAA,CAAA,GAAA,EAAA;MAAAE,QAAA,EAAA,CAAG,yDAAuD,EAAAC,cAAA,CAAA,GAAA,EAAA;AAAGc,QAAAA,IAAI,EAAC,oCAAoC;AAAAf,QAAAA,QAAA,EAAC,SAAA;AAAO,OAAG,CAAC,EAAC,GAAA,CAAA;KAAG,CAAC,EAEvHC,cAAA,CAAA,UAAA,EAAA;AAAUe,MAAAA,UAAU,EAAC,OAAO;AAACC,MAAAA,GAAG,EAAGR,QAAU;AAAAT,MAAAA,QAAA,EAAEW,OAAAA;AAAO,KAAW,CAAC,CAAA;AAAA,GAC7D,CAAC,CAAA;AAEZ,CAAA;;AAGA;;AAEA,SAASJ,cAAcA,CAACW,GAAG,EAAE;EAC3B,OAAOC,IAAI,CAACC,SAAS,CAACD,IAAI,CAACC,SAAS,CAACF,GAAG,CAAC,CAAC,CAACG,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAACA,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;AACxF;;ACxDA;AACA;AACA;AACO,MAAMC,cAAc,GAAGC,WAAK,CAACC,MAAM,EAAE;;ACArC,SAASC,uBAAuBA,GAAG;EACxC,OAAO,CACLC,2BAAc,CAAC;IACbC,QAAQ,EAAE,CACRC,WAAW,CAAA;AAEf,GAAC,CAAC,CACH,CAAA;AACH,CAAA;AAEA,SAASA,WAAWA,CAACC,OAAO,EAAE;AAE5B,EAAA,MAAMC,SAAS,GAAGD,OAAO,CAACE,KAAK,CAACC,KAAK,CAACV,cAAc,CAAC,CAAC,CAAC,CAAC,CAAA;AAExD,EAAA,MAAMW,OAAO,GAAGH,SAAS,CAACI,GAAG,CAACC,CAAC,KAAK;AAClCC,IAAAA,KAAK,EAAED,CAAC;AACR/B,IAAAA,IAAI,EAAE,UAAA;AACR,GAAC,CAAC,CAAC,CAAA;AAEH,EAAA,IAAIiC,UAAU,GAAGC,mBAAU,CAACT,OAAO,CAACE,KAAK,CAAC,CAACQ,OAAO,CAACV,OAAO,CAACW,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;;AAEnE;AACA,EAAA,IAAIH,UAAU,CAACjC,IAAI,CAACD,IAAI,KAAK,cAAc,EAAE;IAC3C0B,OAAO,CAACY,QAAQ,GAAG,IAAI,CAAA;AACzB,GAAA;AAEA,EAAA,IAAIC,IAAI,GAAGb,OAAO,CAACc,WAAW,CAAC,KAAK,CAAC,CAAA;AAErC,EAAA,IAAID,IAAI,CAACE,IAAI,IAAIF,IAAI,CAACG,EAAE,IAAI,CAAChB,OAAO,CAACY,QAAQ,EAAE;AAC7C,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;EAEA,OAAO;IACLG,IAAI,EAAEF,IAAI,CAACE,IAAI;AACfX,IAAAA,OAAAA;GACD,CAAA;AACH;;AC1BA,MAAMa,WAAW,GAAG,kBAAkB,CAAA;;AAGtC;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,UAAUA,CAACd,OAAO,GAAG,EAAE,EAAE;EACvC,MAAM;IACJe,iBAAiB,GAAG,EAAE;AACtBC,IAAAA,WAAW,EAAEC,iBAAiB;AAC9BC,IAAAA,QAAQ,GAAG,KAAA;AACb,GAAC,GAAGlB,OAAO,CAAA;AAEX,EAAA,MAAMmB,OAAO,GAAGC,IAAI,EAAE,CAAA;AAEtB,EAAA,IAAIC,QAAQ,GAAG,IAAIC,iBAAW,EAAE,CAACC,EAAE,CAACC,aAAI,EAAE,CAAC,CAAA;AAC3C,EAAA,IAAIC,OAAO,GAAG,IAAIH,iBAAW,EAAE,CAACC,EAAE,CAACG,iBAAW,CAACD,OAAO,CAACF,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;EAE7D,IAAII,SAAS,GAAG,IAAI,CAAA;;AAGpB;AACF;AACA;;AAEE,EAAA,MAAMC,kBAAkB,GAAG,IAAIN,iBAAW,EAAE,CAAA;AAE5C,EAAA,MAAMO,eAAe,GAAGC,WAAM,CAACC,wBAAe,EAAE,CAAC,CAAA;;AAEjD;AACA,EAAA,MAAMC,0BAA0B,GAAGF,WAAM,CAACG,IAAI,IAAI;IAChD,MAAMC,YAAY,GAAGD,IAAI,CAACE,GAAG,CAACC,gBAAgB,CAAC,iBAAiB,CAAC,CAAA;AAEjE,IAAA,IAAIF,YAAY,CAACG,MAAM,GAAG,CAAC,EAAE;AAC3BC,MAAAA,GAAG,CAACX,SAAS,EAAEd,WAAW,CAAC,CAAA;AAC7B,KAAC,MAAM;AACL0B,MAAAA,KAAK,CAACZ,SAAS,EAAEd,WAAW,CAAC,CAAA;AAC/B,KAAA;AAEA,IAAA,OAAO,EAAE,CAAA;AACX,GAAC,CAAC,CAAA;EAEF,SAAS2B,WAAWA,CAACC,GAAG,EAAEC,UAAU,GAAG,EAAE,EAAE7C,SAAS,GAAG,EAAE,EAAE;IACzD,OAAO6B,iBAAW,CAACiB,MAAM,CAAC;MACxBF,GAAG;MACHC,UAAU,EAAE,CACVE,qBAAU,EACVvB,QAAQ,EACRI,OAAO,EACPI,eAAe,EACfG,0BAA0B,EAC1Ba,eAAU,EAAE,EACZjB,kBAAkB,CAACL,EAAE,CAAClC,cAAc,CAACkC,EAAE,CAAC1B,SAAS,CAAC,CAAC,EACnDL,uBAAuB,EAAE,EACzBsD,WAAM,CAACvB,EAAE,CAAC,CAAEwB,sBAAa,CAAE,CAAC,EAC5B9B,iBAAiB,GAAGD,gBAAW,CAACC,iBAAiB,CAAC,GAAG,EAAE,EACvD,GAAGyB,UAAU,CAAA;AAEjB,KAAC,CAAC,CAAA;AACJ,GAAA;EAEA,SAASM,UAAUA,CAAC9B,QAAQ,EAAE;IAE5B,MAAM+B,cAAc,GAAGC,eAAU,CAACD,cAAc,CAAC1B,EAAE,CAAC4B,MAAM,IAAI;MAC5D,IAAIA,MAAM,CAACC,UAAU,EAAE;AACrBjC,QAAAA,OAAO,CAACkC,IAAI,CAAC,SAAS,EAAE;UACtBC,KAAK,EAAEH,MAAM,CAAClB,IAAI,CAACnC,KAAK,CAAC2C,GAAG,CAACc,QAAQ,EAAC;AACxC,SAAC,CAAC,CAAA;AACJ,OAAA;AACF,KAAC,CAAC,CAAA;IAEF,MAAMC,QAAQ,GAAGN,eAAU,CAACM,QAAQ,CAACjC,EAAE,CAAC,CAACL,QAAQ,CAAC,CAAA;IAElD,MAAMuC,0BAA0B,GAAGP,eAAU,CAACnC,iBAAiB,CAACQ,EAAE,CAACR,iBAAiB,CAAC,CAAA;AAErF,IAAA,MAAMkB,MAAI,GAAG,IAAIiB,eAAU,CAAC;MAC1BpD,KAAK,EAAE0C,WAAW,CAAC,EAAE,EAAE,CAAES,cAAc,EAAEO,QAAQ,EAAEC,0BAA0B,CAAE,CAAA;AACjF,KAAC,CAAC,CAAA;AAEFxB,IAAAA,MAAI,CAACyB,QAAQ,GAAG,UAASJ,KAAK,EAAE;AAC9B,MAAA,IAAI,CAACK,QAAQ,CAACnB,WAAW,CAACc,KAAK,EAAE,CAAEL,cAAc,EAAEO,QAAQ,EAAEC,0BAA0B,CAAE,CAAC,CAAC,CAAA;KAC5F,CAAA;AAEDxB,IAAAA,MAAI,CAAC2B,YAAY,GAAG,UAAS/D,SAAS,EAAE;MACtC,IAAI,CAAC8D,QAAQ,CAACnB,WAAW,CACvBP,MAAI,CAACnC,KAAK,CAAC2C,GAAG,CAACc,QAAQ,EAAE,EACzB,CAAEN,cAAc,EAAEO,QAAQ,EAAEC,0BAA0B,CAAE,EACxD5D,SACF,CAAC,CAAC,CAAA;KACH,CAAA;AAED,IAAA,OAAOoC,MAAI,CAAA;AACb,GAAA;EAEA,MAAMA,MAAI,GAAG,IAAI,CAAC4B,KAAK,GAAGb,UAAU,CAAC9B,QAAQ,CAAC,CAAA;AAE9C,EAAA,IAAI,CAACwC,QAAQ,GAAG,UAASJ,KAAK,EAAE;AAC9BrB,IAAAA,MAAI,CAACyB,QAAQ,CAACJ,KAAK,CAAC,CAAA;GACrB,CAAA;EAED,IAAI,CAACQ,QAAQ,GAAG,YAAW;IACzB,OAAO7B,MAAI,CAACnC,KAAK,CAAC2C,GAAG,CAACc,QAAQ,EAAE,CAAA;GACjC,CAAA;;AAED;AACF;AACA;AACE,EAAA,IAAI,CAACK,YAAY,GAAG,UAAS/D,SAAS,EAAE;AACtCoC,IAAAA,MAAI,CAAC2B,YAAY,CAAC/D,SAAS,CAAC,CAAA;GAC7B,CAAA;AAED,EAAA,IAAI,CAACkE,EAAE,GAAG5C,OAAO,CAAC4C,EAAE,CAAA;AACpB,EAAA,IAAI,CAACC,GAAG,GAAG7C,OAAO,CAAC6C,GAAG,CAAA;AACtB,EAAA,IAAI,CAACX,IAAI,GAAGlC,OAAO,CAACkC,IAAI,CAAA;AAExB,EAAA,IAAI,CAACY,QAAQ,GAAG,UAASC,UAAU,EAAE;AACnCvC,IAAAA,SAAS,GAAGuC,UAAU,CAAA;AACtBvC,IAAAA,SAAS,CAACwC,WAAW,CAAClC,MAAI,CAACE,GAAG,CAAC,CAAA;GAChC,CAAA;EAED,IAAI,CAACiC,OAAO,GAAG,YAAW;AACxB,IAAA,IAAInC,MAAI,CAACE,GAAG,CAACkC,UAAU,EAAE;MACvBpC,MAAI,CAACE,GAAG,CAACkC,UAAU,CAACC,WAAW,CAACrC,MAAI,CAACE,GAAG,CAAC,CAAA;AAC3C,KAAA;IAEAF,MAAI,CAACmC,OAAO,EAAE,CAAA;GACf,CAAA;AACH,CAAA;;AAEA;;AAGA,SAAS9B,GAAGA,CAACiC,IAAI,EAAEC,GAAG,EAAE;EACtB,MAAMC,OAAO,GAAGC,cAAU,CAACH,IAAI,EAAE7G,QAAQ,CAACiH,IAAI,CAAC,CAAA;AAC/CF,EAAAA,OAAO,CAACG,GAAG,CAACJ,GAAG,CAAC,CAAA;AAClB,CAAA;AAEA,SAASjC,KAAKA,CAACgC,IAAI,EAAEC,GAAG,EAAE;EACxB,MAAMC,OAAO,GAAGC,cAAU,CAACH,IAAI,EAAE7G,QAAQ,CAACiH,IAAI,CAAC,CAAA;AAC/CF,EAAAA,OAAO,CAACI,MAAM,CAACL,GAAG,CAAC,CAAA;AACrB;;AC9JO,SAASM,OAAOA,CAAC3H,KAAK,EAAE;AAE7B,EAAA,MAAM4H,QAAQ,GACZC,KAAK,CAACC,OAAO,CAAC9H,KAAK,CAACY,QAAQ,CAAC,GACzBZ,KAAK,CAACY,QAAQ,GAChB,CAAEZ,KAAK,CAACY,QAAQ,CAAE,CAAA;EAEtB,MAAM;IACJmH,WAAW;AACXnH,IAAAA,QAAAA;GACD,GAAGgH,QAAQ,CAACI,MAAM,CAAC,CAACC,CAAC,EAAEC,KAAK,KAAK;AAChC,IAAA,MAAMC,MAAM,GACVD,KAAK,CAAClH,IAAI,KAAK2G,OAAO,CAACS,UAAU,GAC7BH,CAAC,CAACF,WAAW,GACbE,CAAC,CAACrH,QAAQ,CAAA;AAEhBuH,IAAAA,MAAM,CAACE,IAAI,CAACH,KAAK,CAAC,CAAA;AAElB,IAAA,OAAOD,CAAC,CAAA;AACV,GAAC,EAAE;AAAEF,IAAAA,WAAW,EAAE,EAAE;AAAEnH,IAAAA,QAAQ,EAAE,EAAA;AAAG,GAAC,CAAC,CAAA;AAErC,EAAA,OACEF,eAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,KAAK,EAAC,iBAAiB;AAAAC,IAAAA,QAAA,GAC1BF,eAAA,CAAA,IAAA,EAAA;AAAIC,MAAAA,KAAK,EAAC,QAAQ;MAAAC,QAAA,EAAA,CAAGZ,KAAK,CAACe,IAAI,EAAE,GAAC,EAAEgH,WAAW,CAAC7C,MAAM,GAAGrE,cAAA,CAAA,MAAA,EAAA;AAAMF,QAAAA,KAAK,EAAC,cAAc;AAAAC,QAAAA,QAAA,EAAGmH,WAAAA;OAAmB,CAAC,GAAG,IAAI,CAAA;KAAM,CAAC,EACxHlH,cAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,KAAK,EAAC,MAAM;AAAAC,MAAAA,QAAA,EACbA,QAAAA;AAAQ,KACP,CAAC,CAAA;AAAA,GACH,CAAC,CAAA;AAEV,CAAA;AAEA+G,OAAO,CAACS,UAAU,GAAG,UAASpI,KAAK,EAAE;EACnC,OAAOA,KAAK,CAACY,QAAQ,CAAA;AACvB,CAAC;;ACTM,SAAS0H,cAAcA,CAACtI,KAAK,EAAE;EAEpC,MAAM;AACJuI,IAAAA,iBAAiB,GAAG,EAAE;AAAE;AACxBC,IAAAA,OAAO,EAAEC,aAAa,GAAG,EAAE;IAC3BvC,IAAI;AACJwC,IAAAA,QAAQ,EAAEC,cAAc,GAAG,EAAE;IAC7BC,gBAAgB,GAAG,EAAE;IACrBC,gBAAgB,GAAG,EAAE;AACrBC,IAAAA,uBAAuB,GAAG,EAAE;AAC5BC,IAAAA,uBAAuB,GAAG,EAAE;AAC5BC,IAAAA,eAAe,EAAEC,qBAAqB,GAAG,EAAE;AAC3CC,IAAAA,MAAM,EAAEC,gBAAgB;AACxBC,IAAAA,cAAAA;AACF,GAAC,GAAGpJ,KAAK,CAAA;EAET,MAAM;IACJqJ,OAAO,EAAEC,cAAc,GAAG,IAAA;AAC5B,GAAC,GAAGb,aAAa,CAAA;AAEjB,EAAA,MAAMc,mBAAmB,GAAGjI,YAAM,EAAE,CAAA;AACpC,EAAA,MAAMkI,kBAAkB,GAAGlI,YAAM,EAAE,CAAA;AACnC,EAAA,MAAMmI,gBAAgB,GAAGnI,YAAM,EAAE,CAAA;AACjC,EAAA,MAAMoI,gBAAgB,GAAGpI,YAAM,EAAE,CAAA;AACjC,EAAA,MAAMqI,kBAAkB,GAAGrI,YAAM,EAAE,CAAA;AACnC,EAAA,MAAMsI,2BAA2B,GAAGtI,YAAM,EAAE,CAAA;AAE5C,EAAA,MAAMuI,UAAU,GAAGvI,YAAM,EAAE,CAAA;AAC3B,EAAA,MAAMwI,aAAa,GAAGxI,YAAM,EAAE,CAAA;AAC9B,EAAA,MAAMyI,OAAO,GAAGzI,YAAM,EAAE,CAAA;AACxB,EAAA,MAAM0I,aAAa,GAAG1I,YAAM,EAAE,CAAA;AAC9B,EAAA,MAAM2I,aAAa,GAAG3I,YAAM,EAAE,CAAA;AAC9B,EAAA,MAAM4I,kBAAkB,GAAG5I,YAAM,EAAE,CAAA;EAEnC,MAAM,CAAE6I,SAAS,EAAEC,YAAY,CAAE,GAAGC,cAAQ,CAAC,KAAK,CAAC,CAAA;EAEnD,MAAM,CAAEC,WAAW,CAAE,GAAGD,cAAQ,CAACrK,KAAK,CAACoB,IAAI,IAAImJ,SAAS,CAAC,CAAA;EACzD,MAAM,CAAEC,aAAa,EAAEC,gBAAgB,CAAE,GAAGJ,cAAQ,CAACrK,KAAK,CAACkB,MAAM,CAAC,CAAA;AAElE,EAAA,MAAM,CAAEE,IAAI,EAAEsJ,OAAO,CAAE,GAAGL,cAAQ,CAACrK,KAAK,CAACoB,IAAI,IAAI,EAAE,CAAC,CAAA;EACpD,MAAM,CAAEF,MAAM,EAAEyJ,SAAS,CAAE,GAAGN,cAAQ,CAACrK,KAAK,CAACkB,MAAM,CAAC,CAAA;EAEpD,MAAM,CAAE0J,UAAU,EAAEC,aAAa,CAAE,GAAGR,cAAQ,CAAC,EAAE,CAAC,CAAA;;AAElD;AACApK,EAAAA,eAAS,CAAC,MAAM;AACdkJ,IAAAA,gBAAgB,CAAC;MACf2B,mBAAmB,EAAG1D,IAAI,IAAK4C,aAAa,CAACvI,OAAO,CAACqF,QAAQ,CAACM,IAAI,CAAC;MACnE2D,qBAAqB,EAAG3D,IAAI,IAAK0C,aAAa,CAACrI,OAAO,CAACqF,QAAQ,CAACM,IAAI,CAAC;MACrE4D,mBAAmB,EAAG5D,IAAI,IAAK2C,OAAO,CAACtI,OAAO,CAACqF,QAAQ,CAACM,IAAI,CAAC;MAC7D6D,sBAAsB,EAAG7D,IAAI,IAAKyC,UAAU,CAACpI,OAAO,CAACqF,QAAQ,CAACM,IAAI,CAAC;MACnE8D,8BAA8B,EAAG9D,IAAI,IAAK8C,kBAAkB,CAACzI,OAAO,CAACqF,QAAQ,CAACM,IAAI,CAAC;MACnF+D,qBAAqB,EAAG/D,IAAI,IAAK6C,aAAa,CAACxI,OAAO,CAACqF,QAAQ,CAACM,IAAI,CAAC;AACrEgE,MAAAA,GAAG,EAAEA,CAACrK,IAAI,EAAEsK,MAAM,KAAKvB,aAAa,CAACrI,OAAO,CAAC2J,GAAG,CAACrK,IAAI,EAAEsK,MAAM,CAAC;AAC9DC,MAAAA,aAAa,EAAEA,MAAMtB,aAAa,CAACvI,OAAO;AAC1C8J,MAAAA,SAAS,EAAEA,MAAMzB,aAAa,CAACrI,OAAO;AACtC+J,MAAAA,OAAO,EAAEA,MAAMzB,OAAO,CAACtI,OAAO;AAC9BgK,MAAAA,aAAa,EAAEA,MAAMxB,aAAa,CAACxI,OAAO;MAC1CiK,SAAS,EAAEA,MAAM5B,aAAa,CAACrI,OAAO,CAACiK,SAAS,EAAE;AAClDf,MAAAA,SAAS,EAAEF,gBAAgB;MAC3BkB,UAAU,EAAEA,MAAM7B,aAAa,CAACrI,OAAO,CAACkK,UAAU,EAAC;AACrD,KAAC,CAAC,CAAA;AACJ,GAAC,EAAE,CAAExC,gBAAgB,CAAE,CAAC,CAAA;AAExBlJ,EAAAA,eAAS,CAAC,MAAM;AACdwK,IAAAA,gBAAgB,CAACzK,KAAK,CAACkB,MAAM,IAAI,EAAE,CAAC,CAAA;AACtC,GAAC,EAAE,CAAElB,KAAK,CAACkB,MAAM,CAAE,CAAC,CAAA;AAEpBjB,EAAAA,eAAS,CAAC,MAAM;IACd,MAAM2L,UAAU,GAAG5B,aAAa,CAACvI,OAAO,GAAG,IAAIkC,UAAU,CAAC;AACxDwC,MAAAA,KAAK,EAAEC,QAAQ,CAAChF,IAAI,CAAC;AACrBwC,MAAAA,iBAAiB,EAAE;AAAE,QAAA,YAAY,EAAE,YAAY;AAAEiI,QAAAA,QAAQ,EAAE,CAAA;OAAG;MAC9DhI,WAAW,EAAEiI,2BAA2B,EAAC;AAC3C,KAAC,CAAC,CAAA;IAEF,MAAMC,UAAU,GAAG9B,aAAa,CAACxI,OAAO,GAAG,IAAIkC,UAAU,CAAC;AACxDI,MAAAA,QAAQ,EAAE,IAAI;AACdoC,MAAAA,KAAK,EAAEC,QAAQ,CAACwE,UAAU,CAAC;AAC3BhH,MAAAA,iBAAiB,EAAE;AAAE,QAAA,YAAY,EAAE,aAAa;AAAEiI,QAAAA,QAAQ,EAAE,CAAA;AAAE,OAAA;AAChE,KAAC,CAAC,CAAA;IAEF,MAAMG,IAAI,GAAGjC,OAAO,CAACtI,OAAO,GAAG,IAAIwK,iBAAI,CAAC;AACtC1D,MAAAA,iBAAiB,EAAE,CACjB,GAAGA,iBAAiB,EACpB,GAAGO,uBAAuB,CAC3B;AACDoD,MAAAA,UAAU,EAAE;AACV,QAAA,GAAGtD,gBAAgB;AACnB,QAAA,WAAW,EAAE,cAAA;AACf,OAAA;AACF,KAAC,CAAC,CAAA;IAEF,MAAMuD,UAAU,GAAGrC,aAAa,CAACrI,OAAO,GAAG,IAAI2K,uBAAU,CAAC;AACxDC,MAAAA,QAAQ,EAAE;AACRC,QAAAA,OAAO,EAAE,IAAA;OACV;AACDC,MAAAA,OAAO,EAAE;QACPC,MAAM,EAAEjD,mBAAmB,CAAC9H,OAAAA;OAC7B;AACDuH,MAAAA,eAAe,EAAE;QACfwD,MAAM,EAAE5C,2BAA2B,CAACnI,OAAO;QAC3C,GAAGwH,qBAAAA;OACJ;AACDP,MAAAA,QAAQ,EAAEC,cAAc;AACxBuD,MAAAA,UAAU,EAAE;AACV,QAAA,GAAGrD,gBAAgB;AACnB,QAAA,WAAW,EAAE,iBAAA;OACd;AACDN,MAAAA,iBAAiB,EAAE,CACjB,GAAGA,iBAAiB,EACpB,GAAGQ,uBAAuB,CAAA;AAE9B,KAAC,CAAC,CAAA;IAEFc,UAAU,CAACpI,OAAO,GAAG0K,UAAU,CAACf,GAAG,CAAC,SAAS,CAAC,CAAA;IAC9ClB,kBAAkB,CAACzI,OAAO,GAAG0K,UAAU,CAACf,GAAG,CAAC,iBAAiB,CAAC,CAAA;AAE9De,IAAAA,UAAU,CAACvF,EAAE,CAAC,eAAe,EAAE,CAAC;AAAE6F,MAAAA,SAAAA;AAAU,KAAC,KAAK;AAChD,MAAA,MAAMC,UAAU,GAAGP,UAAU,CAACf,GAAG,CAAC,YAAY,CAAC,CAAA;MAC/C,MAAM;AAAEuB,QAAAA,MAAAA;OAAQ,GAAGD,UAAU,CAACtB,GAAG,CAACqB,SAAS,CAACzL,IAAI,CAAC,CAAA;MACjD,MAAM;AAAE4L,QAAAA,uBAAAA;AAAwB,OAAC,GAAGD,MAAM,CAAA;MAC1C,MAAM;AAAEE,QAAAA,EAAAA;AAAG,OAAC,GAAGJ,SAAS,CAAA;AAExB,MAAA,IAAI,CAACK,kBAAU,CAACF,uBAAuB,CAAC,EAAE;AACxC,QAAA,OAAA;AACF,OAAA;AAEA,MAAA,MAAMG,eAAe,GAAGH,uBAAuB,CAACH,SAAS,CAAC,CAAA;MAE1D,IAAI,CAAEM,eAAe,EAAEF,EAAE,CAAE,CAACG,QAAQ,CAACzC,SAAS,CAAC,EAAE;AAC/C,QAAA,OAAA;AACF,OAAA;MAEAG,OAAO,CAAEuC,WAAW,IAAK;AACvB,QAAA,MAAMC,OAAO,GAAG;AACd,UAAA,GAAGD,WAAW;AACd,UAAA,CAACJ,EAAE,GAAGE,eAAAA;SACP,CAAA;QAED/C,aAAa,CAACvI,OAAO,CAAC8E,QAAQ,CAC5BH,QAAQ,CAAC8G,OAAO,CAClB,CAAC,CAAA;AAED,QAAA,OAAOA,OAAO,CAAA;AAChB,OAAC,CAAC,CAAA;AACJ,KAAC,CAAC,CAAA;AAEFf,IAAAA,UAAU,CAACvF,EAAE,CAAC,SAAS,EAAE,MAAM;AAC7B+D,MAAAA,SAAS,CAACwB,UAAU,CAACT,SAAS,EAAE,CAAC,CAAA;AACnC,KAAC,CAAC,CAAA;AAEFS,IAAAA,UAAU,CAACvF,EAAE,CAAC,qBAAqB,EAAE,MAAM;AAEzC;MACAV,IAAI,CAAC,yBAAyB,CAAC,CAAA;AACjC,KAAC,CAAC,CAAA;AAEF8F,IAAAA,IAAI,CAACpF,EAAE,CAAC,SAAS,EAAE,MAAM;AACvBiE,MAAAA,aAAa,CAACmB,IAAI,CAACmB,cAAc,EAAE,CAAC,CAAA;AACtC,KAAC,CAAC,CAAA;AAEFvB,IAAAA,UAAU,CAAChF,EAAE,CAAC,SAAS,EAAEzG,KAAK,IAAI;MAChC,IAAI;QACFuK,OAAO,CAAC3I,IAAI,CAACqL,KAAK,CAACjN,KAAK,CAACgG,KAAK,CAAC,CAAC,CAAA;OACjC,CAAC,OAAOkH,KAAK,EAAE;AAEd;AACAnH,QAAAA,IAAI,CAAC,+BAA+B,EAAEmH,KAAK,CAAC,CAAA;AAC9C,OAAA;AACF,KAAC,CAAC,CAAA;AAEF,IAAA,MAAMC,aAAa,GAAG7D,gBAAgB,CAAChI,OAAO,CAAA;AAC9C,IAAA,MAAM8L,eAAe,GAAG/D,kBAAkB,CAAC/H,OAAO,CAAA;AAClD,IAAA,MAAM+L,aAAa,GAAG9D,gBAAgB,CAACjI,OAAO,CAAA;AAC9C,IAAA,MAAMgM,eAAe,GAAG9D,kBAAkB,CAAClI,OAAO,CAAA;AAElDmK,IAAAA,UAAU,CAAC9E,QAAQ,CAAC0G,aAAa,CAAC,CAAA;AAClCzB,IAAAA,UAAU,CAACjF,QAAQ,CAAC2G,eAAe,CAAC,CAAA;AACpCzB,IAAAA,IAAI,CAAClF,QAAQ,CAACwG,aAAa,CAAC,CAAA;AAC5BnB,IAAAA,UAAU,CAACrF,QAAQ,CAACyG,eAAe,CAAC,CAAA;AAEpC,IAAA,OAAO,MAAM;MACX3B,UAAU,CAAC3E,OAAO,EAAE,CAAA;MACpB8E,UAAU,CAAC9E,OAAO,EAAE,CAAA;MACpB+E,IAAI,CAAC/E,OAAO,EAAE,CAAA;MACdkF,UAAU,CAAClF,OAAO,EAAE,CAAA;KACrB,CAAA;GACF,EAAE,EAAE,CAAC,CAAA;AAENhH,EAAAA,eAAS,CAAC,MAAM;IACd+J,aAAa,CAACvI,OAAO,CAAC8E,QAAQ,CAACH,QAAQ,CAACkE,WAAW,CAAC,CAAC,CAAA;AACvD,GAAC,EAAE,CAAEA,WAAW,CAAE,CAAC,CAAA;AAEnBrK,EAAAA,eAAS,CAAC,MAAM;AACd,IAAA,IAAIuK,aAAa,EAAE;AACjBV,MAAAA,aAAa,CAACrI,OAAO,CAACiM,YAAY,CAAClD,aAAa,CAAC,CAAA;MACjDR,aAAa,CAACvI,OAAO,CAACgF,YAAY,CAACkH,+BAAkB,CAACnD,aAAa,CAAC,CAAC,CAAA;AACvE,KAAA;AACF,GAAC,EAAE,CAAEA,aAAa,CAAE,CAAC,CAAA;AAErBvK,EAAAA,eAAS,CAAC,MAAM;AACd,IAAA,IAAIiB,MAAM,IAAIwI,gBAAgB,CAACjI,OAAO,EAAE;AACtC,MAAA,MAAMiB,SAAS,GAAGiL,+BAAkB,CAACzM,MAAM,CAAC,CAAA;AAC5C8I,MAAAA,aAAa,CAACvI,OAAO,CAACgF,YAAY,CAAC/D,SAAS,CAAC,CAAA;AAC/C,KAAA;AACF,GAAC,EAAE,CAAExB,MAAM,CAAE,CAAC,CAAA;AAEdjB,EAAAA,eAAS,CAAC,MAAM;IACdiB,MAAM,IAAI6I,OAAO,CAACtI,OAAO,CAACiM,YAAY,CAACxM,MAAM,EAAEE,IAAI,CAAC,CAAA;AACtD,GAAC,EAAE,CAAEF,MAAM,EAAEE,IAAI,CAAE,CAAC,CAAA;AAEpBnB,EAAAA,eAAS,CAAC,MAAM;IACdgK,aAAa,CAACxI,OAAO,CAAC8E,QAAQ,CAACH,QAAQ,CAACwE,UAAU,CAAC,CAAC,CAAA;AACtD,GAAC,EAAE,CAAEA,UAAU,CAAE,CAAC,CAAA;AAElB3K,EAAAA,eAAS,CAAC,MAAM;IACdmJ,cAAc,IAAIA,cAAc,CAAC;MAC/BlI,MAAM;AACNE,MAAAA,IAAAA;AACF,KAAC,CAAC,CAAA;GACH,EAAE,CAAEgI,cAAc,EAAElI,MAAM,EAAEE,IAAI,CAAE,CAAC,CAAA;AAEpC,EAAA,MAAMwM,cAAc,GAAGC,iBAAW,CAAC,MAAM;AAEvCC,IAAAA,QAAQ,CAAC/L,IAAI,CAACC,SAAS,CAACd,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,CAAA;AACxE,GAAC,EAAE,CAAEA,MAAM,CAAE,CAAC,CAAA;AAEd,EAAA,MAAM6M,cAAc,GAAGF,iBAAW,CAAC,MAAM;IACvCzD,YAAY,CAAC,KAAK,CAAC,CAAA;GACpB,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,MAAM4D,cAAc,GAAGH,iBAAW,CAAC,MAAM;IACvCzD,YAAY,CAAC,IAAI,CAAC,CAAA;GACnB,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,OACE1J,eAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,KAAK,EAAGsN,UAAU,CACrB,eAAe,EACf,cACF,CAAG;AAAArN,IAAAA,QAAA,GACDC,cAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,KAAK,EAAC,gBAAgB;AAAAC,MAAAA,QAAA,EACvBuJ,SAAS,GAAGtJ,cAAA,CAACI,UAAU,EAAA;AAACC,QAAAA,MAAM,EAAGA,MAAQ;AAACE,QAAAA,IAAI,EAAGA,IAAM;AAACd,QAAAA,OAAO,EAAGyN,cAAAA;AAAgB,OAAE,CAAC,GAAG,IAAA;KACvF,CAAC,EACNlN,cAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,KAAK,EAAC,2BAA2B;AAACkB,MAAAA,GAAG,EAAG0H,mBAAAA;KAAuB,CAAC,EACrE7I,eAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,KAAK,EAAC,cAAc;MAAAC,QAAA,EAAA,CAEvBF,eAAA,CAACiH,OAAO,EAAA;AAAC5G,QAAAA,IAAI,EAAC,iBAAiB;AAAAH,QAAAA,QAAA,GAG3B0I,cAAc,IAAIzI,cAAA,CAAC8G,OAAO,CAACS,UAAU,EAAA;AAAAxH,UAAAA,QAAA,EACnCC,cAAA,CAAA,QAAA,EAAA;AACEG,YAAAA,IAAI,EAAC,QAAQ;AACbL,YAAAA,KAAK,EAAC,gBAAgB;AACtBuN,YAAAA,KAAK,EAAC,0BAA0B;AAChCpN,YAAAA,OAAO,EAAG8M,cAAgB;AAAAhN,YAAAA,QAAA,EAC3B,UAAA;WAAgB,CAAA;SACC,CAAC,EAIrB0I,cAAc,IAAIzI,cAAA,CAAC8G,OAAO,CAACS,UAAU,EAAA;AAAAxH,UAAAA,QAAA,EACnCC,cAAA,CAAA,QAAA,EAAA;AACEG,YAAAA,IAAI,EAAC,QAAQ;AACbL,YAAAA,KAAK,EAAC,gBAAgB;AACtBG,YAAAA,OAAO,EAAGkN,cAAgB;AAAApN,YAAAA,QAAA,EAC3B,OAAA;WAAa,CAAA;SACI,CAAC,EAGvBC,cAAA,CAAA,KAAA,EAAA;AAAKgB,UAAAA,GAAG,EAAG2H,kBAAoB;AAAC7I,UAAAA,KAAK,EAAC,wBAAA;AAAwB,SAAM,CAAC,CAAA;AAAA,OAC9D,CAAC,EACVE,cAAA,CAAC8G,OAAO,EAAA;AAAC5G,QAAAA,IAAI,EAAC,cAAc;AAAAH,QAAAA,QAAA,EAC1BC,cAAA,CAAA,KAAA,EAAA;AAAKgB,UAAAA,GAAG,EAAG4H,gBAAkB;AAAC9I,UAAAA,KAAK,EAAC,wBAAA;SAA8B,CAAA;AAAC,OAC5D,CAAC,EACVE,cAAA,CAAC8G,OAAO,EAAA;AAAC5G,QAAAA,IAAI,EAAC,YAAY;AAAAH,QAAAA,QAAA,EACxBC,cAAA,CAAA,KAAA,EAAA;AAAKgB,UAAAA,GAAG,EAAG6H,gBAAkB;AAAC/I,UAAAA,KAAK,EAAC,wBAAA;SAA8B,CAAA;AAAC,OAC5D,CAAC,EACVE,cAAA,CAAC8G,OAAO,EAAA;AAAC5G,QAAAA,IAAI,EAAC,aAAa;AAAAH,QAAAA,QAAA,EACzBC,cAAA,CAAA,KAAA,EAAA;AAAKgB,UAAAA,GAAG,EAAG8H,kBAAoB;AAAChJ,UAAAA,KAAK,EAAC,wBAAA;SAA8B,CAAA;AAAC,OAC9D,CAAC,CAAA;KACP,CAAC,EACNE,cAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,KAAK,EAAC,8BAA8B;AAACkB,MAAAA,GAAG,EAAG+H,2BAAAA;AAA6B,KAAE,CAAC,CAAA;AAAA,GAC7E,CAAC,CAAA;AAEV,CAAA;;AAGA;;AAEA,SAASxD,QAAQA,CAACtE,GAAG,EAAE;EACrB,OAAOC,IAAI,CAACC,SAAS,CAACF,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AACxC,CAAA;AAEA,SAASgK,2BAA2BA,GAAG;AACrC,EAAA,MAAMqC,OAAO,GAAG5N,QAAQ,CAAC6N,aAAa,CAAC,GAAG,CAAC,CAAA;AAE3CD,EAAAA,OAAO,CAACE,SAAS,GAAG,mIAAmI,GACrJ,uCAAuC,GACvC,6BAA6B,CAAA;AAE/B,EAAA,OAAOF,OAAO,CAAA;AAChB;;ACtSO,SAASG,UAAUA,CAACzL,OAAO,EAAE;EAElC,MAAM;AACJ2B,IAAAA,SAAS,EAAEgI,MAAM;IACjBtL,MAAM;IACNE,IAAI;IACJ,GAAGmN,IAAAA;AACL,GAAC,GAAG1L,OAAO,CAAA;AAEX,EAAA,MAAMmB,OAAO,GAAGC,IAAI,EAAE,CAAA;AAEtB,EAAA,IAAItB,KAAK,GAAG;IAAEvB,IAAI;AAAEF,IAAAA,MAAAA;GAAQ,CAAA;AAC5B,EAAA,IAAIW,GAAG,CAAA;AAEP,EAAA,MAAM2C,SAAS,GAAGjE,QAAQ,CAAC6N,aAAa,CAAC,KAAK,CAAC,CAAA;AAE/C5J,EAAAA,SAAS,CAACgK,SAAS,CAAC/G,GAAG,CAAC,gBAAgB,CAAC,CAAA;AAEzC,EAAA,IAAI+E,MAAM,EAAE;AACVA,IAAAA,MAAM,CAACxF,WAAW,CAACxC,SAAS,CAAC,CAAA;AAC/B,GAAA;EAEA,MAAMiK,UAAU,GAAGC,QAAQ,CAAC,kBAAkB,EAAE,UAASC,KAAK,EAAE;AAC9D,IAAA,MAAMC,IAAI,GAAGD,KAAK,CAAC,CAAC,CAAC,CAAA;AAErB,IAAA,IAAIC,IAAI,EAAE;MACR,IAAI;QACF/M,GAAG,CAAC8I,SAAS,CAAC5I,IAAI,CAACqL,KAAK,CAACwB,IAAI,CAACC,QAAQ,CAAC,CAAC,CAAA;OACzC,CAAC,OAAOC,GAAG,EAAE;;AAEZ;AAAA,OAAA;AAEJ,KAAA;AACF,GAAC,CAAC,CAAA;AAEF,EAAA,MAAMC,OAAO,GAAG,UAASC,EAAE,EAAE;IAC3B,OAAO,UAAS,GAAGC,IAAI,EAAE;MACvB,IAAI,CAACpN,GAAG,EAAE;AACR,QAAA,MAAM,IAAIqN,KAAK,CAAC,gCAAgC,CAAC,CAAA;AACnD,OAAA;AAEA,MAAA,OAAOF,EAAE,CAAC,GAAGC,IAAI,CAAC,CAAA;KACnB,CAAA;GACF,CAAA;AAED,EAAA,MAAM/F,MAAM,GAAG,UAASiG,IAAI,EAAE;AAC5BtN,IAAAA,GAAG,GAAGsN,IAAI,CAAA;AACVnL,IAAAA,OAAO,CAACkC,IAAI,CAAC,qBAAqB,CAAC,CAAA;GACpC,CAAA;AAED1B,EAAAA,SAAS,CAAChE,gBAAgB,CAAC,UAAU,EAAEiO,UAAU,CAAC,CAAA;EAElDW,aAAM,CACJvO,cAAA,CAACyH,cAAc,EAAA;AACblH,IAAAA,IAAI,EAAGA,IAAM;IACb8E,IAAI,EAAGlC,OAAO,CAACkC,IAAM;AACrBgD,IAAAA,MAAM,EAAGA,MAAQ;AACjBE,IAAAA,cAAc,EAAIiG,MAAM,IAAK1M,KAAK,GAAG0M,MAAQ;AAC7CnO,IAAAA,MAAM,EAAGA,MAAQ;IAAA,GACZqN,IAAAA;GACN,CAAC,EACF/J,SACF,CAAC,CAAA;AAED,EAAA,IAAI,CAACoC,EAAE,GAAG5C,OAAO,CAAC4C,EAAE,CAAA;AACpB,EAAA,IAAI,CAACC,GAAG,GAAG7C,OAAO,CAAC6C,GAAG,CAAA;AAEtB,EAAA,IAAI,CAACX,IAAI,GAAGlC,OAAO,CAACkC,IAAI,CAAA;AAExB,EAAA,IAAI,CAACU,EAAE,CAAC,SAAS,EAAE,YAAW;AAC5BwI,IAAAA,aAAM,CAAC,IAAI,EAAE5K,SAAS,CAAC,CAAA;AACzB,GAAC,CAAC,CAAA;AAEF,EAAA,IAAI,CAACoC,EAAE,CAAC,SAAS,EAAE,YAAW;AAC5B4F,IAAAA,MAAM,CAACrF,WAAW,CAAC3C,SAAS,CAAC,CAAA;AAC/B,GAAC,CAAC,CAAA;EAEF,IAAI,CAAC8K,QAAQ,GAAG,YAAW;AACzB,IAAA,OAAO3M,KAAK,CAAA;GACb,CAAA;EAED,IAAI,CAAC+I,SAAS,GAAGqD,OAAO,CAAC,MAAMlN,GAAG,CAAC6J,SAAS,EAAE,CAAC,CAAA;AAE/C,EAAA,IAAI,CAACf,SAAS,GAAGoE,OAAO,CAAE7N,MAAM,IAAKW,GAAG,CAAC8I,SAAS,CAACzJ,MAAM,CAAC,CAAC,CAAA;EAE3D,IAAI,CAACyK,UAAU,GAAGoD,OAAO,CAAC,MAAMlN,GAAG,CAAC8J,UAAU,EAAE,CAAC,CAAA;AAEjD,EAAA,IAAI,CAACP,GAAG,GAAG2D,OAAO,CAAC,CAAChO,IAAI,EAAEsK,MAAM,KAAKxJ,GAAG,CAACuJ,GAAG,CAACrK,IAAI,EAAEsK,MAAM,CAAC,CAAC,CAAA;EAE3D,IAAI,CAACC,aAAa,GAAGyD,OAAO,CAAC,MAAMlN,GAAG,CAACyJ,aAAa,EAAE,CAAC,CAAA;EAEvD,IAAI,CAACC,SAAS,GAAGwD,OAAO,CAAC,MAAMlN,GAAG,CAAC0J,SAAS,EAAE,CAAC,CAAA;AAE/C,EAAA,IAAI,CAACC,OAAO,GAAGuD,OAAO,CAAC,CAAChO,IAAI,EAAEsK,MAAM,KAAKxJ,GAAG,CAAC2J,OAAO,CAACzK,IAAI,EAAEsK,MAAM,CAAC,CAAC,CAAA;EAEnE,IAAI,CAACI,aAAa,GAAGsD,OAAO,CAAC,MAAMlN,GAAG,CAAC4J,aAAa,EAAE,CAAC,CAAA;EAEvD,IAAI,CAACxE,OAAO,GAAG,YAAW;AACxB,IAAA,IAAI,CAACf,IAAI,CAAC,SAAS,CAAC,CAAA;GACrB,CAAA;AAED,EAAA,IAAI,CAAC6E,qBAAqB,GAAGgE,OAAO,CAAE3H,IAAI,IAAKvF,GAAG,CAACkJ,qBAAqB,CAAC3D,IAAI,CAAC,CAAC,CAAA;AAE/E,EAAA,IAAI,CAACmI,sBAAsB,GAAGR,OAAO,CAAE3H,IAAI,IAAKvF,GAAG,CAACmJ,mBAAmB,CAAC5D,IAAI,CAAC,CAAC,CAAA;AAE9E,EAAA,IAAI,CAAC0D,mBAAmB,GAAGiE,OAAO,CAAE3H,IAAI,IAAKvF,GAAG,CAACiJ,mBAAmB,CAAC1D,IAAI,CAAC,CAAC,CAAA;AAE3E,EAAA,IAAI,CAAC+D,qBAAqB,GAAG4D,OAAO,CAAE3H,IAAI,IAAKvF,GAAG,CAACsJ,qBAAqB,CAAC/D,IAAI,CAAC,CAAC,CAAA;AAE/E,EAAA,IAAI,CAAC6D,sBAAsB,GAAG8D,OAAO,CAAE3H,IAAI,IAAKvF,GAAG,CAACoJ,sBAAsB,CAAC7D,IAAI,CAAC,CAAC,CAAA;AAEjF,EAAA,IAAI,CAAC8D,8BAA8B,GAAG6D,OAAO,CAAE3H,IAAI,IAAKvF,GAAG,CAACqJ,8BAA8B,CAAC9D,IAAI,CAAC,CAAC,CAAA;AACnG;;;;"}
|
package/dist/index.es.js
CHANGED
|
@@ -47,6 +47,7 @@ function Modal(props) {
|
|
|
47
47
|
}), jsx("div", {
|
|
48
48
|
class: "fjs-pgl-modal-footer",
|
|
49
49
|
children: jsx("button", {
|
|
50
|
+
type: "button",
|
|
50
51
|
class: "fjs-pgl-button fjs-pgl-button-default",
|
|
51
52
|
onClick: props.onClose,
|
|
52
53
|
children: "Close"
|
|
@@ -497,6 +498,7 @@ function PlaygroundRoot(props) {
|
|
|
497
498
|
name: "Form Definition",
|
|
498
499
|
children: [displayActions && jsx(Section.HeaderItem, {
|
|
499
500
|
children: jsx("button", {
|
|
501
|
+
type: "button",
|
|
500
502
|
class: "fjs-pgl-button",
|
|
501
503
|
title: "Download form definition",
|
|
502
504
|
onClick: handleDownload,
|
|
@@ -504,6 +506,7 @@ function PlaygroundRoot(props) {
|
|
|
504
506
|
})
|
|
505
507
|
}), displayActions && jsx(Section.HeaderItem, {
|
|
506
508
|
children: jsx("button", {
|
|
509
|
+
type: "button",
|
|
507
510
|
class: "fjs-pgl-button",
|
|
508
511
|
onClick: showEmbedModal,
|
|
509
512
|
children: "Embed"
|
package/dist/index.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../src/components/Modal.js","../src/components/EmbedModal.js","../src/components/autocompletion/VariablesFacet.js","../src/components/autocompletion/index.js","../src/components/JSONEditor.js","../src/components/Section.js","../src/components/PlaygroundRoot.js","../src/Playground.js"],"sourcesContent":["import { useEffect } from 'preact/hooks';\n\nexport function Modal(props) {\n\n useEffect(() => {\n function handleKey(event) {\n\n if (event.key === 'Escape') {\n event.stopPropagation();\n\n props.onClose();\n }\n }\n\n document.addEventListener('keydown', handleKey);\n\n return () => {\n document.removeEventListener('keydown', handleKey);\n };\n });\n\n return (\n <div class=\"fjs-pgl-modal\">\n <div class=\"fjs-pgl-modal-backdrop\" onClick={ props.onClose }></div>\n <div class=\"fjs-pgl-modal-content\">\n <h1 class=\"fjs-pgl-modal-header\">{ props.name }</h1>\n <div class=\"fjs-pgl-modal-body\">\n { props.children }\n </div>\n <div class=\"fjs-pgl-modal-footer\">\n <button class=\"fjs-pgl-button fjs-pgl-button-default\" onClick={ props.onClose }>Close</button>\n </div>\n </div>\n </div>\n );\n}\n","import { useEffect, useRef } from 'preact/hooks';\n\nimport { Modal } from './Modal';\n\n\nexport function EmbedModal(props) {\n\n const schema = serializeValue(props.schema);\n const data = serializeValue(props.data || {});\n\n const fieldRef = useRef();\n\n const snippet = `<!-- styles needed for rendering -->\n<link rel=\"stylesheet\" href=\"https://unpkg.com/@bpmn-io/form-js@0.2.4/dist/assets/form-js.css\">\n\n<!-- container to render the form into -->\n<div class=\"fjs-pgl-form-container\"></div>\n\n<!-- scripts needed for embedding -->\n<script src=\"https://unpkg.com/@bpmn-io/form-js@0.2.4/dist/form-viewer.umd.js\"></script>\n\n<!-- actual script to instantiate the form and load form schema + data -->\n<script>\n const data = JSON.parse(${data});\n const schema = JSON.parse(${schema});\n\n const form = new FormViewer.Form({\n container: document.querySelector(\".fjs-pgl-form-container\")\n });\n\n form.on(\"submit\", (event) => {\n console.log(event.data, event.errors);\n });\n\n form.importSchema(schema, data).catch(err => {\n console.error(\"Failed to render form\", err);\n });\n</script>\n `.trim();\n\n useEffect(() => {\n fieldRef.current.select();\n });\n\n return (\n <Modal name=\"Embed form\" onClose={ props.onClose }>\n <p>Use the following HTML snippet to embed your form with <a href=\"https://github.com/bpmn-io/form-js\">form-js</a>:</p>\n\n <textarea spellCheck=\"false\" ref={ fieldRef }>{snippet}</textarea>\n </Modal>\n );\n}\n\n\n// helpers ///////////\n\nfunction serializeValue(obj) {\n return JSON.stringify(JSON.stringify(obj)).replace(/</g, '<').replace(/>/g, '>');\n}","import { Facet } from '@codemirror/state';\n\n/**\n * @type {Facet<import('..').Variables>} Variables\n */\nexport const variablesFacet = Facet.define();","import { autocompletion } from '@codemirror/autocomplete';\nimport { variablesFacet } from './VariablesFacet';\n\nimport { syntaxTree } from '@codemirror/language';\n\nexport function autocompletionExtension() {\n return [\n autocompletion({\n override: [\n completions\n ]\n })\n ];\n}\n\nfunction completions(context) {\n\n const variables = context.state.facet(variablesFacet)[0];\n\n const options = variables.map(v => ({\n label: v,\n type: 'variable'\n }));\n\n let nodeBefore = syntaxTree(context.state).resolve(context.pos, -1);\n\n // handle inside property name as explicit call\n if (nodeBefore.type.name === 'PropertyName') {\n context.explicit = true;\n }\n\n let word = context.matchBefore(/\\w*/);\n\n if (word.from == word.to && !context.explicit) {\n return null;\n }\n\n return {\n from: word.from,\n options\n };\n}","import mitt from 'mitt';\n\nimport { basicSetup } from 'codemirror';\nimport { EditorView, keymap, placeholder } from '@codemirror/view';\nimport { EditorState, Compartment } from '@codemirror/state';\nimport { lintGutter, linter } from '@codemirror/lint';\nimport { json, jsonParseLinter } from '@codemirror/lang-json';\nimport { indentWithTab } from '@codemirror/commands';\nimport { autocompletionExtension } from './autocompletion/index';\nimport { variablesFacet } from './autocompletion/VariablesFacet';\n\nimport {\n classes as domClasses\n} from 'min-dom';\n\nconst NO_LINT_CLS = 'fjs-no-json-lint';\n\n\n/**\n * @param {object} options\n * @param {boolean} [options.readonly]\n * @param {object} [options.contentAttributes]\n * @param {string | HTMLElement} [options.placeholder]\n */\nexport function JSONEditor(options = {}) {\n const {\n contentAttributes = {},\n placeholder: editorPlaceholder,\n readonly = false,\n } = options;\n\n const emitter = mitt();\n\n let language = new Compartment().of(json());\n let tabSize = new Compartment().of(EditorState.tabSize.of(2));\n\n let container = null;\n\n\n /**\n * @typedef {Array<string>} Variables\n */\n\n const autocompletionConf = new Compartment();\n\n const linterExtension = linter(jsonParseLinter());\n\n // this sets no-linting mode if placeholders are present\n const placeholderLinterExtension = linter(view => {\n const placeholders = view.dom.querySelectorAll('.cm-placeholder');\n\n if (placeholders.length > 0) {\n set(container, NO_LINT_CLS);\n } else {\n unset(container, NO_LINT_CLS);\n }\n\n return [];\n });\n\n function createState(doc, extensions = [], variables = []) {\n return EditorState.create({\n doc,\n extensions: [\n basicSetup,\n language,\n tabSize,\n linterExtension,\n placeholderLinterExtension,\n lintGutter(),\n autocompletionConf.of(variablesFacet.of(variables)),\n autocompletionExtension(),\n keymap.of([ indentWithTab ]),\n editorPlaceholder ? placeholder(editorPlaceholder) : [],\n ...extensions\n ]\n });\n }\n\n function createView(readonly) {\n\n const updateListener = EditorView.updateListener.of(update => {\n if (update.docChanged) {\n emitter.emit('changed', {\n value: update.view.state.doc.toString()\n });\n }\n });\n\n const editable = EditorView.editable.of(!readonly);\n\n const contentAttributesExtension = EditorView.contentAttributes.of(contentAttributes);\n\n const view = new EditorView({\n state: createState('', [ updateListener, editable, contentAttributesExtension ])\n });\n\n view.setValue = function(value) {\n this.setState(createState(value, [ updateListener, editable, contentAttributesExtension ]));\n };\n\n view.setVariables = function(variables) {\n this.setState(createState(\n view.state.doc.toString(),\n [ updateListener, editable, contentAttributesExtension ],\n variables\n ));\n };\n\n return view;\n }\n\n const view = this._view = createView(readonly);\n\n this.setValue = function(value) {\n view.setValue(value);\n };\n\n this.getValue = function() {\n return view.state.doc.toString();\n };\n\n /**\n * @param {Variables} variables\n */\n this.setVariables = function(variables) {\n view.setVariables(variables);\n };\n\n this.on = emitter.on;\n this.off = emitter.off;\n this.emit = emitter.emit;\n\n this.attachTo = function(_container) {\n container = _container;\n container.appendChild(view.dom);\n };\n\n this.destroy = function() {\n if (view.dom.parentNode) {\n view.dom.parentNode.removeChild(view.dom);\n }\n\n view.destroy();\n };\n}\n\n// helpers //////////////////////\n\n\nfunction set(node, cls) {\n const classes = domClasses(node, document.body);\n classes.add(cls);\n}\n\nfunction unset(node, cls) {\n const classes = domClasses(node, document.body);\n classes.remove(cls);\n}\n","export function Section(props) {\n\n const elements =\n Array.isArray(props.children)\n ? props.children :\n [ props.children ];\n\n const {\n headerItems,\n children\n } = elements.reduce((_, child) => {\n const bucket =\n child.type === Section.HeaderItem\n ? _.headerItems\n : _.children;\n\n bucket.push(child);\n\n return _;\n }, { headerItems: [], children: [] });\n\n return (\n <div class=\"fjs-pgl-section\">\n <h1 class=\"header\">{ props.name } { headerItems.length ? <span class=\"header-items\">{ headerItems }</span> : null }</h1>\n <div class=\"body\">\n { children }\n </div>\n </div>\n );\n}\n\nSection.HeaderItem = function(props) {\n return props.children;\n};","import { useRef, useEffect, useState, useCallback } from 'preact/hooks';\nimport { isFunction } from 'min-dash';\nimport download from 'downloadjs';\n\nimport classNames from 'classnames';\n\nimport {\n Form,\n getSchemaVariables\n} from '@bpmn-io/form-js-viewer';\n\nimport {\n FormEditor\n} from '@bpmn-io/form-js-editor';\n\nimport { EmbedModal } from './EmbedModal';\nimport { JSONEditor } from './JSONEditor';\nimport { Section } from './Section';\n\n\nimport './FileDrop.css';\nimport './PlaygroundRoot.css';\n\n\nexport function PlaygroundRoot(props) {\n\n const {\n additionalModules = [], // goes into both editor + viewer\n actions: actionsConfig = {},\n emit,\n exporter: exporterConfig = {},\n viewerProperties = {},\n editorProperties = {},\n viewerAdditionalModules = [],\n editorAdditionalModules = [],\n propertiesPanel: propertiesPanelConfig = {},\n onInit: onPlaygroundInit,\n onStateChanged\n } = props;\n\n const {\n display: displayActions = true\n } = actionsConfig;\n\n const paletteContainerRef = useRef();\n const editorContainerRef = useRef();\n const formContainerRef = useRef();\n const dataContainerRef = useRef();\n const resultContainerRef = useRef();\n const propertiesPanelContainerRef = useRef();\n\n const paletteRef = useRef();\n const formEditorRef = useRef();\n const formRef = useRef();\n const dataEditorRef = useRef();\n const resultViewRef = useRef();\n const propertiesPanelRef = useRef();\n\n const [ showEmbed, setShowEmbed ] = useState(false);\n\n const [ initialData ] = useState(props.data || undefined);\n const [ initialSchema, setInitialSchema ] = useState(props.schema);\n\n const [ data, setData ] = useState(props.data || {});\n const [ schema, setSchema ] = useState(props.schema);\n\n const [ resultData, setResultData ] = useState({});\n\n // pipe to playground API\n useEffect(() => {\n onPlaygroundInit({\n attachDataContainer: (node) => dataEditorRef.current.attachTo(node),\n attachEditorContainer: (node) => formEditorRef.current.attachTo(node),\n attachFormContainer: (node) => formRef.current.attachTo(node),\n attachPaletteContainer: (node) => paletteRef.current.attachTo(node),\n attachPropertiesPanelContainer: (node) => propertiesPanelRef.current.attachTo(node),\n attachResultContainer: (node) => resultViewRef.current.attachTo(node),\n get: (name, strict) => formEditorRef.current.get(name, strict),\n getDataEditor: () => dataEditorRef.current,\n getEditor: () => formEditorRef.current,\n getForm: () => formRef.current,\n getResultView: () => resultViewRef.current,\n getSchema: () => formEditorRef.current.getSchema(),\n setSchema: setInitialSchema,\n saveSchema: () => formEditorRef.current.saveSchema()\n });\n }, [ onPlaygroundInit ]);\n\n useEffect(() => {\n setInitialSchema(props.schema || {});\n }, [ props.schema ]);\n\n useEffect(() => {\n const dataEditor = dataEditorRef.current = new JSONEditor({\n value: toString(data),\n contentAttributes: { 'aria-label': 'Form Input', tabIndex: 0 },\n placeholder: createDataEditorPlaceholder()\n });\n\n const resultView = resultViewRef.current = new JSONEditor({\n readonly: true,\n value: toString(resultData),\n contentAttributes: { 'aria-label': 'Form Output', tabIndex: 0 }\n });\n\n const form = formRef.current = new Form({\n additionalModules: [\n ...additionalModules,\n ...viewerAdditionalModules\n ],\n properties: {\n ...viewerProperties,\n 'ariaLabel': 'Form Preview'\n }\n });\n\n const formEditor = formEditorRef.current = new FormEditor({\n renderer: {\n compact: true\n },\n palette: {\n parent: paletteContainerRef.current\n },\n propertiesPanel: {\n parent: propertiesPanelContainerRef.current,\n ...propertiesPanelConfig\n },\n exporter: exporterConfig,\n properties: {\n ...editorProperties,\n 'ariaLabel': 'Form Definition'\n },\n additionalModules: [\n ...additionalModules,\n ...editorAdditionalModules\n ]\n });\n\n paletteRef.current = formEditor.get('palette');\n propertiesPanelRef.current = formEditor.get('propertiesPanel');\n\n formEditor.on('formField.add', ({ formField }) => {\n const formFields = formEditor.get('formFields');\n const { config } = formFields.get(formField.type);\n const { generateInitialDemoData } = config;\n const { id } = formField;\n\n if (!isFunction(generateInitialDemoData)) {\n return;\n }\n\n const initialDemoData = generateInitialDemoData(formField);\n\n if ([ initialDemoData, id ].includes(undefined)) {\n return;\n }\n\n setData((currentData) => {\n const newData = {\n ...currentData,\n [id]: initialDemoData,\n };\n\n dataEditorRef.current.setValue(\n toString(newData)\n );\n\n return newData;\n });\n });\n\n formEditor.on('changed', () => {\n setSchema(formEditor.getSchema());\n });\n\n formEditor.on('formEditor.rendered', () => {\n\n // notify interested parties after render\n emit('formPlayground.rendered');\n });\n\n form.on('changed', () => {\n setResultData(form._getSubmitData());\n });\n\n dataEditor.on('changed', event => {\n try {\n setData(JSON.parse(event.value));\n } catch (error) {\n\n // notify interested about input data error\n emit('formPlayground.inputDataError', error);\n }\n });\n\n const formContainer = formContainerRef.current;\n const editorContainer = editorContainerRef.current;\n const dataContainer = dataContainerRef.current;\n const resultContainer = resultContainerRef.current;\n\n dataEditor.attachTo(dataContainer);\n resultView.attachTo(resultContainer);\n form.attachTo(formContainer);\n formEditor.attachTo(editorContainer);\n\n return () => {\n dataEditor.destroy();\n resultView.destroy();\n form.destroy();\n formEditor.destroy();\n };\n }, []);\n\n useEffect(() => {\n dataEditorRef.current.setValue(toString(initialData));\n }, [ initialData ]);\n\n useEffect(() => {\n if (initialSchema) {\n formEditorRef.current.importSchema(initialSchema);\n dataEditorRef.current.setVariables(getSchemaVariables(initialSchema));\n }\n }, [ initialSchema ]);\n\n useEffect(() => {\n if (schema && dataContainerRef.current) {\n const variables = getSchemaVariables(schema);\n dataEditorRef.current.setVariables(variables);\n }\n }, [ schema ]);\n\n useEffect(() => {\n schema && formRef.current.importSchema(schema, data);\n }, [ schema, data ]);\n\n useEffect(() => {\n resultViewRef.current.setValue(toString(resultData));\n }, [ resultData ]);\n\n useEffect(() => {\n onStateChanged && onStateChanged({\n schema,\n data\n });\n }, [ onStateChanged, schema, data ]);\n\n const handleDownload = useCallback(() => {\n\n download(JSON.stringify(schema, null, ' '), 'form.json', 'text/json');\n }, [ schema ]);\n\n const hideEmbedModal = useCallback(() => {\n setShowEmbed(false);\n }, []);\n\n const showEmbedModal = useCallback(() => {\n setShowEmbed(true);\n }, []);\n\n return (\n <div class={ classNames(\n 'fjs-container',\n 'fjs-pgl-root'\n ) }>\n <div class=\"fjs-pgl-modals\">\n { showEmbed ? <EmbedModal schema={ schema } data={ data } onClose={ hideEmbedModal } /> : null }\n </div>\n <div class=\"fjs-pgl-palette-container\" ref={ paletteContainerRef } />\n <div class=\"fjs-pgl-main\">\n\n <Section name=\"Form Definition\">\n\n {\n displayActions && <Section.HeaderItem>\n <button\n class=\"fjs-pgl-button\"\n title=\"Download form definition\"\n onClick={ handleDownload }\n >Download</button>\n </Section.HeaderItem>\n }\n\n {\n displayActions && <Section.HeaderItem>\n <button\n class=\"fjs-pgl-button\"\n onClick={ showEmbedModal }\n >Embed</button>\n </Section.HeaderItem>\n }\n\n <div ref={ editorContainerRef } class=\"fjs-pgl-form-container\"></div>\n </Section>\n <Section name=\"Form Preview\">\n <div ref={ formContainerRef } class=\"fjs-pgl-form-container\"></div>\n </Section>\n <Section name=\"Form Input\">\n <div ref={ dataContainerRef } class=\"fjs-pgl-text-container\"></div>\n </Section>\n <Section name=\"Form Output\">\n <div ref={ resultContainerRef } class=\"fjs-pgl-text-container\"></div>\n </Section>\n </div>\n <div class=\"fjs-pgl-properties-container\" ref={ propertiesPanelContainerRef } />\n </div>\n );\n}\n\n\n// helpers ///////////////\n\nfunction toString(obj) {\n return JSON.stringify(obj, null, ' ');\n}\n\nfunction createDataEditorPlaceholder() {\n const element = document.createElement('p');\n\n element.innerHTML = 'Use this panel to simulate the form input, such as process variables.\\nThis helps to test the form by populating the preview.\\n\\n' +\n 'Follow the JSON format like this:\\n\\n' +\n '{\\n \"variable\": \"value\"\\n}';\n\n return element;\n}","import { render } from 'preact';\n\nimport fileDrop from 'file-drops';\n\nimport mitt from 'mitt';\n\nimport { PlaygroundRoot } from './components/PlaygroundRoot';\n\n/**\n * @typedef { import('@bpmn-io/form-js-viewer/dist/types/types').FormProperties } FormProperties\n * @typedef { import('@bpmn-io/form-js-editor/dist/types/types').FormEditorProperties } FormEditorProperties\n *\n * @typedef { {\n * actions?: { display: Boolean }\n * additionalModules?: Array<any>\n * container?: Element\n * data: any\n * editor?: { inlinePropertiesPanel: Boolean }\n * editorAdditionalModules?: Array<any>\n * editorProperties?: FormEditorProperties\n * exporter?: { name: String, version: String }\n * propertiesPanel?: { parent: Element, feelPopupContainer: Element }\n * schema: any\n * viewerAdditionalModules?: Array<any>\n * viewerProperties?: FormProperties\n * } } FormPlaygroundOptions\n */\n\n/**\n * @param {FormPlaygroundOptions} options\n */\nexport function Playground(options) {\n\n const {\n container: parent,\n schema,\n data,\n ...rest\n } = options;\n\n const emitter = mitt();\n\n let state = { data, schema };\n let ref;\n\n const container = document.createElement('div');\n\n container.classList.add('fjs-pgl-parent');\n\n if (parent) {\n parent.appendChild(container);\n }\n\n const handleDrop = fileDrop('Drop a form file', function(files) {\n const file = files[0];\n\n if (file) {\n try {\n ref.setSchema(JSON.parse(file.contents));\n } catch (err) {\n\n // TODO(nikku): indicate JSON parse error\n }\n }\n });\n\n const withRef = function(fn) {\n return function(...args) {\n if (!ref) {\n throw new Error('Playground is not initialized.');\n }\n\n return fn(...args);\n };\n };\n\n const onInit = function(_ref) {\n ref = _ref;\n emitter.emit('formPlayground.init');\n };\n\n container.addEventListener('dragover', handleDrop);\n\n render(\n <PlaygroundRoot\n data={ data }\n emit={ emitter.emit }\n onInit={ onInit }\n onStateChanged={ (_state) => state = _state }\n schema={ schema }\n { ...rest }\n />,\n container\n );\n\n this.on = emitter.on;\n this.off = emitter.off;\n\n this.emit = emitter.emit;\n\n this.on('destroy', function() {\n render(null, container);\n });\n\n this.on('destroy', function() {\n parent.removeChild(container);\n });\n\n this.getState = function() {\n return state;\n };\n\n this.getSchema = withRef(() => ref.getSchema());\n\n this.setSchema = withRef((schema) => ref.setSchema(schema));\n\n this.saveSchema = withRef(() => ref.saveSchema());\n\n this.get = withRef((name, strict) => ref.get(name, strict));\n\n this.getDataEditor = withRef(() => ref.getDataEditor());\n\n this.getEditor = withRef(() => ref.getEditor());\n\n this.getForm = withRef((name, strict) => ref.getForm(name, strict));\n\n this.getResultView = withRef(() => ref.getResultView());\n\n this.destroy = function() {\n this.emit('destroy');\n };\n\n this.attachEditorContainer = withRef((node) => ref.attachEditorContainer(node));\n\n this.attachPreviewContainer = withRef((node) => ref.attachFormContainer(node));\n\n this.attachDataContainer = withRef((node) => ref.attachDataContainer(node));\n\n this.attachResultContainer = withRef((node) => ref.attachResultContainer(node));\n\n this.attachPaletteContainer = withRef((node) => ref.attachPaletteContainer(node));\n\n this.attachPropertiesPanelContainer = withRef((node) => ref.attachPropertiesPanelContainer(node));\n}"],"names":["Modal","props","useEffect","handleKey","event","key","stopPropagation","onClose","document","addEventListener","removeEventListener","_jsxs","class","children","_jsx","onClick","name","EmbedModal","schema","serializeValue","data","fieldRef","useRef","snippet","trim","current","select","href","spellCheck","ref","obj","JSON","stringify","replace","variablesFacet","Facet","define","autocompletionExtension","autocompletion","override","completions","context","variables","state","facet","options","map","v","label","type","nodeBefore","syntaxTree","resolve","pos","explicit","word","matchBefore","from","to","NO_LINT_CLS","JSONEditor","contentAttributes","placeholder","editorPlaceholder","readonly","emitter","mitt","language","Compartment","of","json","tabSize","EditorState","container","autocompletionConf","linterExtension","linter","jsonParseLinter","placeholderLinterExtension","view","placeholders","dom","querySelectorAll","length","set","unset","createState","doc","extensions","create","basicSetup","lintGutter","keymap","indentWithTab","createView","updateListener","EditorView","update","docChanged","emit","value","toString","editable","contentAttributesExtension","setValue","setState","setVariables","_view","getValue","on","off","attachTo","_container","appendChild","destroy","parentNode","removeChild","node","cls","classes","domClasses","body","add","remove","Section","elements","Array","isArray","headerItems","reduce","_","child","bucket","HeaderItem","push","PlaygroundRoot","additionalModules","actions","actionsConfig","exporter","exporterConfig","viewerProperties","editorProperties","viewerAdditionalModules","editorAdditionalModules","propertiesPanel","propertiesPanelConfig","onInit","onPlaygroundInit","onStateChanged","display","displayActions","paletteContainerRef","editorContainerRef","formContainerRef","dataContainerRef","resultContainerRef","propertiesPanelContainerRef","paletteRef","formEditorRef","formRef","dataEditorRef","resultViewRef","propertiesPanelRef","showEmbed","setShowEmbed","useState","initialData","undefined","initialSchema","setInitialSchema","setData","setSchema","resultData","setResultData","attachDataContainer","attachEditorContainer","attachFormContainer","attachPaletteContainer","attachPropertiesPanelContainer","attachResultContainer","get","strict","getDataEditor","getEditor","getForm","getResultView","getSchema","saveSchema","dataEditor","tabIndex","createDataEditorPlaceholder","resultView","form","Form","properties","formEditor","FormEditor","renderer","compact","palette","parent","formField","formFields","config","generateInitialDemoData","id","isFunction","initialDemoData","includes","currentData","newData","_getSubmitData","parse","error","formContainer","editorContainer","dataContainer","resultContainer","importSchema","getSchemaVariables","handleDownload","useCallback","download","hideEmbedModal","showEmbedModal","classNames","title","element","createElement","innerHTML","Playground","rest","classList","handleDrop","fileDrop","files","file","contents","err","withRef","fn","args","Error","_ref","render","_state","getState","attachPreviewContainer"],"mappings":";;;;;;;;;;;;;;;;;;;;AAEO,SAASA,KAAKA,CAACC,KAAK,EAAE;AAE3BC,EAAAA,SAAS,CAAC,MAAM;IACd,SAASC,SAASA,CAACC,KAAK,EAAE;AAExB,MAAA,IAAIA,KAAK,CAACC,GAAG,KAAK,QAAQ,EAAE;QAC1BD,KAAK,CAACE,eAAe,EAAE,CAAA;QAEvBL,KAAK,CAACM,OAAO,EAAE,CAAA;AACjB,OAAA;AACF,KAAA;AAEAC,IAAAA,QAAQ,CAACC,gBAAgB,CAAC,SAAS,EAAEN,SAAS,CAAC,CAAA;AAE/C,IAAA,OAAO,MAAM;AACXK,MAAAA,QAAQ,CAACE,mBAAmB,CAAC,SAAS,EAAEP,SAAS,CAAC,CAAA;KACnD,CAAA;AACH,GAAC,CAAC,CAAA;AAEF,EAAA,OACEQ,IAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,KAAK,EAAC,eAAe;AAAAC,IAAAA,QAAA,GACxBC,GAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,KAAK,EAAC,wBAAwB;MAACG,OAAO,EAAGd,KAAK,CAACM,OAAAA;KAAe,CAAC,EACpEI,IAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,KAAK,EAAC,uBAAuB;AAAAC,MAAAA,QAAA,GAChCC,GAAA,CAAA,IAAA,EAAA;AAAIF,QAAAA,KAAK,EAAC,sBAAsB;QAAAC,QAAA,EAAGZ,KAAK,CAACe,IAAAA;OAAU,CAAC,EACpDF,GAAA,CAAA,KAAA,EAAA;AAAKF,QAAAA,KAAK,EAAC,oBAAoB;QAAAC,QAAA,EAC3BZ,KAAK,CAACY,QAAAA;OACL,CAAC,EACNC,GAAA,CAAA,KAAA,EAAA;AAAKF,QAAAA,KAAK,EAAC,sBAAsB;AAAAC,QAAAA,QAAA,EAC/BC,GAAA,CAAA,QAAA,EAAA;AAAQF,UAAAA,KAAK,EAAC,uCAAuC;UAACG,OAAO,EAAGd,KAAK,CAACM,OAAS;AAAAM,UAAAA,QAAA,EAAC,OAAA;SAAa,CAAA;AAAC,OAC3F,CAAC,CAAA;AAAA,KACH,CAAC,CAAA;AAAA,GACH,CAAC,CAAA;AAEV;;AC9BO,SAASI,UAAUA,CAAChB,KAAK,EAAE;AAEhC,EAAA,MAAMiB,MAAM,GAAGC,cAAc,CAAClB,KAAK,CAACiB,MAAM,CAAC,CAAA;EAC3C,MAAME,IAAI,GAAGD,cAAc,CAAClB,KAAK,CAACmB,IAAI,IAAI,EAAE,CAAC,CAAA;AAE7C,EAAA,MAAMC,QAAQ,GAAGC,MAAM,EAAE,CAAA;AAEzB,EAAA,MAAMC,OAAO,GAAI,CAAA;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAAA,EAA4BH,IAAK,CAAA;AACjC,4BAAA,EAA8BF,MAAO,CAAA;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAG,CAAA,CAACM,IAAI,EAAE,CAAA;AAERtB,EAAAA,SAAS,CAAC,MAAM;AACdmB,IAAAA,QAAQ,CAACI,OAAO,CAACC,MAAM,EAAE,CAAA;AAC3B,GAAC,CAAC,CAAA;EAEF,OACEf,IAAA,CAACX,KAAK,EAAA;AAACgB,IAAAA,IAAI,EAAC,YAAY;IAACT,OAAO,EAAGN,KAAK,CAACM,OAAS;AAAAM,IAAAA,QAAA,GAChDF,IAAA,CAAA,GAAA,EAAA;MAAAE,QAAA,EAAA,CAAG,yDAAuD,EAAAC,GAAA,CAAA,GAAA,EAAA;AAAGa,QAAAA,IAAI,EAAC,oCAAoC;AAAAd,QAAAA,QAAA,EAAC,SAAA;AAAO,OAAG,CAAC,EAAC,GAAA,CAAA;KAAG,CAAC,EAEvHC,GAAA,CAAA,UAAA,EAAA;AAAUc,MAAAA,UAAU,EAAC,OAAO;AAACC,MAAAA,GAAG,EAAGR,QAAU;AAAAR,MAAAA,QAAA,EAAEU,OAAAA;AAAO,KAAW,CAAC,CAAA;AAAA,GAC7D,CAAC,CAAA;AAEZ,CAAA;;AAGA;;AAEA,SAASJ,cAAcA,CAACW,GAAG,EAAE;EAC3B,OAAOC,IAAI,CAACC,SAAS,CAACD,IAAI,CAACC,SAAS,CAACF,GAAG,CAAC,CAAC,CAACG,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAACA,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;AACxF;;ACxDA;AACA;AACA;AACO,MAAMC,cAAc,GAAGC,KAAK,CAACC,MAAM,EAAE;;ACArC,SAASC,uBAAuBA,GAAG;EACxC,OAAO,CACLC,cAAc,CAAC;IACbC,QAAQ,EAAE,CACRC,WAAW,CAAA;AAEf,GAAC,CAAC,CACH,CAAA;AACH,CAAA;AAEA,SAASA,WAAWA,CAACC,OAAO,EAAE;AAE5B,EAAA,MAAMC,SAAS,GAAGD,OAAO,CAACE,KAAK,CAACC,KAAK,CAACV,cAAc,CAAC,CAAC,CAAC,CAAC,CAAA;AAExD,EAAA,MAAMW,OAAO,GAAGH,SAAS,CAACI,GAAG,CAACC,CAAC,KAAK;AAClCC,IAAAA,KAAK,EAAED,CAAC;AACRE,IAAAA,IAAI,EAAE,UAAA;AACR,GAAC,CAAC,CAAC,CAAA;AAEH,EAAA,IAAIC,UAAU,GAAGC,UAAU,CAACV,OAAO,CAACE,KAAK,CAAC,CAACS,OAAO,CAACX,OAAO,CAACY,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;;AAEnE;AACA,EAAA,IAAIH,UAAU,CAACD,IAAI,CAACjC,IAAI,KAAK,cAAc,EAAE;IAC3CyB,OAAO,CAACa,QAAQ,GAAG,IAAI,CAAA;AACzB,GAAA;AAEA,EAAA,IAAIC,IAAI,GAAGd,OAAO,CAACe,WAAW,CAAC,KAAK,CAAC,CAAA;AAErC,EAAA,IAAID,IAAI,CAACE,IAAI,IAAIF,IAAI,CAACG,EAAE,IAAI,CAACjB,OAAO,CAACa,QAAQ,EAAE;AAC7C,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;EAEA,OAAO;IACLG,IAAI,EAAEF,IAAI,CAACE,IAAI;AACfZ,IAAAA,OAAAA;GACD,CAAA;AACH;;AC1BA,MAAMc,WAAW,GAAG,kBAAkB,CAAA;;AAGtC;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,UAAUA,CAACf,OAAO,GAAG,EAAE,EAAE;EACvC,MAAM;IACJgB,iBAAiB,GAAG,EAAE;AACtBC,IAAAA,WAAW,EAAEC,iBAAiB;AAC9BC,IAAAA,QAAQ,GAAG,KAAA;AACb,GAAC,GAAGnB,OAAO,CAAA;AAEX,EAAA,MAAMoB,OAAO,GAAGC,IAAI,EAAE,CAAA;AAEtB,EAAA,IAAIC,QAAQ,GAAG,IAAIC,WAAW,EAAE,CAACC,EAAE,CAACC,IAAI,EAAE,CAAC,CAAA;AAC3C,EAAA,IAAIC,OAAO,GAAG,IAAIH,WAAW,EAAE,CAACC,EAAE,CAACG,WAAW,CAACD,OAAO,CAACF,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;EAE7D,IAAII,SAAS,GAAG,IAAI,CAAA;;AAGpB;AACF;AACA;;AAEE,EAAA,MAAMC,kBAAkB,GAAG,IAAIN,WAAW,EAAE,CAAA;AAE5C,EAAA,MAAMO,eAAe,GAAGC,MAAM,CAACC,eAAe,EAAE,CAAC,CAAA;;AAEjD;AACA,EAAA,MAAMC,0BAA0B,GAAGF,MAAM,CAACG,IAAI,IAAI;IAChD,MAAMC,YAAY,GAAGD,IAAI,CAACE,GAAG,CAACC,gBAAgB,CAAC,iBAAiB,CAAC,CAAA;AAEjE,IAAA,IAAIF,YAAY,CAACG,MAAM,GAAG,CAAC,EAAE;AAC3BC,MAAAA,GAAG,CAACX,SAAS,EAAEd,WAAW,CAAC,CAAA;AAC7B,KAAC,MAAM;AACL0B,MAAAA,KAAK,CAACZ,SAAS,EAAEd,WAAW,CAAC,CAAA;AAC/B,KAAA;AAEA,IAAA,OAAO,EAAE,CAAA;AACX,GAAC,CAAC,CAAA;EAEF,SAAS2B,WAAWA,CAACC,GAAG,EAAEC,UAAU,GAAG,EAAE,EAAE9C,SAAS,GAAG,EAAE,EAAE;IACzD,OAAO8B,WAAW,CAACiB,MAAM,CAAC;MACxBF,GAAG;MACHC,UAAU,EAAE,CACVE,UAAU,EACVvB,QAAQ,EACRI,OAAO,EACPI,eAAe,EACfG,0BAA0B,EAC1Ba,UAAU,EAAE,EACZjB,kBAAkB,CAACL,EAAE,CAACnC,cAAc,CAACmC,EAAE,CAAC3B,SAAS,CAAC,CAAC,EACnDL,uBAAuB,EAAE,EACzBuD,MAAM,CAACvB,EAAE,CAAC,CAAEwB,aAAa,CAAE,CAAC,EAC5B9B,iBAAiB,GAAGD,WAAW,CAACC,iBAAiB,CAAC,GAAG,EAAE,EACvD,GAAGyB,UAAU,CAAA;AAEjB,KAAC,CAAC,CAAA;AACJ,GAAA;EAEA,SAASM,UAAUA,CAAC9B,QAAQ,EAAE;IAE5B,MAAM+B,cAAc,GAAGC,UAAU,CAACD,cAAc,CAAC1B,EAAE,CAAC4B,MAAM,IAAI;MAC5D,IAAIA,MAAM,CAACC,UAAU,EAAE;AACrBjC,QAAAA,OAAO,CAACkC,IAAI,CAAC,SAAS,EAAE;UACtBC,KAAK,EAAEH,MAAM,CAAClB,IAAI,CAACpC,KAAK,CAAC4C,GAAG,CAACc,QAAQ,EAAC;AACxC,SAAC,CAAC,CAAA;AACJ,OAAA;AACF,KAAC,CAAC,CAAA;IAEF,MAAMC,QAAQ,GAAGN,UAAU,CAACM,QAAQ,CAACjC,EAAE,CAAC,CAACL,QAAQ,CAAC,CAAA;IAElD,MAAMuC,0BAA0B,GAAGP,UAAU,CAACnC,iBAAiB,CAACQ,EAAE,CAACR,iBAAiB,CAAC,CAAA;AAErF,IAAA,MAAMkB,IAAI,GAAG,IAAIiB,UAAU,CAAC;MAC1BrD,KAAK,EAAE2C,WAAW,CAAC,EAAE,EAAE,CAAES,cAAc,EAAEO,QAAQ,EAAEC,0BAA0B,CAAE,CAAA;AACjF,KAAC,CAAC,CAAA;AAEFxB,IAAAA,IAAI,CAACyB,QAAQ,GAAG,UAASJ,KAAK,EAAE;AAC9B,MAAA,IAAI,CAACK,QAAQ,CAACnB,WAAW,CAACc,KAAK,EAAE,CAAEL,cAAc,EAAEO,QAAQ,EAAEC,0BAA0B,CAAE,CAAC,CAAC,CAAA;KAC5F,CAAA;AAEDxB,IAAAA,IAAI,CAAC2B,YAAY,GAAG,UAAShE,SAAS,EAAE;MACtC,IAAI,CAAC+D,QAAQ,CAACnB,WAAW,CACvBP,IAAI,CAACpC,KAAK,CAAC4C,GAAG,CAACc,QAAQ,EAAE,EACzB,CAAEN,cAAc,EAAEO,QAAQ,EAAEC,0BAA0B,CAAE,EACxD7D,SACF,CAAC,CAAC,CAAA;KACH,CAAA;AAED,IAAA,OAAOqC,IAAI,CAAA;AACb,GAAA;EAEA,MAAMA,IAAI,GAAG,IAAI,CAAC4B,KAAK,GAAGb,UAAU,CAAC9B,QAAQ,CAAC,CAAA;AAE9C,EAAA,IAAI,CAACwC,QAAQ,GAAG,UAASJ,KAAK,EAAE;AAC9BrB,IAAAA,IAAI,CAACyB,QAAQ,CAACJ,KAAK,CAAC,CAAA;GACrB,CAAA;EAED,IAAI,CAACQ,QAAQ,GAAG,YAAW;IACzB,OAAO7B,IAAI,CAACpC,KAAK,CAAC4C,GAAG,CAACc,QAAQ,EAAE,CAAA;GACjC,CAAA;;AAED;AACF;AACA;AACE,EAAA,IAAI,CAACK,YAAY,GAAG,UAAShE,SAAS,EAAE;AACtCqC,IAAAA,IAAI,CAAC2B,YAAY,CAAChE,SAAS,CAAC,CAAA;GAC7B,CAAA;AAED,EAAA,IAAI,CAACmE,EAAE,GAAG5C,OAAO,CAAC4C,EAAE,CAAA;AACpB,EAAA,IAAI,CAACC,GAAG,GAAG7C,OAAO,CAAC6C,GAAG,CAAA;AACtB,EAAA,IAAI,CAACX,IAAI,GAAGlC,OAAO,CAACkC,IAAI,CAAA;AAExB,EAAA,IAAI,CAACY,QAAQ,GAAG,UAASC,UAAU,EAAE;AACnCvC,IAAAA,SAAS,GAAGuC,UAAU,CAAA;AACtBvC,IAAAA,SAAS,CAACwC,WAAW,CAAClC,IAAI,CAACE,GAAG,CAAC,CAAA;GAChC,CAAA;EAED,IAAI,CAACiC,OAAO,GAAG,YAAW;AACxB,IAAA,IAAInC,IAAI,CAACE,GAAG,CAACkC,UAAU,EAAE;MACvBpC,IAAI,CAACE,GAAG,CAACkC,UAAU,CAACC,WAAW,CAACrC,IAAI,CAACE,GAAG,CAAC,CAAA;AAC3C,KAAA;IAEAF,IAAI,CAACmC,OAAO,EAAE,CAAA;GACf,CAAA;AACH,CAAA;;AAEA;;AAGA,SAAS9B,GAAGA,CAACiC,IAAI,EAAEC,GAAG,EAAE;EACtB,MAAMC,SAAO,GAAGC,OAAU,CAACH,IAAI,EAAE7G,QAAQ,CAACiH,IAAI,CAAC,CAAA;AAC/CF,EAAAA,SAAO,CAACG,GAAG,CAACJ,GAAG,CAAC,CAAA;AAClB,CAAA;AAEA,SAASjC,KAAKA,CAACgC,IAAI,EAAEC,GAAG,EAAE;EACxB,MAAMC,SAAO,GAAGC,OAAU,CAACH,IAAI,EAAE7G,QAAQ,CAACiH,IAAI,CAAC,CAAA;AAC/CF,EAAAA,SAAO,CAACI,MAAM,CAACL,GAAG,CAAC,CAAA;AACrB;;AC9JO,SAASM,OAAOA,CAAC3H,KAAK,EAAE;AAE7B,EAAA,MAAM4H,QAAQ,GACZC,KAAK,CAACC,OAAO,CAAC9H,KAAK,CAACY,QAAQ,CAAC,GACzBZ,KAAK,CAACY,QAAQ,GAChB,CAAEZ,KAAK,CAACY,QAAQ,CAAE,CAAA;EAEtB,MAAM;IACJmH,WAAW;AACXnH,IAAAA,QAAAA;GACD,GAAGgH,QAAQ,CAACI,MAAM,CAAC,CAACC,CAAC,EAAEC,KAAK,KAAK;AAChC,IAAA,MAAMC,MAAM,GACVD,KAAK,CAAClF,IAAI,KAAK2E,OAAO,CAACS,UAAU,GAC7BH,CAAC,CAACF,WAAW,GACbE,CAAC,CAACrH,QAAQ,CAAA;AAEhBuH,IAAAA,MAAM,CAACE,IAAI,CAACH,KAAK,CAAC,CAAA;AAElB,IAAA,OAAOD,CAAC,CAAA;AACV,GAAC,EAAE;AAAEF,IAAAA,WAAW,EAAE,EAAE;AAAEnH,IAAAA,QAAQ,EAAE,EAAA;AAAG,GAAC,CAAC,CAAA;AAErC,EAAA,OACEF,IAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,KAAK,EAAC,iBAAiB;AAAAC,IAAAA,QAAA,GAC1BF,IAAA,CAAA,IAAA,EAAA;AAAIC,MAAAA,KAAK,EAAC,QAAQ;MAAAC,QAAA,EAAA,CAAGZ,KAAK,CAACe,IAAI,EAAE,GAAC,EAAEgH,WAAW,CAAC7C,MAAM,GAAGrE,GAAA,CAAA,MAAA,EAAA;AAAMF,QAAAA,KAAK,EAAC,cAAc;AAAAC,QAAAA,QAAA,EAAGmH,WAAAA;OAAmB,CAAC,GAAG,IAAI,CAAA;KAAM,CAAC,EACxHlH,GAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,KAAK,EAAC,MAAM;AAAAC,MAAAA,QAAA,EACbA,QAAAA;AAAQ,KACP,CAAC,CAAA;AAAA,GACH,CAAC,CAAA;AAEV,CAAA;AAEA+G,OAAO,CAACS,UAAU,GAAG,UAASpI,KAAK,EAAE;EACnC,OAAOA,KAAK,CAACY,QAAQ,CAAA;AACvB,CAAC;;ACTM,SAAS0H,cAAcA,CAACtI,KAAK,EAAE;EAEpC,MAAM;AACJuI,IAAAA,iBAAiB,GAAG,EAAE;AAAE;AACxBC,IAAAA,OAAO,EAAEC,aAAa,GAAG,EAAE;IAC3BvC,IAAI;AACJwC,IAAAA,QAAQ,EAAEC,cAAc,GAAG,EAAE;IAC7BC,gBAAgB,GAAG,EAAE;IACrBC,gBAAgB,GAAG,EAAE;AACrBC,IAAAA,uBAAuB,GAAG,EAAE;AAC5BC,IAAAA,uBAAuB,GAAG,EAAE;AAC5BC,IAAAA,eAAe,EAAEC,qBAAqB,GAAG,EAAE;AAC3CC,IAAAA,MAAM,EAAEC,gBAAgB;AACxBC,IAAAA,cAAAA;AACF,GAAC,GAAGpJ,KAAK,CAAA;EAET,MAAM;IACJqJ,OAAO,EAAEC,cAAc,GAAG,IAAA;AAC5B,GAAC,GAAGb,aAAa,CAAA;AAEjB,EAAA,MAAMc,mBAAmB,GAAGlI,MAAM,EAAE,CAAA;AACpC,EAAA,MAAMmI,kBAAkB,GAAGnI,MAAM,EAAE,CAAA;AACnC,EAAA,MAAMoI,gBAAgB,GAAGpI,MAAM,EAAE,CAAA;AACjC,EAAA,MAAMqI,gBAAgB,GAAGrI,MAAM,EAAE,CAAA;AACjC,EAAA,MAAMsI,kBAAkB,GAAGtI,MAAM,EAAE,CAAA;AACnC,EAAA,MAAMuI,2BAA2B,GAAGvI,MAAM,EAAE,CAAA;AAE5C,EAAA,MAAMwI,UAAU,GAAGxI,MAAM,EAAE,CAAA;AAC3B,EAAA,MAAMyI,aAAa,GAAGzI,MAAM,EAAE,CAAA;AAC9B,EAAA,MAAM0I,OAAO,GAAG1I,MAAM,EAAE,CAAA;AACxB,EAAA,MAAM2I,aAAa,GAAG3I,MAAM,EAAE,CAAA;AAC9B,EAAA,MAAM4I,aAAa,GAAG5I,MAAM,EAAE,CAAA;AAC9B,EAAA,MAAM6I,kBAAkB,GAAG7I,MAAM,EAAE,CAAA;EAEnC,MAAM,CAAE8I,SAAS,EAAEC,YAAY,CAAE,GAAGC,QAAQ,CAAC,KAAK,CAAC,CAAA;EAEnD,MAAM,CAAEC,WAAW,CAAE,GAAGD,QAAQ,CAACrK,KAAK,CAACmB,IAAI,IAAIoJ,SAAS,CAAC,CAAA;EACzD,MAAM,CAAEC,aAAa,EAAEC,gBAAgB,CAAE,GAAGJ,QAAQ,CAACrK,KAAK,CAACiB,MAAM,CAAC,CAAA;AAElE,EAAA,MAAM,CAAEE,IAAI,EAAEuJ,OAAO,CAAE,GAAGL,QAAQ,CAACrK,KAAK,CAACmB,IAAI,IAAI,EAAE,CAAC,CAAA;EACpD,MAAM,CAAEF,MAAM,EAAE0J,SAAS,CAAE,GAAGN,QAAQ,CAACrK,KAAK,CAACiB,MAAM,CAAC,CAAA;EAEpD,MAAM,CAAE2J,UAAU,EAAEC,aAAa,CAAE,GAAGR,QAAQ,CAAC,EAAE,CAAC,CAAA;;AAElD;AACApK,EAAAA,SAAS,CAAC,MAAM;AACdkJ,IAAAA,gBAAgB,CAAC;MACf2B,mBAAmB,EAAG1D,IAAI,IAAK4C,aAAa,CAACxI,OAAO,CAACsF,QAAQ,CAACM,IAAI,CAAC;MACnE2D,qBAAqB,EAAG3D,IAAI,IAAK0C,aAAa,CAACtI,OAAO,CAACsF,QAAQ,CAACM,IAAI,CAAC;MACrE4D,mBAAmB,EAAG5D,IAAI,IAAK2C,OAAO,CAACvI,OAAO,CAACsF,QAAQ,CAACM,IAAI,CAAC;MAC7D6D,sBAAsB,EAAG7D,IAAI,IAAKyC,UAAU,CAACrI,OAAO,CAACsF,QAAQ,CAACM,IAAI,CAAC;MACnE8D,8BAA8B,EAAG9D,IAAI,IAAK8C,kBAAkB,CAAC1I,OAAO,CAACsF,QAAQ,CAACM,IAAI,CAAC;MACnF+D,qBAAqB,EAAG/D,IAAI,IAAK6C,aAAa,CAACzI,OAAO,CAACsF,QAAQ,CAACM,IAAI,CAAC;AACrEgE,MAAAA,GAAG,EAAEA,CAACrK,IAAI,EAAEsK,MAAM,KAAKvB,aAAa,CAACtI,OAAO,CAAC4J,GAAG,CAACrK,IAAI,EAAEsK,MAAM,CAAC;AAC9DC,MAAAA,aAAa,EAAEA,MAAMtB,aAAa,CAACxI,OAAO;AAC1C+J,MAAAA,SAAS,EAAEA,MAAMzB,aAAa,CAACtI,OAAO;AACtCgK,MAAAA,OAAO,EAAEA,MAAMzB,OAAO,CAACvI,OAAO;AAC9BiK,MAAAA,aAAa,EAAEA,MAAMxB,aAAa,CAACzI,OAAO;MAC1CkK,SAAS,EAAEA,MAAM5B,aAAa,CAACtI,OAAO,CAACkK,SAAS,EAAE;AAClDf,MAAAA,SAAS,EAAEF,gBAAgB;MAC3BkB,UAAU,EAAEA,MAAM7B,aAAa,CAACtI,OAAO,CAACmK,UAAU,EAAC;AACrD,KAAC,CAAC,CAAA;AACJ,GAAC,EAAE,CAAExC,gBAAgB,CAAE,CAAC,CAAA;AAExBlJ,EAAAA,SAAS,CAAC,MAAM;AACdwK,IAAAA,gBAAgB,CAACzK,KAAK,CAACiB,MAAM,IAAI,EAAE,CAAC,CAAA;AACtC,GAAC,EAAE,CAAEjB,KAAK,CAACiB,MAAM,CAAE,CAAC,CAAA;AAEpBhB,EAAAA,SAAS,CAAC,MAAM;IACd,MAAM2L,UAAU,GAAG5B,aAAa,CAACxI,OAAO,GAAG,IAAImC,UAAU,CAAC;AACxDwC,MAAAA,KAAK,EAAEC,QAAQ,CAACjF,IAAI,CAAC;AACrByC,MAAAA,iBAAiB,EAAE;AAAE,QAAA,YAAY,EAAE,YAAY;AAAEiI,QAAAA,QAAQ,EAAE,CAAA;OAAG;MAC9DhI,WAAW,EAAEiI,2BAA2B,EAAC;AAC3C,KAAC,CAAC,CAAA;IAEF,MAAMC,UAAU,GAAG9B,aAAa,CAACzI,OAAO,GAAG,IAAImC,UAAU,CAAC;AACxDI,MAAAA,QAAQ,EAAE,IAAI;AACdoC,MAAAA,KAAK,EAAEC,QAAQ,CAACwE,UAAU,CAAC;AAC3BhH,MAAAA,iBAAiB,EAAE;AAAE,QAAA,YAAY,EAAE,aAAa;AAAEiI,QAAAA,QAAQ,EAAE,CAAA;AAAE,OAAA;AAChE,KAAC,CAAC,CAAA;IAEF,MAAMG,IAAI,GAAGjC,OAAO,CAACvI,OAAO,GAAG,IAAIyK,IAAI,CAAC;AACtC1D,MAAAA,iBAAiB,EAAE,CACjB,GAAGA,iBAAiB,EACpB,GAAGO,uBAAuB,CAC3B;AACDoD,MAAAA,UAAU,EAAE;AACV,QAAA,GAAGtD,gBAAgB;AACnB,QAAA,WAAW,EAAE,cAAA;AACf,OAAA;AACF,KAAC,CAAC,CAAA;IAEF,MAAMuD,UAAU,GAAGrC,aAAa,CAACtI,OAAO,GAAG,IAAI4K,UAAU,CAAC;AACxDC,MAAAA,QAAQ,EAAE;AACRC,QAAAA,OAAO,EAAE,IAAA;OACV;AACDC,MAAAA,OAAO,EAAE;QACPC,MAAM,EAAEjD,mBAAmB,CAAC/H,OAAAA;OAC7B;AACDwH,MAAAA,eAAe,EAAE;QACfwD,MAAM,EAAE5C,2BAA2B,CAACpI,OAAO;QAC3C,GAAGyH,qBAAAA;OACJ;AACDP,MAAAA,QAAQ,EAAEC,cAAc;AACxBuD,MAAAA,UAAU,EAAE;AACV,QAAA,GAAGrD,gBAAgB;AACnB,QAAA,WAAW,EAAE,iBAAA;OACd;AACDN,MAAAA,iBAAiB,EAAE,CACjB,GAAGA,iBAAiB,EACpB,GAAGQ,uBAAuB,CAAA;AAE9B,KAAC,CAAC,CAAA;IAEFc,UAAU,CAACrI,OAAO,GAAG2K,UAAU,CAACf,GAAG,CAAC,SAAS,CAAC,CAAA;IAC9ClB,kBAAkB,CAAC1I,OAAO,GAAG2K,UAAU,CAACf,GAAG,CAAC,iBAAiB,CAAC,CAAA;AAE9De,IAAAA,UAAU,CAACvF,EAAE,CAAC,eAAe,EAAE,CAAC;AAAE6F,MAAAA,SAAAA;AAAU,KAAC,KAAK;AAChD,MAAA,MAAMC,UAAU,GAAGP,UAAU,CAACf,GAAG,CAAC,YAAY,CAAC,CAAA;MAC/C,MAAM;AAAEuB,QAAAA,MAAAA;OAAQ,GAAGD,UAAU,CAACtB,GAAG,CAACqB,SAAS,CAACzJ,IAAI,CAAC,CAAA;MACjD,MAAM;AAAE4J,QAAAA,uBAAAA;AAAwB,OAAC,GAAGD,MAAM,CAAA;MAC1C,MAAM;AAAEE,QAAAA,EAAAA;AAAG,OAAC,GAAGJ,SAAS,CAAA;AAExB,MAAA,IAAI,CAACK,UAAU,CAACF,uBAAuB,CAAC,EAAE;AACxC,QAAA,OAAA;AACF,OAAA;AAEA,MAAA,MAAMG,eAAe,GAAGH,uBAAuB,CAACH,SAAS,CAAC,CAAA;MAE1D,IAAI,CAAEM,eAAe,EAAEF,EAAE,CAAE,CAACG,QAAQ,CAACzC,SAAS,CAAC,EAAE;AAC/C,QAAA,OAAA;AACF,OAAA;MAEAG,OAAO,CAAEuC,WAAW,IAAK;AACvB,QAAA,MAAMC,OAAO,GAAG;AACd,UAAA,GAAGD,WAAW;AACd,UAAA,CAACJ,EAAE,GAAGE,eAAAA;SACP,CAAA;QAED/C,aAAa,CAACxI,OAAO,CAAC+E,QAAQ,CAC5BH,QAAQ,CAAC8G,OAAO,CAClB,CAAC,CAAA;AAED,QAAA,OAAOA,OAAO,CAAA;AAChB,OAAC,CAAC,CAAA;AACJ,KAAC,CAAC,CAAA;AAEFf,IAAAA,UAAU,CAACvF,EAAE,CAAC,SAAS,EAAE,MAAM;AAC7B+D,MAAAA,SAAS,CAACwB,UAAU,CAACT,SAAS,EAAE,CAAC,CAAA;AACnC,KAAC,CAAC,CAAA;AAEFS,IAAAA,UAAU,CAACvF,EAAE,CAAC,qBAAqB,EAAE,MAAM;AAEzC;MACAV,IAAI,CAAC,yBAAyB,CAAC,CAAA;AACjC,KAAC,CAAC,CAAA;AAEF8F,IAAAA,IAAI,CAACpF,EAAE,CAAC,SAAS,EAAE,MAAM;AACvBiE,MAAAA,aAAa,CAACmB,IAAI,CAACmB,cAAc,EAAE,CAAC,CAAA;AACtC,KAAC,CAAC,CAAA;AAEFvB,IAAAA,UAAU,CAAChF,EAAE,CAAC,SAAS,EAAEzG,KAAK,IAAI;MAChC,IAAI;QACFuK,OAAO,CAAC5I,IAAI,CAACsL,KAAK,CAACjN,KAAK,CAACgG,KAAK,CAAC,CAAC,CAAA;OACjC,CAAC,OAAOkH,KAAK,EAAE;AAEd;AACAnH,QAAAA,IAAI,CAAC,+BAA+B,EAAEmH,KAAK,CAAC,CAAA;AAC9C,OAAA;AACF,KAAC,CAAC,CAAA;AAEF,IAAA,MAAMC,aAAa,GAAG7D,gBAAgB,CAACjI,OAAO,CAAA;AAC9C,IAAA,MAAM+L,eAAe,GAAG/D,kBAAkB,CAAChI,OAAO,CAAA;AAClD,IAAA,MAAMgM,aAAa,GAAG9D,gBAAgB,CAAClI,OAAO,CAAA;AAC9C,IAAA,MAAMiM,eAAe,GAAG9D,kBAAkB,CAACnI,OAAO,CAAA;AAElDoK,IAAAA,UAAU,CAAC9E,QAAQ,CAAC0G,aAAa,CAAC,CAAA;AAClCzB,IAAAA,UAAU,CAACjF,QAAQ,CAAC2G,eAAe,CAAC,CAAA;AACpCzB,IAAAA,IAAI,CAAClF,QAAQ,CAACwG,aAAa,CAAC,CAAA;AAC5BnB,IAAAA,UAAU,CAACrF,QAAQ,CAACyG,eAAe,CAAC,CAAA;AAEpC,IAAA,OAAO,MAAM;MACX3B,UAAU,CAAC3E,OAAO,EAAE,CAAA;MACpB8E,UAAU,CAAC9E,OAAO,EAAE,CAAA;MACpB+E,IAAI,CAAC/E,OAAO,EAAE,CAAA;MACdkF,UAAU,CAAClF,OAAO,EAAE,CAAA;KACrB,CAAA;GACF,EAAE,EAAE,CAAC,CAAA;AAENhH,EAAAA,SAAS,CAAC,MAAM;IACd+J,aAAa,CAACxI,OAAO,CAAC+E,QAAQ,CAACH,QAAQ,CAACkE,WAAW,CAAC,CAAC,CAAA;AACvD,GAAC,EAAE,CAAEA,WAAW,CAAE,CAAC,CAAA;AAEnBrK,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAIuK,aAAa,EAAE;AACjBV,MAAAA,aAAa,CAACtI,OAAO,CAACkM,YAAY,CAAClD,aAAa,CAAC,CAAA;MACjDR,aAAa,CAACxI,OAAO,CAACiF,YAAY,CAACkH,kBAAkB,CAACnD,aAAa,CAAC,CAAC,CAAA;AACvE,KAAA;AACF,GAAC,EAAE,CAAEA,aAAa,CAAE,CAAC,CAAA;AAErBvK,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAIgB,MAAM,IAAIyI,gBAAgB,CAAClI,OAAO,EAAE;AACtC,MAAA,MAAMiB,SAAS,GAAGkL,kBAAkB,CAAC1M,MAAM,CAAC,CAAA;AAC5C+I,MAAAA,aAAa,CAACxI,OAAO,CAACiF,YAAY,CAAChE,SAAS,CAAC,CAAA;AAC/C,KAAA;AACF,GAAC,EAAE,CAAExB,MAAM,CAAE,CAAC,CAAA;AAEdhB,EAAAA,SAAS,CAAC,MAAM;IACdgB,MAAM,IAAI8I,OAAO,CAACvI,OAAO,CAACkM,YAAY,CAACzM,MAAM,EAAEE,IAAI,CAAC,CAAA;AACtD,GAAC,EAAE,CAAEF,MAAM,EAAEE,IAAI,CAAE,CAAC,CAAA;AAEpBlB,EAAAA,SAAS,CAAC,MAAM;IACdgK,aAAa,CAACzI,OAAO,CAAC+E,QAAQ,CAACH,QAAQ,CAACwE,UAAU,CAAC,CAAC,CAAA;AACtD,GAAC,EAAE,CAAEA,UAAU,CAAE,CAAC,CAAA;AAElB3K,EAAAA,SAAS,CAAC,MAAM;IACdmJ,cAAc,IAAIA,cAAc,CAAC;MAC/BnI,MAAM;AACNE,MAAAA,IAAAA;AACF,KAAC,CAAC,CAAA;GACH,EAAE,CAAEiI,cAAc,EAAEnI,MAAM,EAAEE,IAAI,CAAE,CAAC,CAAA;AAEpC,EAAA,MAAMyM,cAAc,GAAGC,WAAW,CAAC,MAAM;AAEvCC,IAAAA,QAAQ,CAAChM,IAAI,CAACC,SAAS,CAACd,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,CAAA;AACxE,GAAC,EAAE,CAAEA,MAAM,CAAE,CAAC,CAAA;AAEd,EAAA,MAAM8M,cAAc,GAAGF,WAAW,CAAC,MAAM;IACvCzD,YAAY,CAAC,KAAK,CAAC,CAAA;GACpB,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,MAAM4D,cAAc,GAAGH,WAAW,CAAC,MAAM;IACvCzD,YAAY,CAAC,IAAI,CAAC,CAAA;GACnB,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,OACE1J,IAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,KAAK,EAAGsN,UAAU,CACrB,eAAe,EACf,cACF,CAAG;AAAArN,IAAAA,QAAA,GACDC,GAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,KAAK,EAAC,gBAAgB;AAAAC,MAAAA,QAAA,EACvBuJ,SAAS,GAAGtJ,GAAA,CAACG,UAAU,EAAA;AAACC,QAAAA,MAAM,EAAGA,MAAQ;AAACE,QAAAA,IAAI,EAAGA,IAAM;AAACb,QAAAA,OAAO,EAAGyN,cAAAA;AAAgB,OAAE,CAAC,GAAG,IAAA;KACvF,CAAC,EACNlN,GAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,KAAK,EAAC,2BAA2B;AAACiB,MAAAA,GAAG,EAAG2H,mBAAAA;KAAuB,CAAC,EACrE7I,IAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,KAAK,EAAC,cAAc;MAAAC,QAAA,EAAA,CAEvBF,IAAA,CAACiH,OAAO,EAAA;AAAC5G,QAAAA,IAAI,EAAC,iBAAiB;AAAAH,QAAAA,QAAA,GAG3B0I,cAAc,IAAIzI,GAAA,CAAC8G,OAAO,CAACS,UAAU,EAAA;AAAAxH,UAAAA,QAAA,EACnCC,GAAA,CAAA,QAAA,EAAA;AACEF,YAAAA,KAAK,EAAC,gBAAgB;AACtBuN,YAAAA,KAAK,EAAC,0BAA0B;AAChCpN,YAAAA,OAAO,EAAG8M,cAAgB;AAAAhN,YAAAA,QAAA,EAC3B,UAAA;WAAgB,CAAA;SACC,CAAC,EAIrB0I,cAAc,IAAIzI,GAAA,CAAC8G,OAAO,CAACS,UAAU,EAAA;AAAAxH,UAAAA,QAAA,EACnCC,GAAA,CAAA,QAAA,EAAA;AACEF,YAAAA,KAAK,EAAC,gBAAgB;AACtBG,YAAAA,OAAO,EAAGkN,cAAgB;AAAApN,YAAAA,QAAA,EAC3B,OAAA;WAAa,CAAA;SACI,CAAC,EAGvBC,GAAA,CAAA,KAAA,EAAA;AAAKe,UAAAA,GAAG,EAAG4H,kBAAoB;AAAC7I,UAAAA,KAAK,EAAC,wBAAA;AAAwB,SAAM,CAAC,CAAA;AAAA,OAC9D,CAAC,EACVE,GAAA,CAAC8G,OAAO,EAAA;AAAC5G,QAAAA,IAAI,EAAC,cAAc;AAAAH,QAAAA,QAAA,EAC1BC,GAAA,CAAA,KAAA,EAAA;AAAKe,UAAAA,GAAG,EAAG6H,gBAAkB;AAAC9I,UAAAA,KAAK,EAAC,wBAAA;SAA8B,CAAA;AAAC,OAC5D,CAAC,EACVE,GAAA,CAAC8G,OAAO,EAAA;AAAC5G,QAAAA,IAAI,EAAC,YAAY;AAAAH,QAAAA,QAAA,EACxBC,GAAA,CAAA,KAAA,EAAA;AAAKe,UAAAA,GAAG,EAAG8H,gBAAkB;AAAC/I,UAAAA,KAAK,EAAC,wBAAA;SAA8B,CAAA;AAAC,OAC5D,CAAC,EACVE,GAAA,CAAC8G,OAAO,EAAA;AAAC5G,QAAAA,IAAI,EAAC,aAAa;AAAAH,QAAAA,QAAA,EACzBC,GAAA,CAAA,KAAA,EAAA;AAAKe,UAAAA,GAAG,EAAG+H,kBAAoB;AAAChJ,UAAAA,KAAK,EAAC,wBAAA;SAA8B,CAAA;AAAC,OAC9D,CAAC,CAAA;KACP,CAAC,EACNE,GAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,KAAK,EAAC,8BAA8B;AAACiB,MAAAA,GAAG,EAAGgI,2BAAAA;AAA6B,KAAE,CAAC,CAAA;AAAA,GAC7E,CAAC,CAAA;AAEV,CAAA;;AAGA;;AAEA,SAASxD,QAAQA,CAACvE,GAAG,EAAE;EACrB,OAAOC,IAAI,CAACC,SAAS,CAACF,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AACxC,CAAA;AAEA,SAASiK,2BAA2BA,GAAG;AACrC,EAAA,MAAMqC,OAAO,GAAG5N,QAAQ,CAAC6N,aAAa,CAAC,GAAG,CAAC,CAAA;AAE3CD,EAAAA,OAAO,CAACE,SAAS,GAAG,mIAAmI,GACrJ,uCAAuC,GACvC,6BAA6B,CAAA;AAE/B,EAAA,OAAOF,OAAO,CAAA;AAChB;;ACpSO,SAASG,UAAUA,CAAC1L,OAAO,EAAE;EAElC,MAAM;AACJ4B,IAAAA,SAAS,EAAEgI,MAAM;IACjBvL,MAAM;IACNE,IAAI;IACJ,GAAGoN,IAAAA;AACL,GAAC,GAAG3L,OAAO,CAAA;AAEX,EAAA,MAAMoB,OAAO,GAAGC,IAAI,EAAE,CAAA;AAEtB,EAAA,IAAIvB,KAAK,GAAG;IAAEvB,IAAI;AAAEF,IAAAA,MAAAA;GAAQ,CAAA;AAC5B,EAAA,IAAIW,GAAG,CAAA;AAEP,EAAA,MAAM4C,SAAS,GAAGjE,QAAQ,CAAC6N,aAAa,CAAC,KAAK,CAAC,CAAA;AAE/C5J,EAAAA,SAAS,CAACgK,SAAS,CAAC/G,GAAG,CAAC,gBAAgB,CAAC,CAAA;AAEzC,EAAA,IAAI+E,MAAM,EAAE;AACVA,IAAAA,MAAM,CAACxF,WAAW,CAACxC,SAAS,CAAC,CAAA;AAC/B,GAAA;EAEA,MAAMiK,UAAU,GAAGC,QAAQ,CAAC,kBAAkB,EAAE,UAASC,KAAK,EAAE;AAC9D,IAAA,MAAMC,IAAI,GAAGD,KAAK,CAAC,CAAC,CAAC,CAAA;AAErB,IAAA,IAAIC,IAAI,EAAE;MACR,IAAI;QACFhN,GAAG,CAAC+I,SAAS,CAAC7I,IAAI,CAACsL,KAAK,CAACwB,IAAI,CAACC,QAAQ,CAAC,CAAC,CAAA;OACzC,CAAC,OAAOC,GAAG,EAAE;;AAEZ;AAAA,OAAA;AAEJ,KAAA;AACF,GAAC,CAAC,CAAA;AAEF,EAAA,MAAMC,OAAO,GAAG,UAASC,EAAE,EAAE;IAC3B,OAAO,UAAS,GAAGC,IAAI,EAAE;MACvB,IAAI,CAACrN,GAAG,EAAE;AACR,QAAA,MAAM,IAAIsN,KAAK,CAAC,gCAAgC,CAAC,CAAA;AACnD,OAAA;AAEA,MAAA,OAAOF,EAAE,CAAC,GAAGC,IAAI,CAAC,CAAA;KACnB,CAAA;GACF,CAAA;AAED,EAAA,MAAM/F,MAAM,GAAG,UAASiG,IAAI,EAAE;AAC5BvN,IAAAA,GAAG,GAAGuN,IAAI,CAAA;AACVnL,IAAAA,OAAO,CAACkC,IAAI,CAAC,qBAAqB,CAAC,CAAA;GACpC,CAAA;AAED1B,EAAAA,SAAS,CAAChE,gBAAgB,CAAC,UAAU,EAAEiO,UAAU,CAAC,CAAA;EAElDW,MAAM,CACJvO,GAAA,CAACyH,cAAc,EAAA;AACbnH,IAAAA,IAAI,EAAGA,IAAM;IACb+E,IAAI,EAAGlC,OAAO,CAACkC,IAAM;AACrBgD,IAAAA,MAAM,EAAGA,MAAQ;AACjBE,IAAAA,cAAc,EAAIiG,MAAM,IAAK3M,KAAK,GAAG2M,MAAQ;AAC7CpO,IAAAA,MAAM,EAAGA,MAAQ;IAAA,GACZsN,IAAAA;GACN,CAAC,EACF/J,SACF,CAAC,CAAA;AAED,EAAA,IAAI,CAACoC,EAAE,GAAG5C,OAAO,CAAC4C,EAAE,CAAA;AACpB,EAAA,IAAI,CAACC,GAAG,GAAG7C,OAAO,CAAC6C,GAAG,CAAA;AAEtB,EAAA,IAAI,CAACX,IAAI,GAAGlC,OAAO,CAACkC,IAAI,CAAA;AAExB,EAAA,IAAI,CAACU,EAAE,CAAC,SAAS,EAAE,YAAW;AAC5BwI,IAAAA,MAAM,CAAC,IAAI,EAAE5K,SAAS,CAAC,CAAA;AACzB,GAAC,CAAC,CAAA;AAEF,EAAA,IAAI,CAACoC,EAAE,CAAC,SAAS,EAAE,YAAW;AAC5B4F,IAAAA,MAAM,CAACrF,WAAW,CAAC3C,SAAS,CAAC,CAAA;AAC/B,GAAC,CAAC,CAAA;EAEF,IAAI,CAAC8K,QAAQ,GAAG,YAAW;AACzB,IAAA,OAAO5M,KAAK,CAAA;GACb,CAAA;EAED,IAAI,CAACgJ,SAAS,GAAGqD,OAAO,CAAC,MAAMnN,GAAG,CAAC8J,SAAS,EAAE,CAAC,CAAA;AAE/C,EAAA,IAAI,CAACf,SAAS,GAAGoE,OAAO,CAAE9N,MAAM,IAAKW,GAAG,CAAC+I,SAAS,CAAC1J,MAAM,CAAC,CAAC,CAAA;EAE3D,IAAI,CAAC0K,UAAU,GAAGoD,OAAO,CAAC,MAAMnN,GAAG,CAAC+J,UAAU,EAAE,CAAC,CAAA;AAEjD,EAAA,IAAI,CAACP,GAAG,GAAG2D,OAAO,CAAC,CAAChO,IAAI,EAAEsK,MAAM,KAAKzJ,GAAG,CAACwJ,GAAG,CAACrK,IAAI,EAAEsK,MAAM,CAAC,CAAC,CAAA;EAE3D,IAAI,CAACC,aAAa,GAAGyD,OAAO,CAAC,MAAMnN,GAAG,CAAC0J,aAAa,EAAE,CAAC,CAAA;EAEvD,IAAI,CAACC,SAAS,GAAGwD,OAAO,CAAC,MAAMnN,GAAG,CAAC2J,SAAS,EAAE,CAAC,CAAA;AAE/C,EAAA,IAAI,CAACC,OAAO,GAAGuD,OAAO,CAAC,CAAChO,IAAI,EAAEsK,MAAM,KAAKzJ,GAAG,CAAC4J,OAAO,CAACzK,IAAI,EAAEsK,MAAM,CAAC,CAAC,CAAA;EAEnE,IAAI,CAACI,aAAa,GAAGsD,OAAO,CAAC,MAAMnN,GAAG,CAAC6J,aAAa,EAAE,CAAC,CAAA;EAEvD,IAAI,CAACxE,OAAO,GAAG,YAAW;AACxB,IAAA,IAAI,CAACf,IAAI,CAAC,SAAS,CAAC,CAAA;GACrB,CAAA;AAED,EAAA,IAAI,CAAC6E,qBAAqB,GAAGgE,OAAO,CAAE3H,IAAI,IAAKxF,GAAG,CAACmJ,qBAAqB,CAAC3D,IAAI,CAAC,CAAC,CAAA;AAE/E,EAAA,IAAI,CAACmI,sBAAsB,GAAGR,OAAO,CAAE3H,IAAI,IAAKxF,GAAG,CAACoJ,mBAAmB,CAAC5D,IAAI,CAAC,CAAC,CAAA;AAE9E,EAAA,IAAI,CAAC0D,mBAAmB,GAAGiE,OAAO,CAAE3H,IAAI,IAAKxF,GAAG,CAACkJ,mBAAmB,CAAC1D,IAAI,CAAC,CAAC,CAAA;AAE3E,EAAA,IAAI,CAAC+D,qBAAqB,GAAG4D,OAAO,CAAE3H,IAAI,IAAKxF,GAAG,CAACuJ,qBAAqB,CAAC/D,IAAI,CAAC,CAAC,CAAA;AAE/E,EAAA,IAAI,CAAC6D,sBAAsB,GAAG8D,OAAO,CAAE3H,IAAI,IAAKxF,GAAG,CAACqJ,sBAAsB,CAAC7D,IAAI,CAAC,CAAC,CAAA;AAEjF,EAAA,IAAI,CAAC8D,8BAA8B,GAAG6D,OAAO,CAAE3H,IAAI,IAAKxF,GAAG,CAACsJ,8BAA8B,CAAC9D,IAAI,CAAC,CAAC,CAAA;AACnG;;;;"}
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../src/components/Modal.js","../src/components/EmbedModal.js","../src/components/autocompletion/VariablesFacet.js","../src/components/autocompletion/index.js","../src/components/JSONEditor.js","../src/components/Section.js","../src/components/PlaygroundRoot.js","../src/Playground.js"],"sourcesContent":["import { useEffect } from 'preact/hooks';\n\nexport function Modal(props) {\n\n useEffect(() => {\n function handleKey(event) {\n\n if (event.key === 'Escape') {\n event.stopPropagation();\n\n props.onClose();\n }\n }\n\n document.addEventListener('keydown', handleKey);\n\n return () => {\n document.removeEventListener('keydown', handleKey);\n };\n });\n\n return (\n <div class=\"fjs-pgl-modal\">\n <div class=\"fjs-pgl-modal-backdrop\" onClick={ props.onClose }></div>\n <div class=\"fjs-pgl-modal-content\">\n <h1 class=\"fjs-pgl-modal-header\">{ props.name }</h1>\n <div class=\"fjs-pgl-modal-body\">\n { props.children }\n </div>\n <div class=\"fjs-pgl-modal-footer\">\n <button type=\"button\" class=\"fjs-pgl-button fjs-pgl-button-default\" onClick={ props.onClose }>Close</button>\n </div>\n </div>\n </div>\n );\n}\n","import { useEffect, useRef } from 'preact/hooks';\n\nimport { Modal } from './Modal';\n\n\nexport function EmbedModal(props) {\n\n const schema = serializeValue(props.schema);\n const data = serializeValue(props.data || {});\n\n const fieldRef = useRef();\n\n const snippet = `<!-- styles needed for rendering -->\n<link rel=\"stylesheet\" href=\"https://unpkg.com/@bpmn-io/form-js@0.2.4/dist/assets/form-js.css\">\n\n<!-- container to render the form into -->\n<div class=\"fjs-pgl-form-container\"></div>\n\n<!-- scripts needed for embedding -->\n<script src=\"https://unpkg.com/@bpmn-io/form-js@0.2.4/dist/form-viewer.umd.js\"></script>\n\n<!-- actual script to instantiate the form and load form schema + data -->\n<script>\n const data = JSON.parse(${data});\n const schema = JSON.parse(${schema});\n\n const form = new FormViewer.Form({\n container: document.querySelector(\".fjs-pgl-form-container\")\n });\n\n form.on(\"submit\", (event) => {\n console.log(event.data, event.errors);\n });\n\n form.importSchema(schema, data).catch(err => {\n console.error(\"Failed to render form\", err);\n });\n</script>\n `.trim();\n\n useEffect(() => {\n fieldRef.current.select();\n });\n\n return (\n <Modal name=\"Embed form\" onClose={ props.onClose }>\n <p>Use the following HTML snippet to embed your form with <a href=\"https://github.com/bpmn-io/form-js\">form-js</a>:</p>\n\n <textarea spellCheck=\"false\" ref={ fieldRef }>{snippet}</textarea>\n </Modal>\n );\n}\n\n\n// helpers ///////////\n\nfunction serializeValue(obj) {\n return JSON.stringify(JSON.stringify(obj)).replace(/</g, '<').replace(/>/g, '>');\n}","import { Facet } from '@codemirror/state';\n\n/**\n * @type {Facet<import('..').Variables>} Variables\n */\nexport const variablesFacet = Facet.define();","import { autocompletion } from '@codemirror/autocomplete';\nimport { variablesFacet } from './VariablesFacet';\n\nimport { syntaxTree } from '@codemirror/language';\n\nexport function autocompletionExtension() {\n return [\n autocompletion({\n override: [\n completions\n ]\n })\n ];\n}\n\nfunction completions(context) {\n\n const variables = context.state.facet(variablesFacet)[0];\n\n const options = variables.map(v => ({\n label: v,\n type: 'variable'\n }));\n\n let nodeBefore = syntaxTree(context.state).resolve(context.pos, -1);\n\n // handle inside property name as explicit call\n if (nodeBefore.type.name === 'PropertyName') {\n context.explicit = true;\n }\n\n let word = context.matchBefore(/\\w*/);\n\n if (word.from == word.to && !context.explicit) {\n return null;\n }\n\n return {\n from: word.from,\n options\n };\n}","import mitt from 'mitt';\n\nimport { basicSetup } from 'codemirror';\nimport { EditorView, keymap, placeholder } from '@codemirror/view';\nimport { EditorState, Compartment } from '@codemirror/state';\nimport { lintGutter, linter } from '@codemirror/lint';\nimport { json, jsonParseLinter } from '@codemirror/lang-json';\nimport { indentWithTab } from '@codemirror/commands';\nimport { autocompletionExtension } from './autocompletion/index';\nimport { variablesFacet } from './autocompletion/VariablesFacet';\n\nimport {\n classes as domClasses\n} from 'min-dom';\n\nconst NO_LINT_CLS = 'fjs-no-json-lint';\n\n\n/**\n * @param {object} options\n * @param {boolean} [options.readonly]\n * @param {object} [options.contentAttributes]\n * @param {string | HTMLElement} [options.placeholder]\n */\nexport function JSONEditor(options = {}) {\n const {\n contentAttributes = {},\n placeholder: editorPlaceholder,\n readonly = false,\n } = options;\n\n const emitter = mitt();\n\n let language = new Compartment().of(json());\n let tabSize = new Compartment().of(EditorState.tabSize.of(2));\n\n let container = null;\n\n\n /**\n * @typedef {Array<string>} Variables\n */\n\n const autocompletionConf = new Compartment();\n\n const linterExtension = linter(jsonParseLinter());\n\n // this sets no-linting mode if placeholders are present\n const placeholderLinterExtension = linter(view => {\n const placeholders = view.dom.querySelectorAll('.cm-placeholder');\n\n if (placeholders.length > 0) {\n set(container, NO_LINT_CLS);\n } else {\n unset(container, NO_LINT_CLS);\n }\n\n return [];\n });\n\n function createState(doc, extensions = [], variables = []) {\n return EditorState.create({\n doc,\n extensions: [\n basicSetup,\n language,\n tabSize,\n linterExtension,\n placeholderLinterExtension,\n lintGutter(),\n autocompletionConf.of(variablesFacet.of(variables)),\n autocompletionExtension(),\n keymap.of([ indentWithTab ]),\n editorPlaceholder ? placeholder(editorPlaceholder) : [],\n ...extensions\n ]\n });\n }\n\n function createView(readonly) {\n\n const updateListener = EditorView.updateListener.of(update => {\n if (update.docChanged) {\n emitter.emit('changed', {\n value: update.view.state.doc.toString()\n });\n }\n });\n\n const editable = EditorView.editable.of(!readonly);\n\n const contentAttributesExtension = EditorView.contentAttributes.of(contentAttributes);\n\n const view = new EditorView({\n state: createState('', [ updateListener, editable, contentAttributesExtension ])\n });\n\n view.setValue = function(value) {\n this.setState(createState(value, [ updateListener, editable, contentAttributesExtension ]));\n };\n\n view.setVariables = function(variables) {\n this.setState(createState(\n view.state.doc.toString(),\n [ updateListener, editable, contentAttributesExtension ],\n variables\n ));\n };\n\n return view;\n }\n\n const view = this._view = createView(readonly);\n\n this.setValue = function(value) {\n view.setValue(value);\n };\n\n this.getValue = function() {\n return view.state.doc.toString();\n };\n\n /**\n * @param {Variables} variables\n */\n this.setVariables = function(variables) {\n view.setVariables(variables);\n };\n\n this.on = emitter.on;\n this.off = emitter.off;\n this.emit = emitter.emit;\n\n this.attachTo = function(_container) {\n container = _container;\n container.appendChild(view.dom);\n };\n\n this.destroy = function() {\n if (view.dom.parentNode) {\n view.dom.parentNode.removeChild(view.dom);\n }\n\n view.destroy();\n };\n}\n\n// helpers //////////////////////\n\n\nfunction set(node, cls) {\n const classes = domClasses(node, document.body);\n classes.add(cls);\n}\n\nfunction unset(node, cls) {\n const classes = domClasses(node, document.body);\n classes.remove(cls);\n}\n","export function Section(props) {\n\n const elements =\n Array.isArray(props.children)\n ? props.children :\n [ props.children ];\n\n const {\n headerItems,\n children\n } = elements.reduce((_, child) => {\n const bucket =\n child.type === Section.HeaderItem\n ? _.headerItems\n : _.children;\n\n bucket.push(child);\n\n return _;\n }, { headerItems: [], children: [] });\n\n return (\n <div class=\"fjs-pgl-section\">\n <h1 class=\"header\">{ props.name } { headerItems.length ? <span class=\"header-items\">{ headerItems }</span> : null }</h1>\n <div class=\"body\">\n { children }\n </div>\n </div>\n );\n}\n\nSection.HeaderItem = function(props) {\n return props.children;\n};","import { useRef, useEffect, useState, useCallback } from 'preact/hooks';\nimport { isFunction } from 'min-dash';\nimport download from 'downloadjs';\n\nimport classNames from 'classnames';\n\nimport {\n Form,\n getSchemaVariables\n} from '@bpmn-io/form-js-viewer';\n\nimport {\n FormEditor\n} from '@bpmn-io/form-js-editor';\n\nimport { EmbedModal } from './EmbedModal';\nimport { JSONEditor } from './JSONEditor';\nimport { Section } from './Section';\n\n\nimport './FileDrop.css';\nimport './PlaygroundRoot.css';\n\n\nexport function PlaygroundRoot(props) {\n\n const {\n additionalModules = [], // goes into both editor + viewer\n actions: actionsConfig = {},\n emit,\n exporter: exporterConfig = {},\n viewerProperties = {},\n editorProperties = {},\n viewerAdditionalModules = [],\n editorAdditionalModules = [],\n propertiesPanel: propertiesPanelConfig = {},\n onInit: onPlaygroundInit,\n onStateChanged\n } = props;\n\n const {\n display: displayActions = true\n } = actionsConfig;\n\n const paletteContainerRef = useRef();\n const editorContainerRef = useRef();\n const formContainerRef = useRef();\n const dataContainerRef = useRef();\n const resultContainerRef = useRef();\n const propertiesPanelContainerRef = useRef();\n\n const paletteRef = useRef();\n const formEditorRef = useRef();\n const formRef = useRef();\n const dataEditorRef = useRef();\n const resultViewRef = useRef();\n const propertiesPanelRef = useRef();\n\n const [ showEmbed, setShowEmbed ] = useState(false);\n\n const [ initialData ] = useState(props.data || undefined);\n const [ initialSchema, setInitialSchema ] = useState(props.schema);\n\n const [ data, setData ] = useState(props.data || {});\n const [ schema, setSchema ] = useState(props.schema);\n\n const [ resultData, setResultData ] = useState({});\n\n // pipe to playground API\n useEffect(() => {\n onPlaygroundInit({\n attachDataContainer: (node) => dataEditorRef.current.attachTo(node),\n attachEditorContainer: (node) => formEditorRef.current.attachTo(node),\n attachFormContainer: (node) => formRef.current.attachTo(node),\n attachPaletteContainer: (node) => paletteRef.current.attachTo(node),\n attachPropertiesPanelContainer: (node) => propertiesPanelRef.current.attachTo(node),\n attachResultContainer: (node) => resultViewRef.current.attachTo(node),\n get: (name, strict) => formEditorRef.current.get(name, strict),\n getDataEditor: () => dataEditorRef.current,\n getEditor: () => formEditorRef.current,\n getForm: () => formRef.current,\n getResultView: () => resultViewRef.current,\n getSchema: () => formEditorRef.current.getSchema(),\n setSchema: setInitialSchema,\n saveSchema: () => formEditorRef.current.saveSchema()\n });\n }, [ onPlaygroundInit ]);\n\n useEffect(() => {\n setInitialSchema(props.schema || {});\n }, [ props.schema ]);\n\n useEffect(() => {\n const dataEditor = dataEditorRef.current = new JSONEditor({\n value: toString(data),\n contentAttributes: { 'aria-label': 'Form Input', tabIndex: 0 },\n placeholder: createDataEditorPlaceholder()\n });\n\n const resultView = resultViewRef.current = new JSONEditor({\n readonly: true,\n value: toString(resultData),\n contentAttributes: { 'aria-label': 'Form Output', tabIndex: 0 }\n });\n\n const form = formRef.current = new Form({\n additionalModules: [\n ...additionalModules,\n ...viewerAdditionalModules\n ],\n properties: {\n ...viewerProperties,\n 'ariaLabel': 'Form Preview'\n }\n });\n\n const formEditor = formEditorRef.current = new FormEditor({\n renderer: {\n compact: true\n },\n palette: {\n parent: paletteContainerRef.current\n },\n propertiesPanel: {\n parent: propertiesPanelContainerRef.current,\n ...propertiesPanelConfig\n },\n exporter: exporterConfig,\n properties: {\n ...editorProperties,\n 'ariaLabel': 'Form Definition'\n },\n additionalModules: [\n ...additionalModules,\n ...editorAdditionalModules\n ]\n });\n\n paletteRef.current = formEditor.get('palette');\n propertiesPanelRef.current = formEditor.get('propertiesPanel');\n\n formEditor.on('formField.add', ({ formField }) => {\n const formFields = formEditor.get('formFields');\n const { config } = formFields.get(formField.type);\n const { generateInitialDemoData } = config;\n const { id } = formField;\n\n if (!isFunction(generateInitialDemoData)) {\n return;\n }\n\n const initialDemoData = generateInitialDemoData(formField);\n\n if ([ initialDemoData, id ].includes(undefined)) {\n return;\n }\n\n setData((currentData) => {\n const newData = {\n ...currentData,\n [id]: initialDemoData,\n };\n\n dataEditorRef.current.setValue(\n toString(newData)\n );\n\n return newData;\n });\n });\n\n formEditor.on('changed', () => {\n setSchema(formEditor.getSchema());\n });\n\n formEditor.on('formEditor.rendered', () => {\n\n // notify interested parties after render\n emit('formPlayground.rendered');\n });\n\n form.on('changed', () => {\n setResultData(form._getSubmitData());\n });\n\n dataEditor.on('changed', event => {\n try {\n setData(JSON.parse(event.value));\n } catch (error) {\n\n // notify interested about input data error\n emit('formPlayground.inputDataError', error);\n }\n });\n\n const formContainer = formContainerRef.current;\n const editorContainer = editorContainerRef.current;\n const dataContainer = dataContainerRef.current;\n const resultContainer = resultContainerRef.current;\n\n dataEditor.attachTo(dataContainer);\n resultView.attachTo(resultContainer);\n form.attachTo(formContainer);\n formEditor.attachTo(editorContainer);\n\n return () => {\n dataEditor.destroy();\n resultView.destroy();\n form.destroy();\n formEditor.destroy();\n };\n }, []);\n\n useEffect(() => {\n dataEditorRef.current.setValue(toString(initialData));\n }, [ initialData ]);\n\n useEffect(() => {\n if (initialSchema) {\n formEditorRef.current.importSchema(initialSchema);\n dataEditorRef.current.setVariables(getSchemaVariables(initialSchema));\n }\n }, [ initialSchema ]);\n\n useEffect(() => {\n if (schema && dataContainerRef.current) {\n const variables = getSchemaVariables(schema);\n dataEditorRef.current.setVariables(variables);\n }\n }, [ schema ]);\n\n useEffect(() => {\n schema && formRef.current.importSchema(schema, data);\n }, [ schema, data ]);\n\n useEffect(() => {\n resultViewRef.current.setValue(toString(resultData));\n }, [ resultData ]);\n\n useEffect(() => {\n onStateChanged && onStateChanged({\n schema,\n data\n });\n }, [ onStateChanged, schema, data ]);\n\n const handleDownload = useCallback(() => {\n\n download(JSON.stringify(schema, null, ' '), 'form.json', 'text/json');\n }, [ schema ]);\n\n const hideEmbedModal = useCallback(() => {\n setShowEmbed(false);\n }, []);\n\n const showEmbedModal = useCallback(() => {\n setShowEmbed(true);\n }, []);\n\n return (\n <div class={ classNames(\n 'fjs-container',\n 'fjs-pgl-root'\n ) }>\n <div class=\"fjs-pgl-modals\">\n { showEmbed ? <EmbedModal schema={ schema } data={ data } onClose={ hideEmbedModal } /> : null }\n </div>\n <div class=\"fjs-pgl-palette-container\" ref={ paletteContainerRef } />\n <div class=\"fjs-pgl-main\">\n\n <Section name=\"Form Definition\">\n\n {\n displayActions && <Section.HeaderItem>\n <button\n type=\"button\"\n class=\"fjs-pgl-button\"\n title=\"Download form definition\"\n onClick={ handleDownload }\n >Download</button>\n </Section.HeaderItem>\n }\n\n {\n displayActions && <Section.HeaderItem>\n <button\n type=\"button\"\n class=\"fjs-pgl-button\"\n onClick={ showEmbedModal }\n >Embed</button>\n </Section.HeaderItem>\n }\n\n <div ref={ editorContainerRef } class=\"fjs-pgl-form-container\"></div>\n </Section>\n <Section name=\"Form Preview\">\n <div ref={ formContainerRef } class=\"fjs-pgl-form-container\"></div>\n </Section>\n <Section name=\"Form Input\">\n <div ref={ dataContainerRef } class=\"fjs-pgl-text-container\"></div>\n </Section>\n <Section name=\"Form Output\">\n <div ref={ resultContainerRef } class=\"fjs-pgl-text-container\"></div>\n </Section>\n </div>\n <div class=\"fjs-pgl-properties-container\" ref={ propertiesPanelContainerRef } />\n </div>\n );\n}\n\n\n// helpers ///////////////\n\nfunction toString(obj) {\n return JSON.stringify(obj, null, ' ');\n}\n\nfunction createDataEditorPlaceholder() {\n const element = document.createElement('p');\n\n element.innerHTML = 'Use this panel to simulate the form input, such as process variables.\\nThis helps to test the form by populating the preview.\\n\\n' +\n 'Follow the JSON format like this:\\n\\n' +\n '{\\n \"variable\": \"value\"\\n}';\n\n return element;\n}","import { render } from 'preact';\n\nimport fileDrop from 'file-drops';\n\nimport mitt from 'mitt';\n\nimport { PlaygroundRoot } from './components/PlaygroundRoot';\n\n/**\n * @typedef { import('@bpmn-io/form-js-viewer/dist/types/types').FormProperties } FormProperties\n * @typedef { import('@bpmn-io/form-js-editor/dist/types/types').FormEditorProperties } FormEditorProperties\n *\n * @typedef { {\n * actions?: { display: Boolean }\n * additionalModules?: Array<any>\n * container?: Element\n * data: any\n * editor?: { inlinePropertiesPanel: Boolean }\n * editorAdditionalModules?: Array<any>\n * editorProperties?: FormEditorProperties\n * exporter?: { name: String, version: String }\n * propertiesPanel?: { parent: Element, feelPopupContainer: Element }\n * schema: any\n * viewerAdditionalModules?: Array<any>\n * viewerProperties?: FormProperties\n * } } FormPlaygroundOptions\n */\n\n/**\n * @param {FormPlaygroundOptions} options\n */\nexport function Playground(options) {\n\n const {\n container: parent,\n schema,\n data,\n ...rest\n } = options;\n\n const emitter = mitt();\n\n let state = { data, schema };\n let ref;\n\n const container = document.createElement('div');\n\n container.classList.add('fjs-pgl-parent');\n\n if (parent) {\n parent.appendChild(container);\n }\n\n const handleDrop = fileDrop('Drop a form file', function(files) {\n const file = files[0];\n\n if (file) {\n try {\n ref.setSchema(JSON.parse(file.contents));\n } catch (err) {\n\n // TODO(nikku): indicate JSON parse error\n }\n }\n });\n\n const withRef = function(fn) {\n return function(...args) {\n if (!ref) {\n throw new Error('Playground is not initialized.');\n }\n\n return fn(...args);\n };\n };\n\n const onInit = function(_ref) {\n ref = _ref;\n emitter.emit('formPlayground.init');\n };\n\n container.addEventListener('dragover', handleDrop);\n\n render(\n <PlaygroundRoot\n data={ data }\n emit={ emitter.emit }\n onInit={ onInit }\n onStateChanged={ (_state) => state = _state }\n schema={ schema }\n { ...rest }\n />,\n container\n );\n\n this.on = emitter.on;\n this.off = emitter.off;\n\n this.emit = emitter.emit;\n\n this.on('destroy', function() {\n render(null, container);\n });\n\n this.on('destroy', function() {\n parent.removeChild(container);\n });\n\n this.getState = function() {\n return state;\n };\n\n this.getSchema = withRef(() => ref.getSchema());\n\n this.setSchema = withRef((schema) => ref.setSchema(schema));\n\n this.saveSchema = withRef(() => ref.saveSchema());\n\n this.get = withRef((name, strict) => ref.get(name, strict));\n\n this.getDataEditor = withRef(() => ref.getDataEditor());\n\n this.getEditor = withRef(() => ref.getEditor());\n\n this.getForm = withRef((name, strict) => ref.getForm(name, strict));\n\n this.getResultView = withRef(() => ref.getResultView());\n\n this.destroy = function() {\n this.emit('destroy');\n };\n\n this.attachEditorContainer = withRef((node) => ref.attachEditorContainer(node));\n\n this.attachPreviewContainer = withRef((node) => ref.attachFormContainer(node));\n\n this.attachDataContainer = withRef((node) => ref.attachDataContainer(node));\n\n this.attachResultContainer = withRef((node) => ref.attachResultContainer(node));\n\n this.attachPaletteContainer = withRef((node) => ref.attachPaletteContainer(node));\n\n this.attachPropertiesPanelContainer = withRef((node) => ref.attachPropertiesPanelContainer(node));\n}"],"names":["Modal","props","useEffect","handleKey","event","key","stopPropagation","onClose","document","addEventListener","removeEventListener","_jsxs","class","children","_jsx","onClick","name","type","EmbedModal","schema","serializeValue","data","fieldRef","useRef","snippet","trim","current","select","href","spellCheck","ref","obj","JSON","stringify","replace","variablesFacet","Facet","define","autocompletionExtension","autocompletion","override","completions","context","variables","state","facet","options","map","v","label","nodeBefore","syntaxTree","resolve","pos","explicit","word","matchBefore","from","to","NO_LINT_CLS","JSONEditor","contentAttributes","placeholder","editorPlaceholder","readonly","emitter","mitt","language","Compartment","of","json","tabSize","EditorState","container","autocompletionConf","linterExtension","linter","jsonParseLinter","placeholderLinterExtension","view","placeholders","dom","querySelectorAll","length","set","unset","createState","doc","extensions","create","basicSetup","lintGutter","keymap","indentWithTab","createView","updateListener","EditorView","update","docChanged","emit","value","toString","editable","contentAttributesExtension","setValue","setState","setVariables","_view","getValue","on","off","attachTo","_container","appendChild","destroy","parentNode","removeChild","node","cls","classes","domClasses","body","add","remove","Section","elements","Array","isArray","headerItems","reduce","_","child","bucket","HeaderItem","push","PlaygroundRoot","additionalModules","actions","actionsConfig","exporter","exporterConfig","viewerProperties","editorProperties","viewerAdditionalModules","editorAdditionalModules","propertiesPanel","propertiesPanelConfig","onInit","onPlaygroundInit","onStateChanged","display","displayActions","paletteContainerRef","editorContainerRef","formContainerRef","dataContainerRef","resultContainerRef","propertiesPanelContainerRef","paletteRef","formEditorRef","formRef","dataEditorRef","resultViewRef","propertiesPanelRef","showEmbed","setShowEmbed","useState","initialData","undefined","initialSchema","setInitialSchema","setData","setSchema","resultData","setResultData","attachDataContainer","attachEditorContainer","attachFormContainer","attachPaletteContainer","attachPropertiesPanelContainer","attachResultContainer","get","strict","getDataEditor","getEditor","getForm","getResultView","getSchema","saveSchema","dataEditor","tabIndex","createDataEditorPlaceholder","resultView","form","Form","properties","formEditor","FormEditor","renderer","compact","palette","parent","formField","formFields","config","generateInitialDemoData","id","isFunction","initialDemoData","includes","currentData","newData","_getSubmitData","parse","error","formContainer","editorContainer","dataContainer","resultContainer","importSchema","getSchemaVariables","handleDownload","useCallback","download","hideEmbedModal","showEmbedModal","classNames","title","element","createElement","innerHTML","Playground","rest","classList","handleDrop","fileDrop","files","file","contents","err","withRef","fn","args","Error","_ref","render","_state","getState","attachPreviewContainer"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bpmn-io/form-js-playground",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.3",
|
|
4
4
|
"description": "A form-js playground",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist"
|
|
@@ -44,8 +44,8 @@
|
|
|
44
44
|
"url": "https://github.com/bpmn-io"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@bpmn-io/form-js-editor": "^1.7.
|
|
48
|
-
"@bpmn-io/form-js-viewer": "^1.7.
|
|
47
|
+
"@bpmn-io/form-js-editor": "^1.7.3",
|
|
48
|
+
"@bpmn-io/form-js-viewer": "^1.7.3",
|
|
49
49
|
"@codemirror/autocomplete": "^6.12.0",
|
|
50
50
|
"@codemirror/commands": "^6.1.2",
|
|
51
51
|
"@codemirror/lang-json": "^6.0.1",
|
|
@@ -70,5 +70,5 @@
|
|
|
70
70
|
"rollup-plugin-css-only": "^4.0.0",
|
|
71
71
|
"style-loader": "^3.3.0"
|
|
72
72
|
},
|
|
73
|
-
"gitHead": "
|
|
73
|
+
"gitHead": "495efb051b4ff6a8f8abebedd035a95651345f9f"
|
|
74
74
|
}
|