@dereekb/dbx-form 9.16.1 → 9.16.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.
@@ -1,20 +1,34 @@
1
+ import { asObservable } from '@dereekb/rxjs';
2
+ import { map } from 'rxjs';
1
3
  import { formlyField, propsAndConfigForFieldConfig } from '../field';
2
4
  export function valueSelectionField(config) {
3
- const { key, native = false, selectAllOption: inputSelectAllOption } = config;
5
+ const { key, native = false, addClearOption = false, selectAllOption: inputSelectAllOption, options: inputOptions } = config;
4
6
  let selectAllOptionConfig;
5
7
  if (inputSelectAllOption) {
6
8
  selectAllOptionConfig = {
7
9
  selectAllOption: typeof inputSelectAllOption === 'boolean' ? 'Select All' : inputSelectAllOption
8
10
  };
9
11
  }
12
+ const options = addClearOption ? asObservable(inputOptions).pipe(map(addValueSelectionOptionFunction(typeof addClearOption === 'string' ? addClearOption : undefined))) : inputOptions;
10
13
  return formlyField({
11
14
  key,
12
15
  type: native ? 'native-select' : 'select',
13
16
  ...propsAndConfigForFieldConfig(config, {
14
- options: config.options,
17
+ options,
15
18
  multiple: config.multiple ?? false,
16
19
  ...selectAllOptionConfig
17
20
  })
18
21
  });
19
22
  }
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLmZpZWxkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vc3JjL2xpYi9mb3JtbHkvZmllbGQvc2VsZWN0aW9uL3NlbGVjdGlvbi5maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQTBCLFdBQVcsRUFBc0IsNEJBQTRCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFvQmpILE1BQU0sVUFBVSxtQkFBbUIsQ0FBSSxNQUFvQztJQUN6RSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sR0FBRyxLQUFLLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQzlFLElBQUkscUJBQXlELENBQUM7SUFFOUQsSUFBSSxvQkFBb0IsRUFBRTtRQUN4QixxQkFBcUIsR0FBRztZQUN0QixlQUFlLEVBQUUsT0FBTyxvQkFBb0IsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUUsb0JBQStCO1NBQzdHLENBQUM7S0FDSDtJQUVELE9BQU8sV0FBVyxDQUFDO1FBQ2pCLEdBQUc7UUFDSCxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLFFBQVE7UUFDekMsR0FBRyw0QkFBNEIsQ0FBQyxNQUFNLEVBQUU7WUFDdEMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO1lBQ3ZCLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxJQUFJLEtBQUs7WUFDbEMsR0FBRyxxQkFBcUI7U0FDekIsQ0FBQztLQUNILENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlT3JWYWx1ZSB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IEZvcm1seUZpZWxkQ29uZmlnIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyBEZXNjcmlwdGlvbkZpZWxkQ29uZmlnLCBmb3JtbHlGaWVsZCwgTGFiZWxlZEZpZWxkQ29uZmlnLCBwcm9wc0FuZENvbmZpZ0ZvckZpZWxkQ29uZmlnIH0gZnJvbSAnLi4vZmllbGQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFZhbHVlU2VsZWN0aW9uT3B0aW9uPFQ+IHtcbiAgdmFsdWU6IFQ7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWYWx1ZVNlbGVjdGlvbkZpZWxkQ29uZmlnPFQ+IGV4dGVuZHMgTGFiZWxlZEZpZWxkQ29uZmlnLCBEZXNjcmlwdGlvbkZpZWxkQ29uZmlnIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIHVzZSB0aGUgbmF0aXZlIHNlbGVjdC5cbiAgICpcbiAgICogQmUgc3VyZSB0byBpbXBvcnQgRm9ybWx5TWF0TmF0aXZlU2VsZWN0TW9kdWxlLlxuICAgKi9cbiAgbmF0aXZlPzogYm9vbGVhbjtcbiAgb3B0aW9uczogT2JzZXJ2YWJsZU9yVmFsdWU8VmFsdWVTZWxlY3Rpb25PcHRpb248VD5bXT47XG4gIG11bHRpcGxlPzogYm9vbGVhbjtcbiAgc2VsZWN0QWxsT3B0aW9uPzogdHJ1ZSB8IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbHVlU2VsZWN0aW9uRmllbGQ8VD4oY29uZmlnOiBWYWx1ZVNlbGVjdGlvbkZpZWxkQ29uZmlnPFQ+KTogRm9ybWx5RmllbGRDb25maWcge1xuICBjb25zdCB7IGtleSwgbmF0aXZlID0gZmFsc2UsIHNlbGVjdEFsbE9wdGlvbjogaW5wdXRTZWxlY3RBbGxPcHRpb24gfSA9IGNvbmZpZztcbiAgbGV0IHNlbGVjdEFsbE9wdGlvbkNvbmZpZzogTWF5YmU8eyBzZWxlY3RBbGxPcHRpb246IHN0cmluZyB9PjtcblxuICBpZiAoaW5wdXRTZWxlY3RBbGxPcHRpb24pIHtcbiAgICBzZWxlY3RBbGxPcHRpb25Db25maWcgPSB7XG4gICAgICBzZWxlY3RBbGxPcHRpb246IHR5cGVvZiBpbnB1dFNlbGVjdEFsbE9wdGlvbiA9PT0gJ2Jvb2xlYW4nID8gJ1NlbGVjdCBBbGwnIDogKGlucHV0U2VsZWN0QWxsT3B0aW9uIGFzIHN0cmluZylcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIGZvcm1seUZpZWxkKHtcbiAgICBrZXksXG4gICAgdHlwZTogbmF0aXZlID8gJ25hdGl2ZS1zZWxlY3QnIDogJ3NlbGVjdCcsXG4gICAgLi4ucHJvcHNBbmRDb25maWdGb3JGaWVsZENvbmZpZyhjb25maWcsIHtcbiAgICAgIG9wdGlvbnM6IGNvbmZpZy5vcHRpb25zLFxuICAgICAgbXVsdGlwbGU6IGNvbmZpZy5tdWx0aXBsZSA/PyBmYWxzZSxcbiAgICAgIC4uLnNlbGVjdEFsbE9wdGlvbkNvbmZpZ1xuICAgIH0pXG4gIH0pO1xufVxuIl19
23
+ export function addValueSelectionOptionFunction(label) {
24
+ return (options) => {
25
+ const hasClear = options.findIndex((x) => x.clear) !== -1;
26
+ if (hasClear) {
27
+ return options;
28
+ }
29
+ else {
30
+ return [{ label, clear: true }, ...options];
31
+ }
32
+ };
33
+ }
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLmZpZWxkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vc3JjL2xpYi9mb3JtbHkvZmllbGQvc2VsZWN0aW9uL3NlbGVjdGlvbi5maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUdoRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNCLE9BQU8sRUFBMEIsV0FBVyxFQUFzQiw0QkFBNEIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQStCakgsTUFBTSxVQUFVLG1CQUFtQixDQUFJLE1BQW9DO0lBQ3pFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxHQUFHLEtBQUssRUFBRSxjQUFjLEdBQUcsS0FBSyxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQzdILElBQUkscUJBQXlELENBQUM7SUFFOUQsSUFBSSxvQkFBb0IsRUFBRTtRQUN4QixxQkFBcUIsR0FBRztZQUN0QixlQUFlLEVBQUUsT0FBTyxvQkFBb0IsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUUsb0JBQStCO1NBQzdHLENBQUM7S0FDSDtJQUVELE1BQU0sT0FBTyxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsK0JBQStCLENBQUMsT0FBTyxjQUFjLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO0lBRXZMLE9BQU8sV0FBVyxDQUFDO1FBQ2pCLEdBQUc7UUFDSCxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLFFBQVE7UUFDekMsR0FBRyw0QkFBNEIsQ0FBQyxNQUFNLEVBQUU7WUFDdEMsT0FBTztZQUNQLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxJQUFJLEtBQUs7WUFDbEMsR0FBRyxxQkFBcUI7U0FDekIsQ0FBQztLQUNILENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsK0JBQStCLENBQUksS0FBMEI7SUFDM0UsT0FBTyxDQUFDLE9BQWtDLEVBQUUsRUFBRTtRQUM1QyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBRSxDQUErQixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBRXpGLElBQUksUUFBUSxFQUFFO1lBQ1osT0FBTyxPQUFPLENBQUM7U0FDaEI7YUFBTTtZQUNMLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztTQUM3QztJQUNILENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhc09ic2VydmFibGUsIE9ic2VydmFibGVPclZhbHVlIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWcgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGVzY3JpcHRpb25GaWVsZENvbmZpZywgZm9ybWx5RmllbGQsIExhYmVsZWRGaWVsZENvbmZpZywgcHJvcHNBbmRDb25maWdGb3JGaWVsZENvbmZpZyB9IGZyb20gJy4uL2ZpZWxkJztcblxuZXhwb3J0IGludGVyZmFjZSBWYWx1ZVNlbGVjdGlvbk9wdGlvbldpdGhWYWx1ZTxUPiB7XG4gIHZhbHVlOiBUO1xuICBsYWJlbDogc3RyaW5nO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmFsdWVTZWxlY3Rpb25PcHRpb25DbGVhciB7XG4gIGxhYmVsPzogc3RyaW5nO1xuICBjbGVhcjogdHJ1ZTtcbn1cblxuZXhwb3J0IHR5cGUgVmFsdWVTZWxlY3Rpb25PcHRpb248VD4gPSBWYWx1ZVNlbGVjdGlvbk9wdGlvbldpdGhWYWx1ZTxUPiB8IFZhbHVlU2VsZWN0aW9uT3B0aW9uQ2xlYXI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmFsdWVTZWxlY3Rpb25GaWVsZENvbmZpZzxUPiBleHRlbmRzIExhYmVsZWRGaWVsZENvbmZpZywgRGVzY3JpcHRpb25GaWVsZENvbmZpZyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byB1c2UgdGhlIG5hdGl2ZSBzZWxlY3QuXG4gICAqXG4gICAqIEJlIHN1cmUgdG8gaW1wb3J0IEZvcm1seU1hdE5hdGl2ZVNlbGVjdE1vZHVsZS5cbiAgICovXG4gIG5hdGl2ZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBhZGQgYSBjbGVhciBvcHRpb24gdG8gdGhlIGlucHV0IHZhbHVlcy4gSWYgdXNpbmcgYW4gb2JzZXJ2YWJsZSwgdGhpc1xuICAgKi9cbiAgYWRkQ2xlYXJPcHRpb24/OiBzdHJpbmcgfCBib29sZWFuO1xuICBvcHRpb25zOiBPYnNlcnZhYmxlT3JWYWx1ZTxWYWx1ZVNlbGVjdGlvbk9wdGlvbjxUPltdPjtcbiAgbXVsdGlwbGU/OiBib29sZWFuO1xuICBzZWxlY3RBbGxPcHRpb24/OiB0cnVlIHwgc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsdWVTZWxlY3Rpb25GaWVsZDxUPihjb25maWc6IFZhbHVlU2VsZWN0aW9uRmllbGRDb25maWc8VD4pOiBGb3JtbHlGaWVsZENvbmZpZyB7XG4gIGNvbnN0IHsga2V5LCBuYXRpdmUgPSBmYWxzZSwgYWRkQ2xlYXJPcHRpb24gPSBmYWxzZSwgc2VsZWN0QWxsT3B0aW9uOiBpbnB1dFNlbGVjdEFsbE9wdGlvbiwgb3B0aW9uczogaW5wdXRPcHRpb25zIH0gPSBjb25maWc7XG4gIGxldCBzZWxlY3RBbGxPcHRpb25Db25maWc6IE1heWJlPHsgc2VsZWN0QWxsT3B0aW9uOiBzdHJpbmcgfT47XG5cbiAgaWYgKGlucHV0U2VsZWN0QWxsT3B0aW9uKSB7XG4gICAgc2VsZWN0QWxsT3B0aW9uQ29uZmlnID0ge1xuICAgICAgc2VsZWN0QWxsT3B0aW9uOiB0eXBlb2YgaW5wdXRTZWxlY3RBbGxPcHRpb24gPT09ICdib29sZWFuJyA/ICdTZWxlY3QgQWxsJyA6IChpbnB1dFNlbGVjdEFsbE9wdGlvbiBhcyBzdHJpbmcpXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IG9wdGlvbnMgPSBhZGRDbGVhck9wdGlvbiA/IGFzT2JzZXJ2YWJsZShpbnB1dE9wdGlvbnMpLnBpcGUobWFwKGFkZFZhbHVlU2VsZWN0aW9uT3B0aW9uRnVuY3Rpb24odHlwZW9mIGFkZENsZWFyT3B0aW9uID09PSAnc3RyaW5nJyA/IGFkZENsZWFyT3B0aW9uIDogdW5kZWZpbmVkKSkpIDogaW5wdXRPcHRpb25zO1xuXG4gIHJldHVybiBmb3JtbHlGaWVsZCh7XG4gICAga2V5LFxuICAgIHR5cGU6IG5hdGl2ZSA/ICduYXRpdmUtc2VsZWN0JyA6ICdzZWxlY3QnLFxuICAgIC4uLnByb3BzQW5kQ29uZmlnRm9yRmllbGRDb25maWcoY29uZmlnLCB7XG4gICAgICBvcHRpb25zLFxuICAgICAgbXVsdGlwbGU6IGNvbmZpZy5tdWx0aXBsZSA/PyBmYWxzZSxcbiAgICAgIC4uLnNlbGVjdEFsbE9wdGlvbkNvbmZpZ1xuICAgIH0pXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWRkVmFsdWVTZWxlY3Rpb25PcHRpb25GdW5jdGlvbjxUPihsYWJlbD86IHN0cmluZyB8IHVuZGVmaW5lZCk6IChvcHRpb25zOiBWYWx1ZVNlbGVjdGlvbk9wdGlvbjxUPltdKSA9PiBWYWx1ZVNlbGVjdGlvbk9wdGlvbjxUPltdIHtcbiAgcmV0dXJuIChvcHRpb25zOiBWYWx1ZVNlbGVjdGlvbk9wdGlvbjxUPltdKSA9PiB7XG4gICAgY29uc3QgaGFzQ2xlYXIgPSBvcHRpb25zLmZpbmRJbmRleCgoeCkgPT4gKHggYXMgVmFsdWVTZWxlY3Rpb25PcHRpb25DbGVhcikuY2xlYXIpICE9PSAtMTtcblxuICAgIGlmIChoYXNDbGVhcikge1xuICAgICAgcmV0dXJuIG9wdGlvbnM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbeyBsYWJlbCwgY2xlYXI6IHRydWUgfSwgLi4ub3B0aW9uc107XG4gICAgfVxuICB9O1xufVxuIl19
@@ -1,5 +1,5 @@
1
1
  import { Component } from '@angular/core';
