e811821ac7
* updates regex-validator component to optionally show pattern input and adds capture groups support * adds form-field-label component * adds autocomplete-input component * updates kv-object-editor component to yield block for value and glimmerizes * updates transform template model * adds transform-advanced-templating component * updates form-field with child component changes * updates transform template serializer to handle differences in regex named capture groups * fixes regex-validator test * adds changelog entry * updates for pr review feedback * reverts kv-object-editor guidFor removal
38 lines
1,022 B
JavaScript
38 lines
1,022 B
JavaScript
import Component from '@glimmer/component';
|
|
import { tracked } from '@glimmer/tracking';
|
|
import { action, set } from '@ember/object';
|
|
|
|
/**
|
|
* @module TransformAdvancedTemplating
|
|
* TransformAdvancedTemplating components are used to modify encode/decode formats of transform templates
|
|
*
|
|
* @example
|
|
* ```js
|
|
* <TransformAdvancedTemplating @model={{this.model}} />
|
|
* ```
|
|
* @param {Object} model - transform template model
|
|
*/
|
|
|
|
export default class TransformAdvancedTemplating extends Component {
|
|
@tracked inputOptions = [];
|
|
|
|
@action
|
|
setInputOptions(testValue, captureGroups) {
|
|
if (captureGroups && captureGroups.length) {
|
|
this.inputOptions = captureGroups.map(({ position, value }) => {
|
|
return {
|
|
label: `${position}: ${value}`,
|
|
value: position,
|
|
};
|
|
});
|
|
} else {
|
|
this.inputOptions = [];
|
|
}
|
|
}
|
|
@action
|
|
decodeFormatValueChange(kvObject, kvData, value) {
|
|
set(kvObject, 'value', value);
|
|
this.args.model.decodeFormats = kvData.toJSON();
|
|
}
|
|
}
|