2
- import { getValueFromGetter } from '@dereekb/util';
2
+ import { asDecisionFunction, cachedGetter, getValueFromGetter, makeGetter } from '@dereekb/util';
3
3
  import { FieldArrayType } from '@ngx-formly/core';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@angular/common";
@@ -9,12 +9,30 @@ import * as i4 from "@angular/cdk/drag-drop";
9
9
  import * as i5 from "@dereekb/dbx-web";
10
10
  import * as i6 from "@ngx-formly/core";
11
11
  export class DbxFormRepeatArrayTypeComponent extends FieldArrayType {
12
+ constructor() {
13
+ super(...arguments);
14
+ this._labelForField = cachedGetter(() => {
15
+ const input = this.repeatArrayField.labelForField;
16
+ if (typeof input === 'function') {
17
+ return input;
18
+ }
19
+ else {
20
+ return makeGetter(input ?? '');
21
+ }
22
+ });
23
+ this._allowRemove = cachedGetter(() => {
24
+ return asDecisionFunction(this.field.props.allowRemove, true);
25
+ });
26
+ }
12
27
  get repeatArrayField() {
13
28
  return this.field.props;
14
29
  }
15
30
  get label() {
16
31
  return this.field.props.label ?? this.field.key;
17
32
  }
33
+ get description() {
34
+ return this.field.props.description;
35
+ }
18
36
  get addText() {
19
37
  return this.repeatArrayField.addText ?? 'Add';
20
38
  }
@@ -27,7 +45,24 @@ export class DbxFormRepeatArrayTypeComponent extends FieldArrayType {
27
45
  get count() {
28
46
  return this.field.fieldGroup?.length ?? 0;
29
47
  }
30
- get canAdd() {
48
+ get disableRearrange() {
49
+ return Boolean(this.field.props.disableRearrange);
50
+ }
51
+ get allowAdd() {
52
+ return this.field.props.allowAdd ?? true;
53
+ }
54
+ allowRemove(i) {
55
+ const array = this.model;
56
+ const value = array[i];
57
+ return this._allowRemove()({
58
+ i,
59
+ value
60
+ });
61
+ }
62
+ get addItemDisabled() {
63
+ return !this.canAddItem;
64
+ }
65
+ get canAddItem() {
31
66
  const max = this.max;
32
67
  if (max == null) {
33
68
  return true;
@@ -63,68 +98,74 @@ export class DbxFormRepeatArrayTypeComponent extends FieldArrayType {
63
98
  drop(event) {
64
99
  this.swapIndexes(event.previousIndex, event.currentIndex);
65
100
  }
66
- labelForItem(field) {
67
- return getValueFromGetter(this.repeatArrayField.labelForField ?? '', field);
101
+ labelForItem(fieldConfig, i) {
102
+ const array = this.model;
103
+ const value = array[i];
104
+ return getValueFromGetter(this._labelForField(), {
105
+ i,
106
+ value,
107
+ fieldConfig
108
+ });
68
109
  }
69
110
  }
70
111
  DbxFormRepeatArrayTypeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxFormRepeatArrayTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
71
112
  DbxFormRepeatArrayTypeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: DbxFormRepeatArrayTypeComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
72
113
  <div class="dbx-form-repeat-array">
73
- <dbx-subsection [header]="label">
114
+ <dbx-subsection [header]="label" [hint]="description">
74
115
  <!-- Fields -->
75
- <div class="dbx-form-repeat-array-fields" cdkDropList (cdkDropListDropped)="drop($event)">
116
+ <div class="dbx-form-repeat-array-fields" cdkDropList [cdkDropListDisabled]="disableRearrange" (cdkDropListDropped)="drop($event)">
76
117
  <div class="dbx-form-repeat-array-field" cdkDrag cdkDragLockAxis="y" *ngFor="let field of field.fieldGroup; let i = index; let last = last">
77
- <div class="example-custom-placeholder" *cdkDragPlaceholder></div>
78
- <dbx-bar>
79
- <button cdkDragHandle mat-flat-button><mat-icon>drag_handle</mat-icon></button>
118
+ <div class="dbx-form-repeat-array-drag-placeholder" *cdkDragPlaceholder></div>
119
+ <dbx-bar class="dbx-bar-fixed-height">
120
+ <button *ngIf="!disableRearrange" cdkDragHandle mat-flat-button><mat-icon>drag_handle</mat-icon></button>
80
121
  <dbx-button-spacer></dbx-button-spacer>
81
122
  <h4>
82
123
  <span class="repeat-array-number">{{ i + 1 }}</span>
83
- <span>{{ labelForItem(field) }}</span>
124
+ <span>{{ labelForItem(field, i) }}</span>
84
125
  </h4>
85
126
  <span class="dbx-spacer"></span>
86
- <button mat-flat-button color="warn" (click)="remove(i)">{{ removeText }}</button>
127
+ <dbx-button *ngIf="allowRemove(i)" color="warn" [text]="removeText" (buttonClick)="remove(i)"></dbx-button>
87
128
  </dbx-bar>
88
129
  <formly-field class="dbx-form-repeat-array-field-content" [field]="field"></formly-field>
89
130
  </div>
90
131
  </div>
91
132
  <!-- Add Button -->
92
133
  <div class="dbx-form-repeat-array-footer">
93
- <button *ngIf="canAdd" mat-raised-button (click)="add()">{{ addText }}</button>
134
+ <dbx-button *ngIf="allowAdd" [raised]="true" [disabled]="addItemDisabled" [text]="addText" (buttonClick)="add()"></dbx-button>
94
135
  </div>
95
136
  </dbx-subsection>
96
137
  </div>
97
- `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i4.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i4.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i4.CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "component", type: i5.DbxSubSectionComponent, selector: "dbx-subsection" }, { kind: "directive", type: i5.DbxBarDirective, selector: "dbx-bar,[dbxBar]", inputs: ["color"] }, { kind: "directive", type: i5.DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }, { kind: "component", type: i6.FormlyField, selector: "formly-field", inputs: ["field"] }] });
138
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i4.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i4.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i4.CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "component", type: i5.DbxSubSectionComponent, selector: "dbx-subsection" }, { kind: "directive", type: i5.DbxBarDirective, selector: "dbx-bar,[dbxBar]", inputs: ["color"] }, { kind: "component", type: i5.DbxButtonComponent, selector: "dbx-button", inputs: ["type", "raised", "stroked", "flat", "color", "customButtonColor", "customTextColor", "customSpinnerColor"] }, { kind: "directive", type: i5.DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }, { kind: "component", type: i6.FormlyField, selector: "formly-field", inputs: ["field"] }] });
98
139
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxFormRepeatArrayTypeComponent, decorators: [{
99
140
  type: Component,
100
141
  args: [{
101
142
  template: `
102
143
  <div class="dbx-form-repeat-array">
103
- <dbx-subsection [header]="label">
144
+ <dbx-subsection [header]="label" [hint]="description">
104
145
  <!-- Fields -->
105
- <div class="dbx-form-repeat-array-fields" cdkDropList (cdkDropListDropped)="drop($event)">
146
+ <div class="dbx-form-repeat-array-fields" cdkDropList [cdkDropListDisabled]="disableRearrange" (cdkDropListDropped)="drop($event)">
106
147
  <div class="dbx-form-repeat-array-field" cdkDrag cdkDragLockAxis="y" *ngFor="let field of field.fieldGroup; let i = index; let last = last">
107
- <div class="example-custom-placeholder" *cdkDragPlaceholder></div>
108
- <dbx-bar>
109
- <button cdkDragHandle mat-flat-button><mat-icon>drag_handle</mat-icon></button>
148
+ <div class="dbx-form-repeat-array-drag-placeholder" *cdkDragPlaceholder></div>
149
+ <dbx-bar class="dbx-bar-fixed-height">
150
+ <button *ngIf="!disableRearrange" cdkDragHandle mat-flat-button><mat-icon>drag_handle</mat-icon></button>
110
151
  <dbx-button-spacer></dbx-button-spacer>
111
152
  <h4>
112
153
  <span class="repeat-array-number">{{ i + 1 }}</span>
113
- <span>{{ labelForItem(field) }}</span>
154
+ <span>{{ labelForItem(field, i) }}</span>
114
155
  </h4>
115
156
  <span class="dbx-spacer"></span>
116
- <button mat-flat-button color="warn" (click)="remove(i)">{{ removeText }}</button>
157
+ <dbx-button *ngIf="allowRemove(i)" color="warn" [text]="removeText" (buttonClick)="remove(i)"></dbx-button>
117
158
  </dbx-bar>
118
159
  <formly-field class="dbx-form-repeat-array-field-content" [field]="field"></formly-field>
119
160
  </div>
120
161
  </div>
121
162
  <!-- Add Button -->
122
163
  <div class="dbx-form-repeat-array-footer">
123
- <button *ngIf="canAdd" mat-raised-button (click)="add()">{{ addText }}</button>
164
+ <dbx-button *ngIf="allowAdd" [raised]="true" [disabled]="addItemDisabled" [text]="addText" (buttonClick)="add()"></dbx-button>
124
165
  </div>
125
166
  </dbx-subsection>
126
167
  </div>
127
168
  `
128
169
  }]
129
170
  }] });
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vc3JjL2xpYi9mb3JtbHkvZmllbGQvdmFsdWUvYXJyYXkvYXJyYXkuZmllbGQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFvQixrQkFBa0IsRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQXdCLGNBQWMsRUFBdUMsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7Ozs7QUFxQzdHLE1BQU0sT0FBTywrQkFBZ0MsU0FBUSxjQUE4RDtJQUNqSCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQWMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQztJQUNoRCxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxJQUFJLFFBQVEsQ0FBQztJQUN0RCxDQUFDO0lBRUQsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUVyQixJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUU7WUFDZixPQUFPLElBQUksQ0FBQztTQUNiO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsS0FBYTtRQUNsQixJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUU7WUFDZixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFhO1FBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsV0FBVyxDQUFDLFlBQW9CLEVBQUUsV0FBbUI7UUFDbkQsTUFBTSxLQUFLLEdBQWMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNwQyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFeEMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNoQixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQUksQ0FBQyxLQUEyQjtRQUM5QixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxZQUFZLENBQUMsS0FBd0I7UUFDbkMsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxJQUFJLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM5RSxDQUFDOzs0SEF2RVUsK0JBQStCO2dIQUEvQiwrQkFBK0IsMkVBNUJoQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwQlQ7MkZBRVUsK0JBQStCO2tCQTdCM0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMEJUO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmFjdG9yeVdpdGhJbnB1dCwgZ2V0VmFsdWVGcm9tR2V0dGVyLCBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRmllbGRBcnJheVR5cGVDb25maWcsIEZpZWxkQXJyYXlUeXBlLCBGb3JtbHlGaWVsZENvbmZpZywgRm9ybWx5RmllbGRQcm9wcyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERieEZvcm1SZXBlYXRBcnJheUNvbmZpZyBleHRlbmRzIEZvcm1seUZpZWxkUHJvcHMge1xuICBsYWJlbEZvckZpZWxkPzogc3RyaW5nIHwgRmFjdG9yeVdpdGhJbnB1dDxzdHJpbmcsIEZvcm1seUZpZWxkQ29uZmlnPjtcbiAgYWRkVGV4dD86IHN0cmluZztcbiAgcmVtb3ZlVGV4dD86IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImRieC1mb3JtLXJlcGVhdC1hcnJheVwiPlxuICAgICAgPGRieC1zdWJzZWN0aW9uIFtoZWFkZXJdPVwibGFiZWxcIj5cbiAgICAgICAgPCEtLSBGaWVsZHMgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkYngtZm9ybS1yZXBlYXQtYXJyYXktZmllbGRzXCIgY2RrRHJvcExpc3QgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGJ4LWZvcm0tcmVwZWF0LWFycmF5LWZpZWxkXCIgY2RrRHJhZyBjZGtEcmFnTG9ja0F4aXM9XCJ5XCIgKm5nRm9yPVwibGV0IGZpZWxkIG9mIGZpZWxkLmZpZWxkR3JvdXA7IGxldCBpID0gaW5kZXg7IGxldCBsYXN0ID0gbGFzdFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4YW1wbGUtY3VzdG9tLXBsYWNlaG9sZGVyXCIgKmNka0RyYWdQbGFjZWhvbGRlcj48L2Rpdj5cbiAgICAgICAgICAgIDxkYngtYmFyPlxuICAgICAgICAgICAgICA8YnV0dG9uIGNka0RyYWdIYW5kbGUgbWF0LWZsYXQtYnV0dG9uPjxtYXQtaWNvbj5kcmFnX2hhbmRsZTwvbWF0LWljb24+PC9idXR0b24+XG4gICAgICAgICAgICAgIDxkYngtYnV0dG9uLXNwYWNlcj48L2RieC1idXR0b24tc3BhY2VyPlxuICAgICAgICAgICAgICA8aDQ+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXBlYXQtYXJyYXktbnVtYmVyXCI+e3sgaSArIDEgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgbGFiZWxGb3JJdGVtKGZpZWxkKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9oND5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkYngtc3BhY2VyXCI+PC9zcGFuPlxuICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiBjb2xvcj1cIndhcm5cIiAoY2xpY2spPVwicmVtb3ZlKGkpXCI+e3sgcmVtb3ZlVGV4dCB9fTwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kYngtYmFyPlxuICAgICAgICAgICAgPGZvcm1seS1maWVsZCBjbGFzcz1cImRieC1mb3JtLXJlcGVhdC1hcnJheS1maWVsZC1jb250ZW50XCIgW2ZpZWxkXT1cImZpZWxkXCI+PC9mb3JtbHktZmllbGQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tIEFkZCBCdXR0b24gLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkYngtZm9ybS1yZXBlYXQtYXJyYXktZm9vdGVyXCI+XG4gICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImNhbkFkZFwiIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJhZGQoKVwiPnt7IGFkZFRleHQgfX08L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2RieC1zdWJzZWN0aW9uPlxuICAgIDwvZGl2PlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIERieEZvcm1SZXBlYXRBcnJheVR5cGVDb21wb25lbnQgZXh0ZW5kcyBGaWVsZEFycmF5VHlwZTxGaWVsZEFycmF5VHlwZUNvbmZpZzxEYnhGb3JtUmVwZWF0QXJyYXlDb25maWc+PiB7XG4gIGdldCByZXBlYXRBcnJheUZpZWxkKCk6IERieEZvcm1SZXBlYXRBcnJheUNvbmZpZyB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGQucHJvcHM7XG4gIH1cblxuICBnZXQgbGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC5wcm9wcy5sYWJlbCA/PyAodGhpcy5maWVsZC5rZXkgYXMgc3RyaW5nKTtcbiAgfVxuXG4gIGdldCBhZGRUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVwZWF0QXJyYXlGaWVsZC5hZGRUZXh0ID8/ICdBZGQnO1xuICB9XG5cbiAgZ2V0IHJlbW92ZVRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXBlYXRBcnJheUZpZWxkLnJlbW92ZVRleHQgPz8gJ1JlbW92ZSc7XG4gIH1cblxuICBnZXQgbWF4KCk6IE1heWJlPG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLnByb3BzLm1heExlbmd0aDtcbiAgfVxuXG4gIGdldCBjb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLmZpZWxkR3JvdXA/Lmxlbmd0aCA/PyAwO1xuICB9XG5cbiAgZ2V0IGNhbkFkZCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBtYXggPSB0aGlzLm1heDtcblxuICAgIGlmIChtYXggPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmNvdW50IDwgbWF4O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBNb3ZlcyB0aGUgdGFyZ2V0IGluZGV4IHVwIG9uZSB2YWx1ZS5cbiAgICpcbiAgICogQHBhcmFtIGluZGV4XG4gICAqL1xuICBtb3ZlVXAoaW5kZXg6IG51bWJlcikge1xuICAgIGlmIChpbmRleCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3dhcEluZGV4ZXMoaW5kZXgsIGluZGV4IC0gMSk7XG4gIH1cblxuICBtb3ZlRG93bihpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5zd2FwSW5kZXhlcyhpbmRleCwgaW5kZXggKyAxKTtcbiAgfVxuXG4gIHN3YXBJbmRleGVzKGN1cnJlbnRJbmRleDogbnVtYmVyLCB0YXJnZXRJbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgYXJyYXk6IHVua25vd25bXSA9IHRoaXMubW9kZWw7XG4gICAgY29uc3QgdGFyZ2V0VmFsdWUgPSBhcnJheVtjdXJyZW50SW5kZXhdO1xuXG4gICAgaWYgKCF0YXJnZXRWYWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucmVtb3ZlKGN1cnJlbnRJbmRleCk7XG4gICAgdGhpcy5hZGQodGFyZ2V0SW5kZXgsIHRhcmdldFZhbHVlLCB7IG1hcmtBc0RpcnR5OiB0cnVlIH0pO1xuICAgIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICB9XG5cbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8dW5rbm93bj4pIHtcbiAgICB0aGlzLnN3YXBJbmRleGVzKGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XG4gIH1cblxuICBsYWJlbEZvckl0ZW0oZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZ2V0VmFsdWVGcm9tR2V0dGVyKHRoaXMucmVwZWF0QXJyYXlGaWVsZC5sYWJlbEZvckZpZWxkID8/ICcnLCBmaWVsZCk7XG4gIH1cbn1cbiJdfQ==
171
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vc3JjL2xpYi9mb3JtbHkvZmllbGQvdmFsdWUvYXJyYXkvYXJyYXkuZmllbGQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGtCQUFrQixFQUFZLFlBQVksRUFBd0Usa0JBQWtCLEVBQVksVUFBVSxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ2xNLE9BQU8sRUFBd0IsY0FBYyxFQUF1QyxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7OztBQW1FN0csTUFBTSxPQUFPLCtCQUE2QyxTQUFRLGNBQThEO0lBN0JoSTs7UUE4QlUsbUJBQWMsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFO1lBQ3pDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUM7WUFFbEQsSUFBSSxPQUFPLEtBQUssS0FBSyxVQUFVLEVBQUU7Z0JBQy9CLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7aUJBQU07Z0JBQ0wsT0FBTyxVQUFVLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO2FBQ2hDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSyxpQkFBWSxHQUF3RCxZQUFZLENBQUMsR0FBRyxFQUFFO1lBQzVGLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2hFLENBQUMsQ0FBQyxDQUFDO0tBeUdKO0lBdkdDLElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FB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QUMsS0FBSyxDQUFDO1FBQ3BDLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQU0sQ0FBQztRQUU1QixPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRTtZQUMvQyxDQUFDO1lBQ0QsS0FBSztZQUNMLFdBQVc7U0FDWixDQUFDLENBQUM7SUFDTCxDQUFDOzs0SEFySFUsK0JBQStCO2dIQUEvQiwrQkFBK0IsMkVBNUJoQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwQlQ7MkZBRVUsK0JBQStCO2tCQTdCM0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMEJUO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBhc0RlY2lzaW9uRnVuY3Rpb24sIGFzR2V0dGVyLCBjYWNoZWRHZXR0ZXIsIERlY2lzaW9uRnVuY3Rpb24sIEZhY3RvcnlXaXRoSW5wdXQsIEZhY3RvcnlXaXRoUmVxdWlyZWRJbnB1dCwgR2V0dGVyLCBnZXRWYWx1ZUZyb21HZXR0ZXIsIEluZGV4UmVmLCBtYWtlR2V0dGVyLCBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRmllbGRBcnJheVR5cGVDb25maWcsIEZpZWxkQXJyYXlUeXBlLCBGb3JtbHlGaWVsZENvbmZpZywgRm9ybWx5RmllbGRQcm9wcyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERieEZvcm1SZXBlYXRBcnJheVBhaXI8VCA9IHVua25vd24+IGV4dGVuZHMgSW5kZXhSZWYge1xuICB2YWx1ZTogVDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYnhGb3JtUmVwZWF0QXJyYXlGaWVsZENvbmZpZ1BhaXI8VCA9IHVua25vd24+IGV4dGVuZHMgRGJ4Rm9ybVJlcGVhdEFycmF5UGFpcjxUPiB7XG4gIGZpZWxkQ29uZmlnOiBGb3JtbHlGaWVsZENvbmZpZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYnhGb3JtUmVwZWF0QXJyYXlDb25maWc8VCA9IHVua25vd24+IGV4dGVuZHMgUGljazxGb3JtbHlGaWVsZFByb3BzLCAnbWF4TGVuZ3RoJyB8ICdsYWJlbCcgfCAnZGVzY3JpcHRpb24nPiB7XG4gIGxhYmVsRm9yRmllbGQ/OiBzdHJpbmcgfCBGYWN0b3J5V2l0aFJlcXVpcmVkSW5wdXQ8c3RyaW5nLCBEYnhGb3JtUmVwZWF0QXJyYXlGaWVsZENvbmZpZ1BhaXI8VD4+O1xuICAvKipcbiAgICogVGV4dCBmb3IgdGhlIGFkZCBidXR0b24uXG4gICAqL1xuICBhZGRUZXh0Pzogc3RyaW5nO1xuICAvKipcbiAgICogVGV4dCBmb3IgdGhlIHJlbW92ZSBidXR0b24uXG4gICAqL1xuICByZW1vdmVUZXh0Pzogc3RyaW5nO1xuICAvKipcbiAgICogV2hldGhlIG9yIG5vdCB0byBkaXNhYmxlIHJlYXJyYW5naW5nIGl0ZW1zLlxuICAgKlxuICAgKiBGYWxzZSBieSBkZWZhdWx0LlxuICAgKi9cbiAgZGlzYWJsZVJlYXJyYW5nZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXZXRoZXIgb3Igbm90IHRvIHNob3cgdGhlIGFkZCBidXR0b24uXG4gICAqXG4gICAqIFRydWUgYnkgZGVmYXVsdC5cbiAgICovXG4gIGFsbG93QWRkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGFsbG93IHJlbW92aW5nIGl0ZW1zLiBDYW4gb3B0aW9uYWxseSBwYXNzIGEgZGVjaXNpb24gZnVuY3Rpb24gdGhhdCBkZWNpZGVzIHdoZXRoZXIgb3Igbm90IGEgc3BlY2lmaWMgaXRlbSBjYW4gYmUgcmVtb3ZlZC5cbiAgICovXG4gIGFsbG93UmVtb3ZlPzogYm9vbGVhbiB8IERlY2lzaW9uRnVuY3Rpb248RGJ4Rm9ybVJlcGVhdEFycmF5UGFpcjxUPj47XG59XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJkYngtZm9ybS1yZXBlYXQtYXJyYXlcIj5cbiAgICAgIDxkYngtc3Vic2VjdGlvbiBbaGVhZGVyXT1cImxhYmVsXCIgW2hpbnRdPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgPCEtLSBGaWVsZHMgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkYngtZm9ybS1yZXBlYXQtYXJyYXktZmllbGRzXCIgY2RrRHJvcExpc3QgW2Nka0Ryb3BMaXN0RGlzYWJsZWRdPVwiZGlzYWJsZVJlYXJyYW5nZVwiIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRieC1mb3JtLXJlcGVhdC1hcnJheS1maWVsZFwiIGNka0RyYWcgY2RrRHJhZ0xvY2tBeGlzPVwieVwiICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBmaWVsZC5maWVsZEdyb3VwOyBsZXQgaSA9IGluZGV4OyBsZXQgbGFzdCA9IGxhc3RcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYngtZm9ybS1yZXBlYXQtYXJyYXktZHJhZy1wbGFjZWhvbGRlclwiICpjZGtEcmFnUGxhY2Vob2xkZXI+PC9kaXY+XG4gICAgICAgICAgICA8ZGJ4LWJhciBjbGFzcz1cImRieC1iYXItZml4ZWQtaGVpZ2h0XCI+XG4gICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCIhZGlzYWJsZVJlYXJyYW5nZVwiIGNka0RyYWdIYW5kbGUgbWF0LWZsYXQtYnV0dG9uPjxtYXQtaWNvbj5kcmFnX2hhbmRsZTwvbWF0LWljb24+PC9idXR0b24+XG4gICAgICAgICAgICAgIDxkYngtYnV0dG9uLXNwYWNlcj48L2RieC1idXR0b24tc3BhY2VyPlxuICAgICAgICAgICAgICA8aDQ+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXBlYXQtYXJyYXktbnVtYmVyXCI+e3sgaSArIDEgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgbGFiZWxGb3JJdGVtKGZpZWxkLCBpKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9oND5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkYngtc3BhY2VyXCI+PC9zcGFuPlxuICAgICAgICAgICAgICA8ZGJ4LWJ1dHRvbiAqbmdJZj1cImFsbG93UmVtb3ZlKGkpXCIgY29sb3I9XCJ3YXJuXCIgW3RleHRdPVwicmVtb3ZlVGV4dFwiIChidXR0b25DbGljayk9XCJyZW1vdmUoaSlcIj48L2RieC1idXR0b24+XG4gICAgICAgICAgICA8L2RieC1iYXI+XG4gICAgICAgICAgICA8Zm9ybWx5LWZpZWxkIGNsYXNzPVwiZGJ4LWZvcm0tcmVwZWF0LWFycmF5LWZpZWxkLWNvbnRlbnRcIiBbZmllbGRdPVwiZmllbGRcIj48L2Zvcm1seS1maWVsZD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gQWRkIEJ1dHRvbiAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRieC1mb3JtLXJlcGVhdC1hcnJheS1mb290ZXJcIj5cbiAgICAgICAgICA8ZGJ4LWJ1dHRvbiAqbmdJZj1cImFsbG93QWRkXCIgW3JhaXNlZF09XCJ0cnVlXCIgW2Rpc2FibGVkXT1cImFkZEl0ZW1EaXNhYmxlZFwiIFt0ZXh0XT1cImFkZFRleHRcIiAoYnV0dG9uQ2xpY2spPVwiYWRkKClcIj48L2RieC1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kYngtc3Vic2VjdGlvbj5cbiAgICA8L2Rpdj5cbiAgYFxufSlcbmV4cG9ydCBjbGFzcyBEYnhGb3JtUmVwZWF0QXJyYXlUeXBlQ29tcG9uZW50PFQgPSB1bmtub3duPiBleHRlbmRzIEZpZWxkQXJyYXlUeXBlPEZpZWxkQXJyYXlUeXBlQ29uZmlnPERieEZvcm1SZXBlYXRBcnJheUNvbmZpZz4+IHtcbiAgcHJpdmF0ZSBfbGFiZWxGb3JGaWVsZCA9IGNhY2hlZEdldHRlcigoKSA9PiB7XG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLnJlcGVhdEFycmF5RmllbGQubGFiZWxGb3JGaWVsZDtcblxuICAgIGlmICh0eXBlb2YgaW5wdXQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiBpbnB1dDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG1ha2VHZXR0ZXIoaW5wdXQgPz8gJycpO1xuICAgIH1cbiAgfSk7XG5cbiAgcHJpdmF0ZSBfYWxsb3dSZW1vdmU6IEdldHRlcjxEZWNpc2lvbkZ1bmN0aW9uPERieEZvcm1SZXBlYXRBcnJheVBhaXI8VD4+PiA9IGNhY2hlZEdldHRlcigoKSA9PiB7XG4gICAgcmV0dXJuIGFzRGVjaXNpb25GdW5jdGlvbih0aGlzLmZpZWxkLnByb3BzLmFsbG93UmVtb3ZlLCB0cnVlKTtcbiAgfSk7XG5cbiAgZ2V0IHJlcGVhdEFycmF5RmllbGQoKTogRGJ4Rm9ybVJlcGVhdEFycmF5Q29uZmlnIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC5wcm9wcztcbiAgfVxuXG4gIGdldCBsYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLnByb3BzLmxhYmVsID8/ICh0aGlzLmZpZWxkLmtleSBhcyBzdHJpbmcpO1xuICB9XG5cbiAgZ2V0IGRlc2NyaXB0aW9uKCk6IE1heWJlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLnByb3BzLmRlc2NyaXB0aW9uO1xuICB9XG5cbiAgZ2V0IGFkZFRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXBlYXRBcnJheUZpZWxkLmFkZFRleHQgPz8gJ0FkZCc7XG4gIH1cblxuICBnZXQgcmVtb3ZlVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlcGVhdEFycmF5RmllbGQucmVtb3ZlVGV4dCA/PyAnUmVtb3ZlJztcbiAgfVxuXG4gIGdldCBtYXgoKTogTWF5YmU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGQucHJvcHMubWF4TGVuZ3RoO1xuICB9XG5cbiAgZ2V0IGNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGQuZmllbGRHcm91cD8ubGVuZ3RoID8/IDA7XG4gIH1cblxuICBnZXQgZGlzYWJsZVJlYXJyYW5nZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQm9vbGVhbih0aGlzLmZpZWxkLnByb3BzLmRpc2FibGVSZWFycmFuZ2UpO1xuICB9XG5cbiAgZ2V0IGFsbG93QWRkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLnByb3BzLmFsbG93QWRkID8/IHRydWU7XG4gIH1cblxuICBhbGxvd1JlbW92ZShpOiBudW1iZXIpIHtcbiAgICBjb25zdCBhcnJheTogdW5rbm93bltdID0gdGhpcy5tb2RlbDtcbiAgICBjb25zdCB2YWx1ZSA9IGFycmF5W2ldIGFzIFQ7XG4gICAgcmV0dXJuIHRoaXMuX2FsbG93UmVtb3ZlKCkoe1xuICAgICAgaSxcbiAgICAgIHZhbHVlXG4gICAgfSk7XG4gIH1cblxuICBnZXQgYWRkSXRlbURpc2FibGVkKCkge1xuICAgIHJldHVybiAhdGhpcy5jYW5BZGRJdGVtO1xuICB9XG5cbiAgZ2V0IGNhbkFkZEl0ZW0oKTogYm9vbGVhbiB7XG4gICAgY29uc3QgbWF4ID0gdGhpcy5tYXg7XG5cbiAgICBpZiAobWF4ID09IG51bGwpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5jb3VudCA8IG1heDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTW92ZXMgdGhlIHRhcmdldCBpbmRleCB1cCBvbmUgdmFsdWUuXG4gICAqXG4gICAqIEBwYXJhbSBpbmRleFxuICAgKi9cbiAgbW92ZVVwKGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAoaW5kZXggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN3YXBJbmRleGVzKGluZGV4LCBpbmRleCAtIDEpO1xuICB9XG5cbiAgbW92ZURvd24oaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuc3dhcEluZGV4ZXMoaW5kZXgsIGluZGV4ICsgMSk7XG4gIH1cblxuICBzd2FwSW5kZXhlcyhjdXJyZW50SW5kZXg6IG51bWJlciwgdGFyZ2V0SW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IGFycmF5OiB1bmtub3duW10gPSB0aGlzLm1vZGVsO1xuICAgIGNvbnN0IHRhcmdldFZhbHVlID0gYXJyYXlbY3VycmVudEluZGV4XTtcblxuICAgIGlmICghdGFyZ2V0VmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnJlbW92ZShjdXJyZW50SW5kZXgpO1xuICAgIHRoaXMuYWRkKHRhcmdldEluZGV4LCB0YXJnZXRWYWx1ZSwgeyBtYXJrQXNEaXJ0eTogdHJ1ZSB9KTtcbiAgICB0aGlzLmZvcm1Db250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgfVxuXG4gIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPHVua25vd24+KSB7XG4gICAgdGhpcy5zd2FwSW5kZXhlcyhldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICB9XG5cbiAgbGFiZWxGb3JJdGVtKGZpZWxkQ29uZmlnOiBGb3JtbHlGaWVsZENvbmZpZywgaTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCBhcnJheTogdW5rbm93bltdID0gdGhpcy5tb2RlbDtcbiAgICBjb25zdCB2YWx1ZSA9IGFycmF5W2ldIGFzIFQ7XG5cbiAgICByZXR1cm4gZ2V0VmFsdWVGcm9tR2V0dGVyKHRoaXMuX2xhYmVsRm9yRmllbGQoKSwge1xuICAgICAgaSxcbiAgICAgIHZhbHVlLFxuICAgICAgZmllbGRDb25maWdcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,19 +1,24 @@
1
1
  import { asArray } from '@dereekb/util';
2
2
  import { formlyField, propsAndConfigForFieldConfig } from '../../field';
3
3
  export function repeatArrayField(config) {
4
- const { key, repeatFieldGroup, maxLength, addText, removeText, labelForField } = config;
4
+ const { key, label, description, repeatFieldGroup, maxLength, addText, removeText, labelForField, disableRearrange, allowAdd, allowRemove } = config;
5
5
  return formlyField({
6
6
  key,
7
7
  type: 'repeatarray',
8
8
  ...propsAndConfigForFieldConfig(config, {
9
+ label,
10
+ description,
9
11
  maxLength,
10
12
  labelForField,
11
13
  addText,
12
- removeText
14
+ removeText,
15
+ disableRearrange,
16
+ allowAdd,
17
+ allowRemove
13
18
  }),
14
19
  fieldArray: {
15
20
  fieldGroup: asArray(repeatFieldGroup)
16
21
  }
17
22
  });
18
23
  }
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm1seS9maWVsZC92YWx1ZS9hcnJheS9hcnJheS5maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0RCxPQUFPLEVBQWUsV0FBVyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBU3JGLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxNQUE4QjtJQUM3RCxNQUFNLEVBQUUsR0FBRyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUV4RixPQUFPLFdBQVcsQ0FBQztRQUNqQixHQUFHO1FBQ0gsSUFBSSxFQUFFLGFBQWE7UUFDbkIsR0FBRyw0QkFBNEIsQ0FBQyxNQUFNLEVBQUU7WUFDdEMsU0FBUztZQUNULGFBQWE7WUFDYixPQUFPO1lBQ1AsVUFBVTtTQUNYLENBQUM7UUFDRixVQUFVLEVBQUU7WUFDVixVQUFVLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixDQUFDO1NBQ3RDO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFycmF5T3JWYWx1ZSwgYXNBcnJheSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWcgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IEZpZWxkQ29uZmlnLCBmb3JtbHlGaWVsZCwgcHJvcHNBbmRDb25maWdGb3JGaWVsZENvbmZpZyB9IGZyb20gJy4uLy4uL2ZpZWxkJztcbmltcG9ydCB7IERieEZvcm1SZXBlYXRBcnJheUNvbmZpZyB9IGZyb20gJy4vYXJyYXkuZmllbGQuY29tcG9uZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBSZXBlYXRBcnJheUZpZWxkQ29uZmlnIGV4dGVuZHMgRGJ4Rm9ybVJlcGVhdEFycmF5Q29uZmlnLCBGaWVsZENvbmZpZyB7XG4gIGxhYmVsPzogc3RyaW5nO1xuICByZXBlYXRGaWVsZEdyb3VwOiBBcnJheU9yVmFsdWU8Rm9ybWx5RmllbGRDb25maWc+O1xuICBtYXhMZW5ndGg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXBlYXRBcnJheUZpZWxkKGNvbmZpZzogUmVwZWF0QXJyYXlGaWVsZENvbmZpZykge1xuICBjb25zdCB7IGtleSwgcmVwZWF0RmllbGRHcm91cCwgbWF4TGVuZ3RoLCBhZGRUZXh0LCByZW1vdmVUZXh0LCBsYWJlbEZvckZpZWxkIH0gPSBjb25maWc7XG5cbiAgcmV0dXJuIGZvcm1seUZpZWxkKHtcbiAgICBrZXksXG4gICAgdHlwZTogJ3JlcGVhdGFycmF5JyxcbiAgICAuLi5wcm9wc0FuZENvbmZpZ0ZvckZpZWxkQ29uZmlnKGNvbmZpZywge1xuICAgICAgbWF4TGVuZ3RoLFxuICAgICAgbGFiZWxGb3JGaWVsZCxcbiAgICAgIGFkZFRleHQsXG4gICAgICByZW1vdmVUZXh0XG4gICAgfSksXG4gICAgZmllbGRBcnJheToge1xuICAgICAgZmllbGRHcm91cDogYXNBcnJheShyZXBlYXRGaWVsZEdyb3VwKVxuICAgIH1cbiAgfSk7XG59XG4iXX0=
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm1seS9maWVsZC92YWx1ZS9hcnJheS9hcnJheS5maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0RCxPQUFPLEVBQWUsV0FBVyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBT3JGLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBYyxNQUFpQztJQUM3RSxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFckosT0FBTyxXQUFXLENBQUM7UUFDakIsR0FBRztRQUNILElBQUksRUFBRSxhQUFhO1FBQ25CLEdBQUcsNEJBQTRCLENBQUMsTUFBTSxFQUFFO1lBQ3RDLEtBQUs7WUFDTCxXQUFXO1lBQ1gsU0FBUztZQUNULGFBQWE7WUFDYixPQUFPO1lBQ1AsVUFBVTtZQUNWLGdCQUFnQjtZQUNoQixRQUFRO1lBQ1IsV0FBVztTQUNaLENBQUM7UUFDRixVQUFVLEVBQUU7WUFDVixVQUFVLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixDQUFDO1NBQ3RDO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFycmF5T3JWYWx1ZSwgYXNBcnJheSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWcgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IEZpZWxkQ29uZmlnLCBmb3JtbHlGaWVsZCwgcHJvcHNBbmRDb25maWdGb3JGaWVsZENvbmZpZyB9IGZyb20gJy4uLy4uL2ZpZWxkJztcbmltcG9ydCB7IERieEZvcm1SZXBlYXRBcnJheUNvbmZpZyB9IGZyb20gJy4vYXJyYXkuZmllbGQuY29tcG9uZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBSZXBlYXRBcnJheUZpZWxkQ29uZmlnPFQgPSB1bmtub3duPiBleHRlbmRzIERieEZvcm1SZXBlYXRBcnJheUNvbmZpZzxUPiwgRmllbGRDb25maWcge1xuICByZXBlYXRGaWVsZEdyb3VwOiBBcnJheU9yVmFsdWU8Rm9ybWx5RmllbGRDb25maWc+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVwZWF0QXJyYXlGaWVsZDxUID0gdW5rbm93bj4oY29uZmlnOiBSZXBlYXRBcnJheUZpZWxkQ29uZmlnPFQ+KSB7XG4gIGNvbnN0IHsga2V5LCBsYWJlbCwgZGVzY3JpcHRpb24sIHJlcGVhdEZpZWxkR3JvdXAsIG1heExlbmd0aCwgYWRkVGV4dCwgcmVtb3ZlVGV4dCwgbGFiZWxGb3JGaWVsZCwgZGlzYWJsZVJlYXJyYW5nZSwgYWxsb3dBZGQsIGFsbG93UmVtb3ZlIH0gPSBjb25maWc7XG5cbiAgcmV0dXJuIGZvcm1seUZpZWxkKHtcbiAgICBrZXksXG4gICAgdHlwZTogJ3JlcGVhdGFycmF5JyxcbiAgICAuLi5wcm9wc0FuZENvbmZpZ0ZvckZpZWxkQ29uZmlnKGNvbmZpZywge1xuICAgICAgbGFiZWwsXG4gICAgICBkZXNjcmlwdGlvbixcbiAgICAgIG1heExlbmd0aCxcbiAgICAgIGxhYmVsRm9yRmllbGQsXG4gICAgICBhZGRUZXh0LFxuICAgICAgcmVtb3ZlVGV4dCxcbiAgICAgIGRpc2FibGVSZWFycmFuZ2UsXG4gICAgICBhbGxvd0FkZCxcbiAgICAgIGFsbG93UmVtb3ZlXG4gICAgfSksXG4gICAgZmllbGRBcnJheToge1xuICAgICAgZmllbGRHcm91cDogYXNBcnJheShyZXBlYXRGaWVsZEdyb3VwKVxuICAgIH1cbiAgfSk7XG59XG4iXX0=
@@ -6,8 +6,10 @@ import { ADDRESS_CITY_MAX_LENGTH, ADDRESS_STATE_CODE_MAX_LENGTH, ADDRESS_STATE_M
6
6
  export const PHONE_LABEL_MAX_LENGTH = 100;
7
7
  export const LABEL_STRING_MAX_LENGTH = 100;
8
8
  export const SEARCH_STRING_MAX_LENGTH = 100;
9
- export function nameField({ key = 'name', label = 'Name', placeholder = 'John Doe', required = false, minLength, maxLength, attributes } = {}) {
9
+ export function nameField(config = {}) {
10
+ const { key = 'name', label = 'Name', placeholder = 'John Doe', required = false, minLength, maxLength, attributes } = config;
10
11
  return textField({
12
+ ...config,
11
13
  key,
12
14
  label,
13
15
  placeholder,
@@ -47,7 +49,7 @@ export function cityField(config = {}) {
47
49
  });
48
50
  }
49
51
  export function stateField(config = {}) {
50
- const { asCode = false, pattern = asCode ? US_STATE_CODE_STRING_REGEX : undefined, key = 'state', placeholder = '', label = 'State', autocomplete = 'state', maxLength = asCode ? ADDRESS_STATE_CODE_MAX_LENGTH : ADDRESS_STATE_MAX_LENGTH, required = false } = config;
52
+ const { asCode = false, pattern = asCode ? US_STATE_CODE_STRING_REGEX : undefined, key = 'state', placeholder = '', label = 'State', autocomplete = 'state', maxLength = asCode ? ADDRESS_STATE_CODE_MAX_LENGTH : ADDRESS_STATE_MAX_LENGTH, transform, required = false } = config;
51
53
  return textField({
52
54
  ...config,
53
55
  key,
@@ -58,7 +60,8 @@ export function stateField(config = {}) {
58
60
  required,
59
61
  maxLength,
60
62
  transform: {
61
- toUppercase: true
63
+ ...transform,
64
+ toUppercase: asCode || transform?.toUppercase
62
65
  }
63
66
  });
64
67
  }
@@ -106,4 +109,4 @@ export function latLngTextField({ key = 'latLng' } = {}) {
106
109
  };
107
110
  return field;
108
111
  }
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5hZGRpdGlvbmFsLmZpZWxkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vc3JjL2xpYi9mb3JtbHkvZmllbGQvdmFsdWUvdGV4dC90ZXh0LmFkZGl0aW9uYWwuZmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBbUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RCxPQUFPLEVBQW1CLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxRCxPQUFPLEVBQThDLHdCQUF3QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ25HLE9BQU8sRUFBRSxlQUFlLEVBQUUsMEJBQTBCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLDZCQUE2QixFQUFFLHdCQUF3QixFQUFFLDBCQUEwQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEssTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsR0FBRyxDQUFDO0FBRTFDLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLEdBQUcsQ0FBQztBQUMzQyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxHQUFHLENBQUM7QUFFNUMsTUFBTSxVQUFVLFNBQVMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxNQUFNLEVBQUUsS0FBSyxHQUFHLE1BQU0sRUFBRSxXQUFXLEdBQUcsVUFBVSxFQUFFLFFBQVEsR0FBRyxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxVQUFVLEtBQStCLEVBQUU7SUFDckssT0FBTyxTQUFTLENBQUM7UUFDZixHQUFHO1FBQ0gsS0FBSztRQUNMLFdBQVc7UUFDWCxRQUFRO1FBQ1IsU0FBUztRQUNULFNBQVM7UUFDVCxVQUFVO0tBQ1gsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQU1ELE1BQU0sVUFBVSxVQUFV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QVc7UUFDWCxLQUFLO1FBQ0wsT0FBTztRQUNQLFlBQVk7UUFDWixRQUFRO1FBQ1IsU0FBUztLQUNWLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxzQ0FBc0MsR0FBRyxpQkFBaUIsQ0FBQztBQUN4RSxNQUFNLENBQUMsTUFBTSwwQ0FBMEMsR0FBRyw2QkFBNkIsQ0FBQztBQUV4RixNQUFNLFVBQVUsZUFBZSxDQUFDLEVBQUUsR0FBRyxHQUFHLFFBQVEsS0FBK0IsRUFBRTtJQUMvRSxNQUFNLEtBQUssR0FBRztRQUNaLEdBQUcsU0FBUyxDQUFDO1lBQ1gsR0FBRztZQUNILEtBQUssRUFBRSxhQUFhO1lBQ3BCLFdBQVcsRUFBRSxzQ0FBc0M7WUFDbkQsT0FBTyxFQUFFLGVBQWU7WUFDeEIsWUFBWSxFQUFFLEtBQUs7U0FDcEIsQ0FBQztRQUNGLEdBQUcsd0JBQXdCLENBQUM7WUFDMUIsUUFBUSxFQUFFO2dCQUNSLE9BQU8sRUFBRSwwQ0FBMEM7YUFDcEQ7U0FDRixDQUFDO0tBQ0gsQ0FBQztJQUVGLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1seUZpZWxkQ29uZmlnIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyBWYWxpZGF0b3JzLCBBYnN0cmFjdENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUZXh0RmllbGRDb25maWcsIHRleHRGaWVsZCB9IGZyb20gJy4vdGV4dC5maWVsZCc7XG5pbXBvcnQgeyBMYWJlbGVkRmllbGRDb25maWcsIERlc2NyaXB0aW9uRmllbGRDb25maWcsIHZhbGlkYXRvcnNGb3JGaWVsZENvbmZpZyB9IGZyb20gJy4uLy4uL2ZpZWxkJztcbmltcG9ydCB7IExBVF9MTkdfUEFUVEVSTiwgVVNfU1RBVEVfQ09ERV9TVFJJTkdfUkVHRVgsIFpJUF9DT0RFX1NUUklOR19SRUdFWCB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgQUREUkVTU19DSVRZX01BWF9MRU5HVEgsIEFERFJFU1NfU1RBVEVfQ09ERV9NQVhfTEVOR1RILCBBRERSRVNTX1NUQVRFX01BWF9MRU5HVEgsIEFERFJFU1NfQ09VTlRSWV9NQVhfTEVOR1RILCBBRERSRVNTX1pJUF9NQVhfTEVOR1RIIH0gZnJvbSAnQGRlcmVla2IvbW9kZWwnO1xuXG5leHBvcnQgY29uc3QgUEhPTkVfTEFCRUxfTUFYX0xFTkdUSCA9IDEwMDtcblxuZXhwb3J0IGNvbnN0IExBQkVMX1NUUklOR19NQVhfTEVOR1RIID0gMTAwO1xuZXhwb3J0IGNvbnN0IFNFQVJDSF9TVFJJTkdfTUFYX0xFTkdUSCA9IDEwMDtcblxuZXhwb3J0IGZ1bmN0aW9uIG5hbWVGaWVsZCh7IGtleSA9ICduYW1lJywgbGFiZWwgPSAnTmFtZScsIHBsYWNlaG9sZGVyID0gJ0pvaG4gRG9lJywgcmVxdWlyZWQgPSBmYWxzZSwgbWluTGVuZ3RoLCBtYXhMZW5ndGgsIGF0dHJpYnV0ZXMgfTogUGFydGlhbDxUZXh0RmllbGRDb25maWc+ID0ge30pOiBGb3JtbHlGaWVsZENvbmZpZyB7XG4gIHJldHVybiB0ZXh0RmllbGQoe1xuICAgIGtleSxcbiAgICBsYWJlbCxcbiAgICBwbGFjZWhvbGRlcixcbiAgICByZXF1aXJlZCxcbiAgICBtaW5MZW5ndGgsXG4gICAgbWF4TGVuZ3RoLFxuICAgIGF0dHJpYnV0ZXNcbiAgfSk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW1haWxGaWVsZENvbmZpZyBleHRlbmRzIFBhcnRpYWw8TGFiZWxlZEZpZWxkQ29uZmlnPiwgRGVzY3JpcHRpb25GaWVsZENvbmZpZyB7XG4gIHJvd3M/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbWFpbEZpZWxkKGNvbmZpZzogRW1haWxGaWVsZENvbmZpZyA9IHt9KTogRm9ybWx5RmllbGRDb25maWcge1xuICBjb25zdCB7IGtleSA9ICdlbWFpbCcsIGxhYmVsID0gJ0VtYWlsIEFkZHJlc3MnLCBwbGFjZWhvbGRlciA9ICd5b3VAZXhhbXBsZS5jb20nIH0gPSBjb25maWc7XG4gIGNvbnN0IGVtYWlsRmllbGRDb25maWcgPSB0ZXh0RmllbGQoe1xuICAgIC4uLmNvbmZpZyxcbiAgICBrZXksXG4gICAgbGFiZWwsXG4gICAgcGxhY2Vob2xkZXIsXG4gICAgaW5wdXRUeXBlOiAnZW1haWwnXG4gIH0pO1xuXG4gIGVtYWlsRmllbGRDb25maWcudmFsaWRhdG9ycyA9IHtcbiAgICBlbWFpbDoge1xuICAgICAgZXhwcmVzc2lvbjogKGM6IEFic3RyYWN0Q29udHJvbCkgPT4gIVZhbGlkYXRvcnMuZW1haWwoYyksXG4gICAgICBtZXNzYWdlOiAoKSA9PiBgTm90IGEgdmFsaWQgZW1haWwgYWRkcmVzcy5gXG4gICAgfVxuICB9O1xuXG4gIHJldHVybiBlbWFpbEZpZWxkQ29uZmlnO1xufVxuXG5leHBvcnQgdHlwZSBDaXR5RmllbGRDb25maWcgPSBQYXJ0aWFsPFRleHRGaWVsZENvbmZpZz47XG5cbmV4cG9ydCBmdW5jdGlvbiBjaXR5RmllbGQoY29uZmlnOiBDaXR5RmllbGRDb25maWcgPSB7fSk6IEZvcm1seUZpZWxkQ29uZmlnIHtcbiAgY29uc3QgeyBrZXkgPSAnY2l0eScsIHBsYWNlaG9sZGVyID0gJycsIGxhYmVsID0gJ0NpdHknLCBhdXRvY29tcGxldGUgPSAnY2l0eScsIG1heExlbmd0aCA9IEFERFJFU1NfQ0lUWV9NQVhfTEVOR1RILCByZXF1aXJlZCA9IGZhbHNlIH0gPSBjb25maWc7XG4gIHJldHVybiB0ZXh0RmllbGQoe1xuICAgIC4uLmNvbmZpZyxcbiAgICBrZXksXG4gICAgcGxhY2Vob2xkZXIsXG4gICAgbGFiZWwsXG4gICAgYXV0b2NvbXBsZXRlLFxuICAgIHJlcXVpcmVkLFxuICAgIG1heExlbmd0aFxuICB9KTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGF0ZUZpZWxkQ29uZmlnIGV4dGVuZHMgUGFydGlhbDxUZXh0RmllbGRDb25maWc+IHtcbiAgYXNDb2RlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0YXRlRmllbGQoY29uZmlnOiBTdGF0ZUZpZWxkQ29uZmlnID0ge30pOiBGb3JtbHlGaWVsZENvbmZpZyB7XG4gIGNvbnN0IHsgYXNDb2RlID0gZmFsc2UsIHBhdHRlcm4gPSBhc0NvZGUgPyBVU19TVEFURV9DT0RFX1NUUklOR19SRUdFWCA6IHVuZGVmaW5lZCwga2V5ID0gJ3N0YXRlJywgcGxhY2Vob2xkZXIgPSAnJywgbGFiZWwgPSAnU3RhdGUnLCBhdXRvY29tcGxldGUgPSAnc3RhdGUnLCBtYXhMZW5ndGggPSBhc0NvZGUgPyBBRERSRVNTX1NUQVRFX0NPREVfTUFYX0xFTkdUSCA6IEFERFJFU1NfU1RBVEVfTUFYX0xFTkdUSCwgcmVxdWlyZWQgPSBmYWxzZSB9ID0gY29uZmlnO1xuICByZXR1cm4gdGV4dEZpZWxkKHtcbiAgICAuLi5jb25maWcsXG4gICAga2V5LFxuICAgIHBsYWNlaG9sZGVyLFxuICAgIGxhYmVsLFxuICAgIHBhdHRlcm4sXG4gICAgYXV0b2NvbXBsZXRlLFxuICAgIHJlcXVpcmVkLFxuICAgIG1heExlbmd0aCxcbiAgICB0cmFuc2Zvcm06IHtcbiAgICAgIHRvVXBwZXJjYXNlOiB0cnVlXG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IHR5cGUgQ291bnRyeUZpZWxkQ29uZmlnID0gUGFydGlhbDxUZXh0RmllbGRDb25maWc+O1xuXG5leHBvcnQgZnVuY3Rpb24gY291bnRyeUZpZWxkKGNvbmZpZzogQ291bnRyeUZpZWxkQ29uZmlnID0ge30pOiBGb3JtbHlGaWVsZENvbmZpZyB7XG4gIGNvbnN0IHsga2V5ID0gJ2NvdW50cnknLCBwbGFjZWhvbGRlciA9ICcnLCBsYWJlbCA9ICdDb3VudHJ5JywgYXV0b2NvbXBsZXRlID0gJ2NvdW50cnknLCBtYXhMZW5ndGggPSBBRERSRVNTX0NPVU5UUllfTUFYX0xFTkdUSCwgcmVxdWlyZWQgPSBmYWxzZSB9ID0gY29uZmlnO1xuICByZXR1cm4gdGV4dEZpZWxkKHtcbiAgICAuLi5jb25maWcsXG4gICAga2V5LFxuICAgIHBsYWNlaG9sZGVyLFxuICAgIGxhYmVsLFxuICAgIGF1dG9jb21wbGV0ZSxcbiAgICByZXF1aXJlZCxcbiAgICBtYXhMZW5ndGhcbiAgfSk7XG59XG5cbmV4cG9ydCB0eXBlIFppcENvZGVGaWVsZENvbmZpZyA9IFBhcnRpYWw8VGV4dEZpZWxkQ29uZmlnPjtcblxuZXhwb3J0IGZ1bmN0aW9uIHppcENvZGVGaWVsZChjb25maWc6IFppcENvZGVGaWVsZENvbmZpZyA9IHt9KTogRm9ybWx5RmllbGRDb25maWcge1xuICBjb25zdCB7IGtleSA9ICd6aXAnLCBwbGFjZWhvbGRlciA9ICcnLCBsYWJlbCA9ICdaaXAgQ29kZScsIGF1dG9jb21wbGV0ZSA9ICdwb3N0YWwtY29kZScsIHBhdHRlcm4gPSBaSVBfQ09ERV9TVFJJTkdfUkVHRVgsIG1heExlbmd0aCA9IEFERFJFU1NfWklQX01BWF9MRU5HVEgsIHJlcXVpcmVkID0gZmFsc2UgfSA9IGNvbmZpZztcbiAgcmV0dXJuIHRleHRGaWVsZCh7XG4gICAgLi4uY29uZmlnLFxuICAgIGtleSxcbiAgICBwbGFjZWhvbGRlcixcbiAgICBsYWJlbCxcbiAgICBwYXR0ZXJuLFxuICAgIGF1dG9jb21wbGV0ZSxcbiAgICByZXF1aXJlZCxcbiAgICBtYXhMZW5ndGhcbiAgfSk7XG59XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0xBVF9MTkdfVEVYVF9GSUVMRF9QTEFDRUhPTERFUiA9ICcxMi4zNDUsLTY3Ljg5MTAnO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfTEFUX0xOR19URVhUX0ZJRUxEX1BBVFRFUk5fTUVTU0FHRSA9IGBJbnZhbGlkL3Vua25vd24gY29vcmRpbmF0ZXNgO1xuXG5leHBvcnQgZnVuY3Rpb24gbGF0TG5nVGV4dEZpZWxkKHsga2V5ID0gJ2xhdExuZycgfTogUGFydGlhbDxUZXh0RmllbGRDb25maWc+ID0ge30pOiBGb3JtbHlGaWVsZENvbmZpZyB7XG4gIGNvbnN0IGZpZWxkID0ge1xuICAgIC4uLnRleHRGaWVsZCh7XG4gICAgICBrZXksXG4gICAgICBsYWJlbDogJ0Nvb3JkaW5hdGVzJyxcbiAgICAgIHBsYWNlaG9sZGVyOiBERUZBVUxUX0xBVF9MTkdfVEVYVF9GSUVMRF9QTEFDRUhPTERFUixcbiAgICAgIHBhdHRlcm46IExBVF9MTkdfUEFUVEVSTixcbiAgICAgIGF1dG9jb21wbGV0ZTogZmFsc2VcbiAgICB9KSxcbiAgICAuLi52YWxpZGF0b3JzRm9yRmllbGRDb25maWcoe1xuICAgICAgbWVzc2FnZXM6IHtcbiAgICAgICAgcGF0dGVybjogREVGQVVMVF9MQVRfTE5HX1RFWFRfRklFTERfUEFUVEVSTl9NRVNTQUdFXG4gICAgICB9XG4gICAgfSlcbiAgfTtcblxuICByZXR1cm4gZmllbGQ7XG59XG4iXX0=
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5hZGRpdGlvbmFsLmZpZWxkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vc3JjL2xpYi9mb3JtbHkvZmllbGQvdmFsdWUvdGV4dC90ZXh0LmFkZGl0aW9uYWwuZmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBbUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RCxPQUFPLEVBQW1CLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxRCxPQUFPLEVBQThDLHdCQUF3QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ25HLE9BQU8sRUFBRSxlQUFlLEVBQUUsMEJBQTBCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLDZCQUE2QixFQUFFLHdCQUF3QixFQUFFLDBCQUEwQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEssTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsR0FBRyxDQUFDO0FBRTFDLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLEdBQUcsQ0FBQztBQUMzQyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxHQUFHLENBQUM7QUFFNUMsTUFBTSxVQUFVLFNBQVMsQ0FBQyxTQUFtQyxFQUFFO0lBQzdELE1BQU0sRUFBRSxHQUFHLEdBQUcsTUFBTSxFQUFFLEtBQUssR0FBRyxNQUFNLEVBQUUsV0FBVyxHQUFHLFVBQVUsRUFBRSxRQUFRLEdBQUcsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBRTlILE9BQU8sU0FBUyxDQUFDO1FBQ2YsR0FBRyxNQUFNO1FBQ1QsR0FBRztRQUNILEtBQUs7UUFDTCxXQUFXO1FBQ1gsUUFBUTtRQUNSLFNBQVM7UUFDVCxTQUFTO1FBQ1QsVUFB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QUUsUUFBUSxHQUFHLEtBQUssRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUMxTCxPQUFPLFNBQVMsQ0FBQztRQUNmLEdBQUcsTUFBTTtRQUNULEdBQUc7UUFDSCxXQUFXO1FBQ1gsS0FBSztRQUNMLE9BQU87UUFDUCxZQUFZO1FBQ1osUUFBUTtRQUNSLFNBQVM7S0FDVixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sc0NBQXNDLEdBQUcsaUJBQWlCLENBQUM7QUFDeEUsTUFBTSxDQUFDLE1BQU0sMENBQTBDLEdBQUcsNkJBQTZCLENBQUM7QUFFeEYsTUFBTSxVQUFVLGVBQWUsQ0FBQyxFQUFFLEdBQUcsR0FBRyxRQUFRLEtBQStCLEVBQUU7SUFDL0UsTUFBTSxLQUFLLEdBQUc7UUFDWixHQUFHLFNBQVMsQ0FBQztZQUNYLEdBQUc7WUFDSCxLQUFLLEVBQUUsYUFBYTtZQUNwQixXQUFXLEVBQUUsc0NBQXNDO1lBQ25ELE9BQU8sRUFBRSxlQUFlO1lBQ3hCLFlBQVksRUFBRSxLQUFLO1NBQ3BCLENBQUM7UUFDRixHQUFHLHdCQUF3QixDQUFDO1lBQzFCLFFBQVEsRUFBRTtnQkFDUixPQUFPLEVBQUUsMENBQTBDO2FBQ3BEO1NBQ0YsQ0FBQztLQUNILENBQUM7SUFFRixPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtbHlGaWVsZENvbmZpZyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgVmFsaWRhdG9ycywgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVGV4dEZpZWxkQ29uZmlnLCB0ZXh0RmllbGQgfSBmcm9tICcuL3RleHQuZmllbGQnO1xuaW1wb3J0IHsgTGFiZWxlZEZpZWxkQ29uZmlnLCBEZXNjcmlwdGlvbkZpZWxkQ29uZmlnLCB2YWxpZGF0b3JzRm9yRmllbGRDb25maWcgfSBmcm9tICcuLi8uLi9maWVsZCc7XG5pbXBvcnQgeyBMQVRfTE5HX1BBVFRFUk4sIFVTX1NUQVRFX0NPREVfU1RSSU5HX1JFR0VYLCBaSVBfQ09ERV9TVFJJTkdfUkVHRVggfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IEFERFJFU1NfQ0lUWV9NQVhfTEVOR1RILCBBRERSRVNTX1NUQVRFX0NPREVfTUFYX0xFTkdUSCwgQUREUkVTU19TVEFURV9NQVhfTEVOR1RILCBBRERSRVNTX0NPVU5UUllfTUFYX0xFTkdUSCwgQUREUkVTU19aSVBfTUFYX0xFTkdUSCB9IGZyb20gJ0BkZXJlZWtiL21vZGVsJztcblxuZXhwb3J0IGNvbnN0IFBIT05FX0xBQkVMX01BWF9MRU5HVEggPSAxMDA7XG5cbmV4cG9ydCBjb25zdCBMQUJFTF9TVFJJTkdfTUFYX0xFTkdUSCA9IDEwMDtcbmV4cG9ydCBjb25zdCBTRUFSQ0hfU1RSSU5HX01BWF9MRU5HVEggPSAxMDA7XG5cbmV4cG9ydCBmdW5jdGlvbiBuYW1lRmllbGQoY29uZmlnOiBQYXJ0aWFsPFRleHRGaWVsZENvbmZpZz4gPSB7fSk6IEZvcm1seUZpZWxkQ29uZmlnIHtcbiAgY29uc3QgeyBrZXkgPSAnbmFtZScsIGxhYmVsID0gJ05hbWUnLCBwbGFjZWhvbGRlciA9ICdKb2huIERvZScsIHJlcXVpcmVkID0gZmFsc2UsIG1pbkxlbmd0aCwgbWF4TGVuZ3RoLCBhdHRyaWJ1dGVzIH0gPSBjb25maWc7XG5cbiAgcmV0dXJuIHRleHRGaWVsZCh7XG4gICAgLi4uY29uZmlnLFxuICAgIGtleSxcbiAgICBsYWJlbCxcbiAgICBwbGFjZWhvbGRlcixcbiAgICByZXF1aXJlZCxcbiAgICBtaW5MZW5ndGgsXG4gICAgbWF4TGVuZ3RoLFxuICAgIGF0dHJpYnV0ZXNcbiAgfSk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW1haWxGaWVsZENvbmZpZyBleHRlbmRzIFBhcnRpYWw8TGFiZWxlZEZpZWxkQ29uZmlnPiwgRGVzY3JpcHRpb25GaWVsZENvbmZpZyB7XG4gIHJvd3M/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbWFpbEZpZWxkKGNvbmZpZzogRW1haWxGaWVsZENvbmZpZyA9IHt9KTogRm9ybWx5RmllbGRDb25maWcge1xuICBjb25zdCB7IGtleSA9ICdlbWFpbCcsIGxhYmVsID0gJ0VtYWlsIEFkZHJlc3MnLCBwbGFjZWhvbGRlciA9ICd5b3VAZXhhbXBsZS5jb20nIH0gPSBjb25maWc7XG4gIGNvbnN0IGVtYWlsRmllbGRDb25maWcgPSB0ZXh0RmllbGQoe1xuICAgIC4uLmNvbmZpZyxcbiAgICBrZXksXG4gICAgbGFiZWwsXG4gICAgcGxhY2Vob2xkZXIsXG4gICAgaW5wdXRUeXBlOiAnZW1haWwnXG4gIH0pO1xuXG4gIGVtYWlsRmllbGRDb25maWcudmFsaWRhdG9ycyA9IHtcbiAgICBlbWFpbDoge1xuICAgICAgZXhwcmVzc2lvbjogKGM6IEFic3RyYWN0Q29udHJvbCkgPT4gIVZhbGlkYXRvcnMuZW1haWwoYyksXG4gICAgICBtZXNzYWdlOiAoKSA9PiBgTm90IGEgdmFsaWQgZW1haWwgYWRkcmVzcy5gXG4gICAgfVxuICB9O1xuXG4gIHJldHVybiBlbWFpbEZpZWxkQ29uZmlnO1xufVxuXG5leHBvcnQgdHlwZSBDaXR5RmllbGRDb25maWcgPSBQYXJ0aWFsPFRleHRGaWVsZENvbmZpZz47XG5cbmV4cG9ydCBmdW5jdGlvbiBjaXR5RmllbGQoY29uZmlnOiBDaXR5RmllbGRDb25maWcgPSB7fSk6IEZvcm1seUZpZWxkQ29uZmlnIHtcbiAgY29uc3QgeyBrZXkgPSAnY2l0eScsIHBsYWNlaG9sZGVyID0gJycsIGxhYmVsID0gJ0NpdHknLCBhdXRvY29tcGxldGUgPSAnY2l0eScsIG1heExlbmd0aCA9IEFERFJFU1NfQ0lUWV9NQVhfTEVOR1RILCByZXF1aXJlZCA9IGZhbHNlIH0gPSBjb25maWc7XG4gIHJldHVybiB0ZXh0RmllbGQoe1xuICAgIC4uLmNvbmZpZyxcbiAgICBrZXksXG4gICAgcGxhY2Vob2xkZXIsXG4gICAgbGFiZWwsXG4gICAgYXV0b2NvbXBsZXRlLFxuICAgIHJlcXVpcmVkLFxuICAgIG1heExlbmd0aFxuICB9KTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGF0ZUZpZWxkQ29uZmlnIGV4dGVuZHMgUGFydGlhbDxUZXh0RmllbGRDb25maWc+IHtcbiAgYXNDb2RlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0YXRlRmllbGQoY29uZmlnOiBTdGF0ZUZpZWxkQ29uZmlnID0ge30pOiBGb3JtbHlGaWVsZENvbmZpZyB7XG4gIGNvbnN0IHsgYXNDb2RlID0gZmFsc2UsIHBhdHRlcm4gPSBhc0NvZGUgPyBVU19TVEFURV9DT0RFX1NUUklOR19SRUdFWCA6IHVuZGVmaW5lZCwga2V5ID0gJ3N0YXRlJywgcGxhY2Vob2xkZXIgPSAnJywgbGFiZWwgPSAnU3RhdGUnLCBhdXRvY29tcGxldGUgPSAnc3RhdGUnLCBtYXhMZW5ndGggPSBhc0NvZGUgPyBBRERSRVNTX1NUQVRFX0NPREVfTUFYX0xFTkdUSCA6IEFERFJFU1NfU1RBVEVfTUFYX0xFTkdUSCwgdHJhbnNmb3JtLCByZXF1aXJlZCA9IGZhbHNlIH0gPSBjb25maWc7XG4gIHJldHVybiB0ZXh0RmllbGQoe1xuICAgIC4uLmNvbmZpZyxcbiAgICBrZXksXG4gICAgcGxhY2Vob2xkZXIsXG4gICAgbGFiZWwsXG4gICAgcGF0dGVybixcbiAgICBhdXRvY29tcGxldGUsXG4gICAgcmVxdWlyZWQsXG4gICAgbWF4TGVuZ3RoLFxuICAgIHRyYW5zZm9ybToge1xuICAgICAgLi4udHJhbnNmb3JtLFxuICAgICAgdG9VcHBlcmNhc2U6IGFzQ29kZSB8fCB0cmFuc2Zvcm0/LnRvVXBwZXJjYXNlXG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IHR5cGUgQ291bnRyeUZpZWxkQ29uZmlnID0gUGFydGlhbDxUZXh0RmllbGRDb25maWc+O1xuXG5leHBvcnQgZnVuY3Rpb24gY291bnRyeUZpZWxkKGNvbmZpZzogQ291bnRyeUZpZWxkQ29uZmlnID0ge30pOiBGb3JtbHlGaWVsZENvbmZpZyB7XG4gIGNvbnN0IHsga2V5ID0gJ2NvdW50cnknLCBwbGFjZWhvbGRlciA9ICcnLCBsYWJlbCA9ICdDb3VudHJ5JywgYXV0b2NvbXBsZXRlID0gJ2NvdW50cnknLCBtYXhMZW5ndGggPSBBRERSRVNTX0NPVU5UUllfTUFYX0xFTkdUSCwgcmVxdWlyZWQgPSBmYWxzZSB9ID0gY29uZmlnO1xuICByZXR1cm4gdGV4dEZpZWxkKHtcbiAgICAuLi5jb25maWcsXG4gICAga2V5LFxuICAgIHBsYWNlaG9sZGVyLFxuICAgIGxhYmVsLFxuICAgIGF1dG9jb21wbGV0ZSxcbiAgICByZXF1aXJlZCxcbiAgICBtYXhMZW5ndGhcbiAgfSk7XG59XG5cbmV4cG9ydCB0eXBlIFppcENvZGVGaWVsZENvbmZpZyA9IFBhcnRpYWw8VGV4dEZpZWxkQ29uZmlnPjtcblxuZXhwb3J0IGZ1bmN0aW9uIHppcENvZGVGaWVsZChjb25maWc6IFppcENvZGVGaWVsZENvbmZpZyA9IHt9KTogRm9ybWx5RmllbGRDb25maWcge1xuICBjb25zdCB7IGtleSA9ICd6aXAnLCBwbGFjZWhvbGRlciA9ICcnLCBsYWJlbCA9ICdaaXAgQ29kZScsIGF1dG9jb21wbGV0ZSA9ICdwb3N0YWwtY29kZScsIHBhdHRlcm4gPSBaSVBfQ09ERV9TVFJJTkdfUkVHRVgsIG1heExlbmd0aCA9IEFERFJFU1NfWklQX01BWF9MRU5HVEgsIHJlcXVpcmVkID0gZmFsc2UgfSA9IGNvbmZpZztcbiAgcmV0dXJuIHRleHRGaWVsZCh7XG4gICAgLi4uY29uZmlnLFxuICAgIGtleSxcbiAgICBwbGFjZWhvbGRlcixcbiAgICBsYWJlbCxcbiAgICBwYXR0ZXJuLFxuICAgIGF1dG9jb21wbGV0ZSxcbiAgICByZXF1aXJlZCxcbiAgICBtYXhMZW5ndGhcbiAgfSk7XG59XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0xBVF9MTkdfVEVYVF9GSUVMRF9QTEFDRUhPTERFUiA9ICcxMi4zNDUsLTY3Ljg5MTAnO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfTEFUX0xOR19URVhUX0ZJRUxEX1BBVFRFUk5fTUVTU0FHRSA9IGBJbnZhbGlkL3Vua25vd24gY29vcmRpbmF0ZXNgO1xuXG5leHBvcnQgZnVuY3Rpb24gbGF0TG5nVGV4dEZpZWxkKHsga2V5ID0gJ2xhdExuZycgfTogUGFydGlhbDxUZXh0RmllbGRDb25maWc+ID0ge30pOiBGb3JtbHlGaWVsZENvbmZpZyB7XG4gIGNvbnN0IGZpZWxkID0ge1xuICAgIC4uLnRleHRGaWVsZCh7XG4gICAgICBrZXksXG4gICAgICBsYWJlbDogJ0Nvb3JkaW5hdGVzJyxcbiAgICAgIHBsYWNlaG9sZGVyOiBERUZBVUxUX0xBVF9MTkdfVEVYVF9GSUVMRF9QTEFDRUhPTERFUixcbiAgICAgIHBhdHRlcm46IExBVF9MTkdfUEFUVEVSTixcbiAgICAgIGF1dG9jb21wbGV0ZTogZmFsc2VcbiAgICB9KSxcbiAgICAuLi52YWxpZGF0b3JzRm9yRmllbGRDb25maWcoe1xuICAgICAgbWVzc2FnZXM6IHtcbiAgICAgICAgcGF0dGVybjogREVGQVVMVF9MQVRfTE5HX1RFWFRfRklFTERfUEFUVEVSTl9NRVNTQUdFXG4gICAgICB9XG4gICAgfSlcbiAgfTtcblxuICByZXR1cm4gZmllbGQ7XG59XG4iXX0=