imm-element-ui 0.1.6 → 0.1.8

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.
@@ -76,20 +76,20 @@ const _fieldUtils = {
76
76
  return this.getModel(model[k], keys.join('.'));
77
77
  }
78
78
  },
79
- triggerHookAndSetValue: (field, value, detectModelChange, hookObservers, callback) => {
79
+ triggerHookAndSetValue: (field, value, detectModelChange, hookObservers, callback, datePipe) => {
80
80
  if (field.hook) {
81
81
  const sub = field.hook
82
82
  .pipe(tap((func) => {
83
83
  func(field);
84
84
  }))
85
85
  .subscribe(() => {
86
- field.fieldControl?.setValue(fieldUtils.toFieldValue(field, value), { onlySelf: false, emitEvent: false }, detectModelChange),
86
+ field.fieldControl?.setValue(_fieldUtils.toFieldValue(field, value, datePipe), { onlySelf: false, emitEvent: false }, detectModelChange),
87
87
  callback && callback();
88
88
  });
89
89
  hookObservers.push(() => sub.unsubscribe());
90
90
  }
91
91
  else {
92
- field.fieldControl?.setValue(fieldUtils.toFieldValue(field, value), { onlySelf: false, emitEvent: false }, detectModelChange);
92
+ field.fieldControl?.setValue(_fieldUtils.toFieldValue(field, value, datePipe), { onlySelf: false, emitEvent: false }, detectModelChange);
93
93
  callback && callback();
94
94
  }
95
95
  },
@@ -133,10 +133,13 @@ const _fieldUtils = {
133
133
  fromUploadValue: (field, target) => {
134
134
  return target.join(';');
135
135
  },
136
- toFieldValue: (field, raw) => {
136
+ toFieldValue: (field, raw, datePipe) => {
137
137
  if (field.type == 'treeselect') {
138
138
  return _fieldUtils.toTreeSelectValue(field, raw);
139
139
  }
140
+ if (field.type == 'datepicker') {
141
+ return _fieldUtils.toDataPickerValue(field, raw, datePipe);
142
+ }
140
143
  if (field.type == 'multiselect') {
141
144
  return _fieldUtils.toMultiSelectValue(field, raw);
142
145
  }
@@ -156,6 +159,10 @@ const _fieldUtils = {
156
159
  _fieldUtils.findTreeNodes(raw?.split(',') || [], field.treeSelectProps?.options || [], nodes);
157
160
  return nodes;
158
161
  },
162
+ toDataPickerValue: (field, raw, datePipe) => {
163
+ const dateFormat = (field.datePickerProps?.dateFormat || 'yy-mm-dd').replace('yy', 'yyyy').replace('mm', 'MM');
164
+ return datePipe.transform(raw, dateFormat, 'GMT') || raw;
165
+ },
159
166
  toMultiSelectValue: (field, raw) => {
160
167
  if (!field.multiSelectProps?.optionValue) {
161
168
  return raw || '';
@@ -220,8 +227,7 @@ export const fieldUtils = {
220
227
  label: _fieldUtils.label,
221
228
  triggerHookAndSetValue: _fieldUtils.triggerHookAndSetValue,
222
229
  fromFieldValue: _fieldUtils.fromFieldValue,
223
- toFieldValue: _fieldUtils.toFieldValue,
224
230
  transLog: _fieldUtils.transLog,
225
231
  isFakedChange: _fieldUtils.isFakedChange,
226
232
  };
227
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL2Zvcm0vZm9ybS1maWVsZC9maWVsZC11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTNCLE1BQU0sV0FBVyxHQUFHO0lBQ25CLEtBQUssRUFBRSxDQUFDLEtBQWdCLEVBQWMsRUFBRTtRQUN2QyxJQUFJLEtBQUssR0FBZSxFQUFFLENBQUM7UUFDM0IsUUFBUSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDcEIsS0FBSyxXQUFXO2dCQUNmLEtBQUssR0FBRyxLQUFLLENBQUMsY0FBZSxDQUFDO2dCQUM5QixNQUFNO1lBQ1AsS0FBSyxhQUFhO2dCQUNqQixLQUFLLEdBQUcsS0FBSyxDQUFDLGdCQUFpQixDQUFDO2dCQUNoQyxNQUFNO1lBQ1AsS0FBSyxRQUFRO2dCQUNaLEtBQUssR0FBRyxLQUFLLENBQUMsV0FBWSxDQUFDO2dCQUMzQixNQUFNO1lBQ1AsS0FBSyxZQUFZO2dCQUNoQixLQUFLLEdBQUcsS0FBSyxDQUFDLGVBQWdCLENBQUM7Z0JBQy9CLE1BQU07WUFDUCxLQUFLLFlBQVk7Z0JBQ2hCLEtBQUssR0FBRyxLQUFLLENBQUMsZUFBZ0IsQ0FBQztnQkFDL0IsTUFBTTtZQUNQLEtBQUssY0FBYztnQkFDbEIsS0FBSyxHQUFHLEtBQUssQ0FBQyxpQkFBa0IsQ0FBQztnQkFDakMsTUFBTTtZQUNQLEtBQUssYUFBYTtnQkFDakIsS0FBSyxHQUFHLEtBQUssQ0FBQyxnQkFBaUIsQ0FBQztnQkFDaEMsTUFBTTtZQUNQLEtBQUssT0FBTztnQkFDWCxLQUFLLEdBQUcsS0FBSyxDQUFDLFVBQVcsQ0FBQztnQkFDMUIsTUFBTTtZQUNQLEtBQUssVUFBVTtnQkFDZCxLQUFLLEdBQUcsS0FBSyxDQUFDLGFBQWMs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RUFBRSxXQUFXLENBQUMsWUFBWTtJQUN0QyxRQUFRLEVBQUUsV0FBVyxDQUFDLFFBQVE7SUFDOUIsYUFBYSxFQUFFLFdBQVcsQ0FBQyxhQUFhO0NBQ3hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtRmllbGQsIEZpZWxkUHJvcHMgfSBmcm9tICcuL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9pMThuLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzJztcclxuXHJcbmNvbnN0IF9maWVsZFV0aWxzID0ge1xyXG5cdHByb3BzOiAoZmllbGQ6IEZvcm1GaWVsZCk6IEZpZWxkUHJvcHMgPT4ge1xyXG5cdFx0bGV0IHByb3BzOiBGaWVsZFByb3BzID0ge307XHJcblx0XHRzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcclxuXHRcdFx0Y2FzZSAnaW5wdXR0ZXh0JzpcclxuXHRcdFx0XHRwcm9wcyA9IGZpZWxkLmlucHV0VGV4dFByb3BzITtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSAnaW5wdXRudW1iZXInOlxyXG5cdFx0XHRcdHByb3BzID0gZmllbGQuaW5wdXROdW1iZXJQcm9wcyE7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGNhc2UgJ3NlbGVjdCc6XHJcblx0XHRcdFx0cHJvcHMgPSBmaWVsZC5zZWxlY3RQcm9wcyE7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGNhc2UgJ3RyZWVzZWxlY3QnOlxyXG5cdFx0XHRcdHByb3BzID0gZmllbGQudHJlZVNlbGVjdFByb3BzITtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSAnZGF0ZXBpY2tlcic6XHJcblx0XHRcdFx0cHJvcHMgPSBmaWVsZC5kYXRlUGlja2VyUHJvcHMhO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlICdhdXRvY29tcGxldGUnOlxyXG5cdFx0XHRcdHByb3BzID0gZmllbGQuYXV0b0NvbXBsZXRlUHJvcHMhO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlICdtdWx0aXNlbGVjdCc6XHJcblx0XHRcdFx0cHJvcHMgPSBmaWVsZC5tdWx0aVNlbGVjdFByb3BzITtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSAncmFkaW8nOlxyXG5cdFx0XHRcdHByb3BzID0gZmllbGQucmFkaW9Qcm9wcyE7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGNhc2UgJ3RleHRhcmVhJzpcclxuXHRcdFx0XHRwcm9wcyA9IGZpZWxkLnRleHRBcmVhUHJvcHMhO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlICd1cGxvYWQnOlxyXG5cdFx0XHRcdHByb3BzID0gZmllbGQudXBsb2FkUHJvcHMhO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlICdpbWFnZSc6XHJcblx0XHRcdFx0cHJvcHMgPSBmaWVsZC5pbWFnZVByb3BzITtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSAnY29kZW1pcnJvcic6XHJcblx0XHRcdFx0cHJvcHMgPSBmaWVsZC5jb2RlTWlycm9yUHJvcHMhO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHByb3BzO1xyXG5cdH0sXHJcblx0bGFiZWw6IChmaWVsZDogRm9ybUZpZWxkLCBpMThuU2VydmljZTogSTE4blNlcnZpY2UpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xyXG5cdFx0Y29uc3QgaTE4bktleSA9IF9maWVsZFV0aWxzLnByb3BzKGZpZWxkKS5pMThuS2V5O1xyXG5cdFx0aWYgKGkxOG5LZXkpIHtcclxuXHRcdFx0cmV0dXJuIGkxOG5TZXJ2aWNlLmZhbnlpKGkxOG5LZXkpO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIF9maWVsZFV0aWxzLnByb3BzKGZpZWxkKS5sYWJlbDtcclxuXHR9LFxyXG5cdHNldE1vZGVsKG1vZGVsOiBhbnksIGtleTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XHJcblx0XHRjb25zdCBrZXlzID0ga2V5LnNwbGl0KCcuJyk7XHJcblx0XHRpZiAoa2V5cy5sZW5ndGggPT0gMSkge1xyXG5cdFx0XHRtb2RlbFtrZXldID0gdmFsdWU7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGNvbnN0IGs6IGFueSA9IGtleXMuc2hpZnQoKTtcclxuXHRcdFx0aWYgKG1vZGVsW2tdID09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHRcdG1vZGVsW2tdID0ge307XHJcblx0XHRcdH1cclxuXHRcdFx0dGhpcy5zZXRNb2RlbChtb2RlbFtrXSwga2V5cy5qb2luKCcuJyksIHZhbHVlKTtcclxuXHRcdH1cclxuXHR9LFxyXG5cdGdldE1vZGVsKG1vZGVsOiBhbnksIGtleTogc3RyaW5nKTogYW55IHtcclxuXHRcdGNvbnN0IGtleXMgPSBrZXkuc3BsaXQoJy4nKTtcclxuXHRcdGlmIChrZXlzLmxlbmd0aCA9PSAxKSB7XHJcblx0XHRcdHJldHVybiBtb2RlbFtrZXldO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0Y29uc3QgazogYW55ID0ga2V5cy5zaGlmdCgpO1xyXG5cdFx0XHRpZiAobW9kZWxba10gPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdFx0bW9kZWxba10gPSB7fTtcclxuXHRcdFx0fVxyXG5cdFx0XHRyZXR1cm4gdGhpcy5nZXRNb2RlbChtb2RlbFtrXSwga2V5cy5qb2luKCcuJykpO1xyXG5cdFx0fVxyXG5cdH0sXHJcblx0dHJpZ2dlckhvb2tBbmRTZXRWYWx1ZTogKGZpZWxkOiBGb3JtRmllbGQsIHZhbHVlOiBhbnksIGRldGVjdE1vZGVsQ2hhbmdlOiBib29sZWFuLCBob29rT2JzZXJ2ZXJzOiBhbnlbXSwgY2FsbGJhY2s6IGFueSkgPT4ge1xyXG5cdFx0aWYgKGZpZWxkLmhvb2spIHtcclxuXHRcdFx0Y29uc3Qgc3ViID0gZmllbGQuaG9va1xyXG5cdFx0XHRcdC5waXBlKFxyXG5cdFx0XHRcdFx0dGFwKChmdW5jKSA9PiB7XHJcblx0XHRcdFx0XHRcdGZ1bmMoZmllbGQpO1xyXG5cdFx0XHRcdFx0fSksXHJcblx0XHRcdFx0KVxyXG5cdFx0XHRcdC5zdWJzY3JpYmUoKCkgPT4ge1xyXG5cdFx0XHRcdFx0ZmllbGQuZmllbGRDb250cm9sPy5zZXRWYWx1ZShmaWVsZFV0aWxzLnRvRmllbGRWYWx1ZShmaWVsZCwgdmFsdWUpLCB7IG9ubHlTZWxmOiBmYWxzZSwgZW1pdEV2ZW50OiBmYWxzZSB9LCBkZXRlY3RNb2RlbENoYW5nZSksXHJcblx0XHRcdFx0XHRcdGNhbGxiYWNrICYmIGNhbGxiYWNrKCk7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdGhvb2tPYnNlcnZlcnMucHVzaCgoKSA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRmaWVsZC5maWVsZENvbnRyb2w/LnNldFZhbHVlKGZpZWxkVXRpbHMudG9GaWVsZFZhbHVlKGZpZWxkLCB2YWx1ZSksIHsgb25seVNlbGY6IGZhbHNlLCBlbWl0RXZlbnQ6IGZhbHNlIH0sIGRldGVjdE1vZGVsQ2hhbmdlKTtcclxuXHRcdFx0Y2FsbGJhY2sgJiYgY2FsbGJhY2soKTtcclxuXHRcdH1cclxuXHR9LFxyXG5cdGZyb21GaWVsZFZhbHVlOiAoZmllbGQ6IEZvcm1GaWVsZCwgdGFyZ2V0OiBhbnksIGRhdGVQaXBlOiBEYXRlUGlwZSk6IGFueSA9PiB7XHJcblx0XHRpZiAoZmllbGQudHlwZSA9PSAndHJlZXNlbGVjdCcpIHtcclxuXHRcdFx0cmV0dXJuIF9maWVsZFV0aWxzLmZyb21UcmVlU2VsZWN0VmFsdWUoZmllbGQsIHRhcmdldCk7XHJcblx0XHR9XHJcblx0XHRpZiAoZmllbGQudHlwZSA9PSAnZGF0ZXBpY2tlcicpIHtcclxuXHRcdFx0cmV0dXJuIF9maWVsZFV0aWxzLmZyb21EYXRhUGlja2VyVmFsdWUoZmllbGQsIHRhcmdldCwgZGF0ZVBpcGUpO1xyXG5cdFx0fVxyXG5cdFx0aWYgKGZpZWxkLnR5cGUgPT0gJ211bHRpc2VsZWN0Jykge1xyXG5cdFx0XHRyZXR1cm4gX2ZpZWxkVXRpbHMuZnJvbU11bHRpU2VsZWN0VmFsdWUoZmllbGQsIHRhcmdldCk7XHJcblx0XHR9XHJcblx0XHRpZiAoZmllbGQudHlwZSA9PSAnaW1hZ2UnKSB7XHJcblx0XHRcdHJldHVybiBfZmllbGRVdGlscy5mcm9tSW1hZ2VWYWx1ZShmaWVsZCwgdGFyZ2V0KTtcclxuXHRcdH1cclxuXHRcdGlmIChmaWVsZC50eXBlID09ICd1cGxvYWQnKSB7XHJcblx0XHRcdHJldHVybiBfZmllbGRVdGlscy5mcm9tVXBsb2FkVmFsdWUoZmllbGQsIHRhcmdldCk7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gdGFyZ2V0O1xyXG5cdH0sXHJcblx0ZnJvbVRyZWVTZWxlY3RWYWx1ZTogKGZpZWxkOiBGb3JtRmllbGQsIHRhcmdldDogYW55KTogc3RyaW5nID0+IHtcclxuXHRcdGlmIChmaWVsZC50cmVlU2VsZWN0UHJvcHM/LnNlbGVjdGlvbk1vZGUgPT0gJ3NpbmdsZScpIHtcclxuXHRcdFx0cmV0dXJuIHRhcmdldC5rZXk7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gdGFyZ2V0Lm1hcCgoaXRlbTogYW55KSA9PiBpdGVtLmtleSkuam9pbignLCcpO1xyXG5cdH0sXHJcblx0ZnJvbURhdGFQaWNrZXJWYWx1ZTogKGZpZWxkOiBGb3JtRmllbGQsIHRhcmdldDogYW55LCBkYXRlUGlwZTogRGF0ZVBpcGUpOiBzdHJpbmcgPT4ge1xyXG5cdFx0Y29uc3QgZGF0ZUZvcm1hdCA9IChmaWVsZC5kYXRlUGlja2VyUHJvcHM/LmRhdGVGb3JtYXQgfHwgJ3l5LW1tLWRkJykucmVwbGFjZSgneXknLCAneXl5eScpLnJlcGxhY2UoJ21tJywgJ01NJyk7XHJcblx0XHRyZXR1cm4gZGF0ZVBpcGUudHJhbnNmb3JtKHRhcmdldCwgZGF0ZUZvcm1hdCkgfHwgdGFyZ2V0O1xyXG5cdH0sXHJcblx0ZnJvbU11bHRpU2VsZWN0VmFsdWU6IChmaWVsZDogRm9ybUZpZWxkLCB0YXJnZXQ6IGFueSk6IHN0cmluZyA9PiB7XHJcblx0XHRpZiAoIWZpZWxkLm11bHRpU2VsZWN0UHJvcHM/Lm9wdGlvblZhbHVlKSB7XHJcblx0XHRcdHJldHVybiB0YXJnZXQ7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gdGFyZ2V0LmpvaW4oJywnKTtcclxuXHR9LFxyXG5cdGZyb21JbWFnZVZhbHVlOiAoZmllbGQ6IEZvcm1GaWVsZCwgdGFyZ2V0OiBhbnkpOiBzdHJpbmcgPT4ge1xyXG5cdFx0cmV0dXJuIHRhcmdldC5qb2luKCc7Jyk7XHJcblx0fSxcclxuXHRmcm9tVXBsb2FkVmFsdWU6IChmaWVsZDogRm9ybUZpZWxkLCB0YXJnZXQ6IGFueSk6IHN0cmluZyA9PiB7XHJcblx0XHRyZXR1cm4gdGFyZ2V0LmpvaW4oJzsnKTtcclxuXHR9LFxyXG5cdHRvRmllbGRWYWx1ZTogKGZpZWxkOiBGb3JtRmllbGQsIHJhdzogYW55KTogYW55ID0+IHtcclxuXHRcdGlmIChmaWVsZC50eXBlID09ICd0cmVlc2VsZWN0Jykge1xyXG5cdFx0XHRyZXR1cm4gX2ZpZWxkVXRpbHMudG9UcmVlU2VsZWN0VmFsdWUoZmllbGQsIHJhdyk7XHJcblx0XHR9XHJcblx0XHRpZiAoZmllbGQudHlwZSA9PSAnbXVsdGlzZWxlY3QnKSB7XHJcblx0XHRcdHJldHVybiBfZmllbGRVdGlscy50b011bHRpU2VsZWN0VmFsdWUoZmllbGQsIHJhdyk7XHJcblx0XHR9XHJcblx0XHRpZiAoZmllbGQudHlwZSA9PSAnaW1hZ2UnKSB7XHJcblx0XHRcdHJldHVybiBfZmllbGRVdGlscy50b0ltYWdlVmFsdWUoZmllbGQsIHJhdyk7XHJcblx0XHR9XHJcblx0XHRpZiAoZmllbGQudHlwZSA9PSAndXBsb2FkJykge1xyXG5cdFx0XHRyZXR1cm4gX2ZpZWxkVXRpbHMudG9VcGxvYWRWYWx1ZShmaWVsZCwgcmF3KTtcclxuXHRcdH1cclxuXHRcdHJldHVybiByYXcgfHwgJyc7XHJcblx0fSxcclxuXHR0b1RyZWVTZWxlY3RWYWx1ZTogKGZpZWxkOiBGb3JtRmllbGQsIHJhdzogYW55KTogYW55ID0+IHtcclxuXHRcdGlmIChmaWVsZC50cmVlU2VsZWN0UHJvcHM/LnNlbGVjdGlvbk1vZGUgPT0gJ3NpbmdsZScpIHtcclxuXHRcdFx0cmV0dXJuIF9maWVsZFV0aWxzLmZpbmRUcmVlTm9kZShyYXcsIGZpZWxkLnRyZWVTZWxlY3RQcm9wcz8ub3B0aW9ucyk7XHJcblx0XHR9XHJcblx0XHRjb25zdCBub2RlczogYW55W10gPSBbXTtcclxuXHRcdF9maWVsZFV0aWxzLmZpbmRUcmVlTm9kZXMocmF3Py5zcGxpdCgnLCcpIHx8IFtdLCBmaWVsZC50cmVlU2VsZWN0UHJvcHM/Lm9wdGlvbnMgfHwgW10sIG5vZGVzKTtcclxuXHRcdHJldHVybiBub2RlcztcclxuXHR9LFxyXG5cdHRvTXVsdGlTZWxlY3RWYWx1ZTogKGZpZWxkOiBGb3JtRmllbGQsIHJhdzogYW55KTogYW55ID0+IHtcclxuXHRcdGlmICghZmllbGQubXVsdGlTZWxlY3RQcm9wcz8ub3B0aW9uVmFsdWUpIHtcclxuXHRcdFx0cmV0dXJuIHJhdyB8fCAnJztcclxuXHRcdH1cclxuXHRcdHJldHVybiAocmF3ICYmIHJhdy5zcGxpdCgnLCcpKSB8fCAnJztcclxuXHR9LFxyXG5cdHRvSW1hZ2VWYWx1ZTogKGZpZWxkOiBGb3JtRmllbGQsIHJhdzogYW55KTogYW55ID0+IHtcclxuXHRcdHJldHVybiAocmF3ICYmIHJhdy5zcGxpdCgnOycpKSB8fCBbXTtcclxuXHR9LFxyXG5cdHRvVXBsb2FkVmFsdWU6IChmaWVsZDogRm9ybUZpZWxkLCByYXc6IGFueSk6IGFueSA9PiB7XHJcblx0XHRyZXR1cm4gKHJhdyAmJiByYXcuc3BsaXQoJzsnKSkgfHwgW107XHJcblx0fSxcclxuXHRmaW5kVHJlZU5vZGUodmFsdWU6IHN0cmluZywgY2hpbGRyZW4/OiBhbnlbXSk6IGFueSB7XHJcblx0XHRpZiAoIWNoaWxkcmVuIHx8IGNoaWxkcmVuLmxlbmd0aCA9PSAwKSByZXR1cm47XHJcblx0XHRjb25zdCBuID0gY2hpbGRyZW4uZmluZCgobykgPT4gby5rZXkgPT0gdmFsdWUpO1xyXG5cdFx0aWYgKG4pIHJldHVybiBuO1xyXG5cdFx0Zm9yIChjb25zdCBjaCBvZiBjaGlsZHJlbikge1xyXG5cdFx0XHRjb25zdCBjbiA9IHRoaXMuZmluZFRyZWVOb2RlKHZhbHVlLCBjaC5jaGlsZHJlbik7XHJcblx0XHRcdGlmIChjbikgcmV0dXJuIGNuO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuO1xyXG5cdH0sXHJcblx0ZmluZFRyZWVOb2Rlcyh2YWx1ZXM6IHN0cmluZ1tdLCBjaGlsZHJlbj86IGFueVtdLCBub2Rlcz86IGFueVtdKTogdm9pZCB7XHJcblx0XHRpZiAoIWNoaWxkcmVuIHx8IGNoaWxkcmVuLmxlbmd0aCA9PSAwKSByZXR1cm47XHJcblx0XHRjb25zdCB0YXJzID0gY2hpbGRyZW4uZmlsdGVyKChvKSA9PiB2YWx1ZXMuaW5kZXhPZihvLmtleSkgIT0gLTEpO1xyXG5cdFx0bm9kZXM/LnB1c2goLi4udGFycyk7XHJcblx0XHRmb3IgKGNvbnN0IGNoIG9mIGNoaWxkcmVuKSB7XHJcblx0XHRcdHRoaXMuZmluZFRyZWVOb2Rlcyh2YWx1ZXMsIGNoLmNoaWxkcmVuLCBub2Rlcyk7XHJcblx0XHR9XHJcblx0fSxcclxuXHR0cmFuc0xvZyhyYXdNb2RlbDogYW55LCBjaGFuZ2VkTW9kZWw6IGFueSwgbWFpblZhbHVlOiBhbnksIGlzTmV3OiBib29sZWFuKTogc3RyaW5nIHtcclxuXHRcdGlmIChpc05ldykge1xyXG5cdFx0XHRyZXR1cm4gJ+aWsOW7uu+8micgKyBtYWluVmFsdWU7XHJcblx0XHR9XHJcblx0XHRjb25zdCBkZXRhaWw6IHN0cmluZ1tdID0gW107XHJcblx0XHRPYmplY3Qua2V5cyhjaGFuZ2VkTW9kZWwpLmZvckVhY2goKGtleSkgPT4ge1xyXG5cdFx0XHRpZiAoY2hhbmdlZE1vZGVsW2tleV0udHlwZSA9PSAnY29kZW1pcnJvcicpIHtcclxuXHRcdFx0XHRkZXRhaWwucHVzaChgWyR7Y2hhbmdlZE1vZGVsW2tleV0ubmFtZX1dIOWPmOabtGApO1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cdFx0XHRkZXRhaWwucHVzaChgWyR7Y2hhbmdlZE1vZGVsW2tleV0ubmFtZX1dICR7cmF3TW9kZWxba2V5XSB8fCAnJ30gLT4gJHtjaGFuZ2VkTW9kZWxba2V5XS52YWx1ZSB8fCAnJ31gKTtcclxuXHRcdH0pO1xyXG5cdFx0cmV0dXJuIGRldGFpbC5qb2luKCc7Jyk7XHJcblx0fSxcclxuXHQvLyDnu4/mtYvor5VzZWxlY3Tnu4Tku7bmnInlhoXpg6hidWdcclxuXHQvLyDorr7nva5tb2RlbOaXtu+8jGZpZWxkQ29udHJvbC5zZXRWYWx1ZeeahGVtaXRFdmVudOWPguaVsOS4umZhbHNlLOS7jeS8muinpuWPkXZhbHVlQ2hhbmdlc+S6i+S7tlxyXG5cdC8vIOinpuWPkXZhbHVlQ2hhbmdlc+S8muW9seWTjeaXpeW/l+S/neWtmOeahOWHhuehruaAp++8jOaVheatpOaWueazleS7heaYr+S4uuS6humYsuatoue7hOS7tuWGhemDqOaEj+WkluinpuWPkeeahOWPmOWKqFxyXG5cdGlzRmFrZWRDaGFuZ2UobmV3VmFsdWU6IGFueSwgb2xkVmFsdWU6IGFueSwgZmllbGQ6IEZvcm1GaWVsZCk6IGJvb2xlYW4ge1xyXG5cdFx0Y29uc3QgY2hhbmdlVHlwZXMgPSBbJ2lucHV0dGV4dCcsICdpbnB1dG51bWJlcicsICdzZWxlY3QnLCAndHJlZXNlbGVjdCcsICdkYXRlcGlja2VyJywgJ2F1dG9jb21wbGV0ZScsICdtdWx0aXNlbGVjdCcsICdyYWRpbyddO1xyXG5cdFx0aWYgKGNoYW5nZVR5cGVzLmluY2x1ZGVzKGZpZWxkLnR5cGUhKSkge1xyXG5cdFx0XHRyZXR1cm4gKG9sZFZhbHVlIHx8ICcnKSA9PSAobmV3VmFsdWUgfHwgJycpO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIGZhbHNlO1xyXG5cdH0sXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgZmllbGRVdGlscyA9IHtcclxuXHRwcm9wczogX2ZpZWxkVXRpbHMucHJvcHMsXHJcblx0bGFiZWw6IF9maWVsZFV0aWxzLmxhYmVsLFxyXG5cdHRyaWdnZXJIb29rQW5kU2V0VmFsdWU6IF9maWVsZFV0aWxzLnRyaWdnZXJIb29rQW5kU2V0VmFsdWUsXHJcblx0ZnJvbUZpZWxkVmFsdWU6IF9maWVsZFV0aWxzLmZyb21GaWVsZFZhbHVlLFxyXG5cdHRvRmllbGRWYWx1ZTogX2ZpZWxkVXRpbHMudG9GaWVsZFZhbHVlLFxyXG5cdHRyYW5zTG9nOiBfZmllbGRVdGlscy50cmFuc0xvZyxcclxuXHRpc0Zha2VkQ2hhbmdlOiBfZmllbGRVdGlscy5pc0Zha2VkQ2hhbmdlLFxyXG59O1xyXG4iXX0=
233
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL2Zvcm0vZm9ybS1maWVsZC9maWVsZC11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTNCLE1BQU0sV0FBVyxHQUFHO0lBQ25CLEtBQUssRUFBRSxDQUFDLEtBQWdCLEVBQWMsRUFBRTtRQUN2QyxJQUFJLEtBQUssR0FBZSxFQUFFLENBQUM7UUFDM0IsUUFBUSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDcEIsS0FBSyxXQUFXO2dCQUNmLEtBQUssR0FBRyxLQUFLLENBQUMsY0FBZSxDQUFDO2dCQUM5QixNQUFNO1lBQ1AsS0FBSyxhQUFhO2dCQUNqQixLQUFLLEdBQUcsS0FBSyxDQUFDLGdCQUFpQixDQUFDO2dCQUNoQyxNQUFNO1lBQ1AsS0FBSyxRQUFRO2dCQUNaLEtBQUssR0FBRyxLQUFLLENBQUMsV0FBWSxDQUFDO2dCQUMzQixNQUFNO1lBQ1AsS0FBSyxZQUFZO2dCQUNoQixLQUFLLEdBQUcsS0FBSyxDQUFDLGVBQWdCLENBQUM7Z0JBQy9CLE1BQU07WUFDUCxLQUFLLFlBQVk7Z0JBQ2hCLEtBQUssR0FBRyxLQUFLLENBQUMsZUFBZ0IsQ0FBQztnQkFDL0IsTUFBTTtZQUNQLEtBQUssY0FBYztnQkFDbEIsS0FBSyxHQUFHLEtBQUssQ0FBQyxpQkFBa0IsQ0FBQztnQkFDakMsTUFBTTtZQUNQLEtBQUssYUFBYTtnQkFDakIsS0FBSyxHQUFHLEtBQUssQ0FBQyxnQkFBaUIsQ0FBQztnQkFDaEMsTUFBTTtZQUNQLEtBQUssT0FBTztnQkFDWCxLQUFLLEdBQUcsS0FBSyxDQUFDLFVBQVcsQ0FBQztnQkFDMUIsTUFBTTtZQUNQLEtBQUssVUFBVTtnQkFDZCxLQUFLLEdBQUcsS0FBSyxDQUFDLGFBQWMs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UUFDM0QsTUFBTSxXQUFXLEdBQUcsQ0FBQyxXQUFXLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDL0gsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLE9BQU8sQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2QsQ0FBQztDQUNELENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7SUFDekIsS0FBSyxFQUFFLFdBQVcsQ0FBQyxLQUFLO0lBQ3hCLEtBQUssRUFBRSxXQUFXLENBQUMsS0FBSztJQUN4QixzQkFBc0IsRUFBRSxXQUFXLENBQUMsc0JBQXNCO0lBQzFELGNBQWMsRUFBRSxXQUFXLENBQUMsY0FBYztJQUMxQyxRQUFRLEVBQUUsV0FBVyxDQUFDLFFBQVE7SUFDOUIsYUFBYSxFQUFFLFdBQVcsQ0FBQyxhQUFhO0NBQ3hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtRmllbGQsIEZpZWxkUHJvcHMgfSBmcm9tICcuL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9pMThuLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzJztcclxuXHJcbmNvbnN0IF9maWVsZFV0aWxzID0ge1xyXG5cdHByb3BzOiAoZmllbGQ6IEZvcm1GaWVsZCk6IEZpZWxkUHJvcHMgPT4ge1xyXG5cdFx0bGV0IHByb3BzOiBGaWVsZFByb3BzID0ge307XHJcblx0XHRzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcclxuXHRcdFx0Y2FzZSAnaW5wdXR0ZXh0JzpcclxuXHRcdFx0XHRwcm9wcyA9IGZpZWxkLmlucHV0VGV4dFByb3BzITtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSAnaW5wdXRudW1iZXInOlxyXG5cdFx0XHRcdHByb3BzID0gZmllbGQuaW5wdXROdW1iZXJQcm9wcyE7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGNhc2UgJ3NlbGVjdCc6XHJcblx0XHRcdFx0cHJvcHMgPSBmaWVsZC5zZWxlY3RQcm9wcyE7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGNhc2UgJ3RyZWVzZWxlY3QnOlxyXG5cdFx0XHRcdHByb3BzID0gZmllbGQudHJlZVNlbGVjdFByb3BzITtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSAnZGF0ZXBpY2tlcic6XHJcblx0XHRcdFx0cHJvcHMgPSBmaWVsZC5kYXRlUGlja2VyUHJvcHMhO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlICdhdXRvY29tcGxldGUnOlxyXG5cdFx0XHRcdHByb3BzID0gZmllbGQuYXV0b0NvbXBsZXRlUHJvcHMhO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlICdtdWx0aXNlbGVjdCc6XHJcblx0XHRcdFx0cHJvcHMgPSBmaWVsZC5tdWx0aVNlbGVjdFByb3BzITtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSAncmFkaW8nOlxyXG5cdFx0XHRcdHByb3BzID0gZmllbGQucmFkaW9Qcm9wcyE7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGNhc2UgJ3RleHRhcmVhJzpcclxuXHRcdFx0XHRwcm9wcyA9IGZpZWxkLnRleHRBcmVhUHJvcHMhO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlICd1cGxvYWQnOlxyXG5cdFx0XHRcdHByb3BzID0gZmllbGQudXBsb2FkUHJvcHMhO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlICdpbWFnZSc6XHJcblx0XHRcdFx0cHJvcHMgPSBmaWVsZC5pbWFnZVByb3BzITtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSAnY29kZW1pcnJvcic6XHJcblx0XHRcdFx0cHJvcHMgPSBmaWVsZC5jb2RlTWlycm9yUHJvcHMhO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHByb3BzO1xyXG5cdH0sXHJcblx0bGFiZWw6IChmaWVsZDogRm9ybUZpZWxkLCBpMThuU2VydmljZTogSTE4blNlcnZpY2UpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xyXG5cdFx0Y29uc3QgaTE4bktleSA9IF9maWVsZFV0aWxzLnByb3BzKGZpZWxkKS5pMThuS2V5O1xyXG5cdFx0aWYgKGkxOG5LZXkpIHtcclxuXHRcdFx0cmV0dXJuIGkxOG5TZXJ2aWNlLmZhbnlpKGkxOG5LZXkpO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIF9maWVsZFV0aWxzLnByb3BzKGZpZWxkKS5sYWJlbDtcclxuXHR9LFxyXG5cdHNldE1vZGVsKG1vZGVsOiBhbnksIGtleTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XHJcblx0XHRjb25zdCBrZXlzID0ga2V5LnNwbGl0KCcuJyk7XHJcblx0XHRpZiAoa2V5cy5sZW5ndGggPT0gMSkge1xyXG5cdFx0XHRtb2RlbFtrZXldID0gdmFsdWU7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGNvbnN0IGs6IGFueSA9IGtleXMuc2hpZnQoKTtcclxuXHRcdFx0aWYgKG1vZGVsW2tdID09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHRcdG1vZGVsW2tdID0ge307XHJcblx0XHRcdH1cclxuXHRcdFx0dGhpcy5zZXRNb2RlbChtb2RlbFtrXSwga2V5cy5qb2luKCcuJyksIHZhbHVlKTtcclxuXHRcdH1cclxuXHR9LFxyXG5cdGdldE1vZGVsKG1vZGVsOiBhbnksIGtleTogc3RyaW5nKTogYW55IHtcclxuXHRcdGNvbnN0IGtleXMgPSBrZXkuc3BsaXQoJy4nKTtcclxuXHRcdGlmIChrZXlzLmxlbmd0aCA9PSAxKSB7XHJcblx0XHRcdHJldHVybiBtb2RlbFtrZXldO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0Y29uc3QgazogYW55ID0ga2V5cy5zaGlmdCgpO1xyXG5cdFx0XHRpZiAobW9kZWxba10gPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdFx0bW9kZWxba10gPSB7fTtcclxuXHRcdFx0fVxyXG5cdFx0XHRyZXR1cm4gdGhpcy5nZXRNb2RlbChtb2RlbFtrXSwga2V5cy5qb2luKCcuJykpO1xyXG5cdFx0fVxyXG5cdH0sXHJcblx0dHJpZ2dlckhvb2tBbmRTZXRWYWx1ZTogKFxyXG5cdFx0ZmllbGQ6IEZvcm1GaWVsZCxcclxuXHRcdHZhbHVlOiBhbnksXHJcblx0XHRkZXRlY3RNb2RlbENoYW5nZTogYm9vbGVhbixcclxuXHRcdGhvb2tPYnNlcnZlcnM6IGFueVtdLFxyXG5cdFx0Y2FsbGJhY2s6IGFueSxcclxuXHRcdGRhdGVQaXBlOiBEYXRlUGlwZSxcclxuXHQpID0+IHtcclxuXHRcdGlmIChmaWVsZC5ob29rKSB7XHJcblx0XHRcdGNvbnN0IHN1YiA9IGZpZWxkLmhvb2tcclxuXHRcdFx0XHQucGlwZShcclxuXHRcdFx0XHRcdHRhcCgoZnVuYykgPT4ge1xyXG5cdFx0XHRcdFx0XHRmdW5jKGZpZWxkKTtcclxuXHRcdFx0XHRcdH0pLFxyXG5cdFx0XHRcdClcclxuXHRcdFx0XHQuc3Vic2NyaWJlKCgpID0+IHtcclxuXHRcdFx0XHRcdGZpZWxkLmZpZWxkQ29udHJvbD8uc2V0VmFsdWUoXHJcblx0XHRcdFx0XHRcdF9maWVsZFV0aWxzLnRvRmllbGRWYWx1ZShmaWVsZCwgdmFsdWUsIGRhdGVQaXBlKSxcclxuXHRcdFx0XHRcdFx0eyBvbmx5U2VsZjogZmFsc2UsIGVtaXRFdmVudDogZmFsc2UgfSxcclxuXHRcdFx0XHRcdFx0ZGV0ZWN0TW9kZWxDaGFuZ2UsXHJcblx0XHRcdFx0XHQpLFxyXG5cdFx0XHRcdFx0XHRjYWxsYmFjayAmJiBjYWxsYmFjaygpO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRob29rT2JzZXJ2ZXJzLnB1c2goKCkgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0ZmllbGQuZmllbGRDb250cm9sPy5zZXRWYWx1ZShcclxuXHRcdFx0XHRfZmllbGRVdGlscy50b0ZpZWxkVmFsdWUoZmllbGQsIHZhbHVlLCBkYXRlUGlwZSksXHJcblx0XHRcdFx0eyBvbmx5U2VsZjogZmFsc2UsIGVtaXRFdmVudDogZmFsc2UgfSxcclxuXHRcdFx0XHRkZXRlY3RNb2RlbENoYW5nZSxcclxuXHRcdFx0KTtcclxuXHRcdFx0Y2FsbGJhY2sgJiYgY2FsbGJhY2soKTtcclxuXHRcdH1cclxuXHR9LFxyXG5cdGZyb21GaWVsZFZhbHVlOiAoZmllbGQ6IEZvcm1GaWVsZCwgdGFyZ2V0OiBhbnksIGRhdGVQaXBlOiBEYXRlUGlwZSk6IGFueSA9PiB7XHJcblx0XHRpZiAoZmllbGQudHlwZSA9PSAndHJlZXNlbGVjdCcpIHtcclxuXHRcdFx0cmV0dXJuIF9maWVsZFV0aWxzLmZyb21UcmVlU2VsZWN0VmFsdWUoZmllbGQsIHRhcmdldCk7XHJcblx0XHR9XHJcblx0XHRpZiAoZmllbGQudHlwZSA9PSAnZGF0ZXBpY2tlcicpIHtcclxuXHRcdFx0cmV0dXJuIF9maWVsZFV0aWxzLmZyb21EYXRhUGlja2VyVmFsdWUoZmllbGQsIHRhcmdldCwgZGF0ZVBpcGUpO1xyXG5cdFx0fVxyXG5cdFx0aWYgKGZpZWxkLnR5cGUgPT0gJ211bHRpc2VsZWN0Jykge1xyXG5cdFx0XHRyZXR1cm4gX2ZpZWxkVXRpbHMuZnJvbU11bHRpU2VsZWN0VmFsdWUoZmllbGQsIHRhcmdldCk7XHJcblx0XHR9XHJcblx0XHRpZiAoZmllbGQudHlwZSA9PSAnaW1hZ2UnKSB7XHJcblx0XHRcdHJldHVybiBfZmllbGRVdGlscy5mcm9tSW1hZ2VWYWx1ZShmaWVsZCwgdGFyZ2V0KTtcclxuXHRcdH1cclxuXHRcdGlmIChmaWVsZC50eXBlID09ICd1cGxvYWQnKSB7XHJcblx0XHRcdHJldHVybiBfZmllbGRVdGlscy5mcm9tVXBsb2FkVmFsdWUoZmllbGQsIHRhcmdldCk7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gdGFyZ2V0O1xyXG5cdH0sXHJcblx0ZnJvbVRyZWVTZWxlY3RWYWx1ZTogKGZpZWxkOiBGb3JtRmllbGQsIHRhcmdldDogYW55KTogc3RyaW5nID0+IHtcclxuXHRcdGlmIChmaWVsZC50cmVlU2VsZWN0UHJvcHM/LnNlbGVjdGlvbk1vZGUgPT0gJ3NpbmdsZScpIHtcclxuXHRcdFx0cmV0dXJuIHRhcmdldC5rZXk7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gdGFyZ2V0Lm1hcCgoaXRlbTogYW55KSA9PiBpdGVtLmtleSkuam9pbignLCcpO1xyXG5cdH0sXHJcblx0ZnJvbURhdGFQaWNrZXJWYWx1ZTogKGZpZWxkOiBGb3JtRmllbGQsIHRhcmdldDogYW55LCBkYXRlUGlwZTogRGF0ZVBpcGUpOiBzdHJpbmcgPT4ge1xyXG5cdFx0Y29uc3QgZGF0ZUZvcm1hdCA9IChmaWVsZC5kYXRlUGlja2VyUHJvcHM/LmRhdGVGb3JtYXQgfHwgJ3l5LW1tLWRkJykucmVwbGFjZSgneXknLCAneXl5eScpLnJlcGxhY2UoJ21tJywgJ01NJyk7XHJcblx0XHRyZXR1cm4gZGF0ZVBpcGUudHJhbnNmb3JtKHRhcmdldCwgZGF0ZUZvcm1hdCkgfHwgdGFyZ2V0O1xyXG5cdH0sXHJcblx0ZnJvbU11bHRpU2VsZWN0VmFsdWU6IChmaWVsZDogRm9ybUZpZWxkLCB0YXJnZXQ6IGFueSk6IHN0cmluZyA9PiB7XHJcblx0XHRpZiAoIWZpZWxkLm11bHRpU2VsZWN0UHJvcHM/Lm9wdGlvblZhbHVlKSB7XHJcblx0XHRcdHJldHVybiB0YXJnZXQ7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gdGFyZ2V0LmpvaW4oJywnKTtcclxuXHR9LFxyXG5cdGZyb21JbWFnZVZhbHVlOiAoZmllbGQ6IEZvcm1GaWVsZCwgdGFyZ2V0OiBhbnkpOiBzdHJpbmcgPT4ge1xyXG5cdFx0cmV0dXJuIHRhcmdldC5qb2luKCc7Jyk7XHJcblx0fSxcclxuXHRmcm9tVXBsb2FkVmFsdWU6IChmaWVsZDogRm9ybUZpZWxkLCB0YXJnZXQ6IGFueSk6IHN0cmluZyA9PiB7XHJcblx0XHRyZXR1cm4gdGFyZ2V0LmpvaW4oJzsnKTtcclxuXHR9LFxyXG5cdHRvRmllbGRWYWx1ZTogKGZpZWxkOiBGb3JtRmllbGQsIHJhdzogYW55LCBkYXRlUGlwZTogRGF0ZVBpcGUpOiBhbnkgPT4ge1xyXG5cdFx0aWYgKGZpZWxkLnR5cGUgPT0gJ3RyZWVzZWxlY3QnKSB7XHJcblx0XHRcdHJldHVybiBfZmllbGRVdGlscy50b1RyZWVTZWxlY3RWYWx1ZShmaWVsZCwgcmF3KTtcclxuXHRcdH1cclxuXHRcdGlmIChmaWVsZC50eXBlID09ICdkYXRlcGlja2VyJykge1xyXG5cdFx0XHRyZXR1cm4gX2ZpZWxkVXRpbHMudG9EYXRhUGlja2VyVmFsdWUoZmllbGQsIHJhdywgZGF0ZVBpcGUpO1xyXG5cdFx0fVxyXG5cdFx0aWYgKGZpZWxkLnR5cGUgPT0gJ211bHRpc2VsZWN0Jykge1xyXG5cdFx0XHRyZXR1cm4gX2ZpZWxkVXRpbHMudG9NdWx0aVNlbGVjdFZhbHVlKGZpZWxkLCByYXcpO1xyXG5cdFx0fVxyXG5cdFx0aWYgKGZpZWxkLnR5cGUgPT0gJ2ltYWdlJykge1xyXG5cdFx0XHRyZXR1cm4gX2ZpZWxkVXRpbHMudG9JbWFnZVZhbHVlKGZpZWxkLCByYXcpO1xyXG5cdFx0fVxyXG5cdFx0aWYgKGZpZWxkLnR5cGUgPT0gJ3VwbG9hZCcpIHtcclxuXHRcdFx0cmV0dXJuIF9maWVsZFV0aWxzLnRvVXBsb2FkVmFsdWUoZmllbGQsIHJhdyk7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gcmF3IHx8ICcnO1xyXG5cdH0sXHJcblx0dG9UcmVlU2VsZWN0VmFsdWU6IChmaWVsZDogRm9ybUZpZWxkLCByYXc6IGFueSk6IGFueSA9PiB7XHJcblx0XHRpZiAoZmllbGQudHJlZVNlbGVjdFByb3BzPy5zZWxlY3Rpb25Nb2RlID09ICdzaW5nbGUnKSB7XHJcblx0XHRcdHJldHVybiBfZmllbGRVdGlscy5maW5kVHJlZU5vZGUocmF3LCBmaWVsZC50cmVlU2VsZWN0UHJvcHM/Lm9wdGlvbnMpO1xyXG5cdFx0fVxyXG5cdFx0Y29uc3Qgbm9kZXM6IGFueVtdID0gW107XHJcblx0XHRfZmllbGRVdGlscy5maW5kVHJlZU5vZGVzKHJhdz8uc3BsaXQoJywnKSB8fCBbXSwgZmllbGQudHJlZVNlbGVjdFByb3BzPy5vcHRpb25zIHx8IFtdLCBub2Rlcyk7XHJcblx0XHRyZXR1cm4gbm9kZXM7XHJcblx0fSxcclxuXHR0b0RhdGFQaWNrZXJWYWx1ZTogKGZpZWxkOiBGb3JtRmllbGQsIHJhdzogYW55LCBkYXRlUGlwZTogRGF0ZVBpcGUpOiBzdHJpbmcgPT4ge1xyXG5cdFx0Y29uc3QgZGF0ZUZvcm1hdCA9IChmaWVsZC5kYXRlUGlja2VyUHJvcHM/LmRhdGVGb3JtYXQgfHwgJ3l5LW1tLWRkJykucmVwbGFjZSgneXknLCAneXl5eScpLnJlcGxhY2UoJ21tJywgJ01NJyk7XHJcblx0XHRyZXR1cm4gZGF0ZVBpcGUudHJhbnNmb3JtKHJhdywgZGF0ZUZvcm1hdCwgJ0dNVCcpIHx8IHJhdztcclxuXHR9LFxyXG5cdHRvTXVsdGlTZWxlY3RWYWx1ZTogKGZpZWxkOiBGb3JtRmllbGQsIHJhdzogYW55KTogYW55ID0+IHtcclxuXHRcdGlmICghZmllbGQubXVsdGlTZWxlY3RQcm9wcz8ub3B0aW9uVmFsdWUpIHtcclxuXHRcdFx0cmV0dXJuIHJhdyB8fCAnJztcclxuXHRcdH1cclxuXHRcdHJldHVybiAocmF3ICYmIHJhdy5zcGxpdCgnLCcpKSB8fCAnJztcclxuXHR9LFxyXG5cdHRvSW1hZ2VWYWx1ZTogKGZpZWxkOiBGb3JtRmllbGQsIHJhdzogYW55KTogYW55ID0+IHtcclxuXHRcdHJldHVybiAocmF3ICYmIHJhdy5zcGxpdCgnOycpKSB8fCBbXTtcclxuXHR9LFxyXG5cdHRvVXBsb2FkVmFsdWU6IChmaWVsZDogRm9ybUZpZWxkLCByYXc6IGFueSk6IGFueSA9PiB7XHJcblx0XHRyZXR1cm4gKHJhdyAmJiByYXcuc3BsaXQoJzsnKSkgfHwgW107XHJcblx0fSxcclxuXHRmaW5kVHJlZU5vZGUodmFsdWU6IHN0cmluZywgY2hpbGRyZW4/OiBhbnlbXSk6IGFueSB7XHJcblx0XHRpZiAoIWNoaWxkcmVuIHx8IGNoaWxkcmVuLmxlbmd0aCA9PSAwKSByZXR1cm47XHJcblx0XHRjb25zdCBuID0gY2hpbGRyZW4uZmluZCgobykgPT4gby5rZXkgPT0gdmFsdWUpO1xyXG5cdFx0aWYgKG4pIHJldHVybiBuO1xyXG5cdFx0Zm9yIChjb25zdCBjaCBvZiBjaGlsZHJlbikge1xyXG5cdFx0XHRjb25zdCBjbiA9IHRoaXMuZmluZFRyZWVOb2RlKHZhbHVlLCBjaC5jaGlsZHJlbik7XHJcblx0XHRcdGlmIChjbikgcmV0dXJuIGNuO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuO1xyXG5cdH0sXHJcblx0ZmluZFRyZWVOb2Rlcyh2YWx1ZXM6IHN0cmluZ1tdLCBjaGlsZHJlbj86IGFueVtdLCBub2Rlcz86IGFueVtdKTogdm9pZCB7XHJcblx0XHRpZiAoIWNoaWxkcmVuIHx8IGNoaWxkcmVuLmxlbmd0aCA9PSAwKSByZXR1cm47XHJcblx0XHRjb25zdCB0YXJzID0gY2hpbGRyZW4uZmlsdGVyKChvKSA9PiB2YWx1ZXMuaW5kZXhPZihvLmtleSkgIT0gLTEpO1xyXG5cdFx0bm9kZXM/LnB1c2goLi4udGFycyk7XHJcblx0XHRmb3IgKGNvbnN0IGNoIG9mIGNoaWxkcmVuKSB7XHJcblx0XHRcdHRoaXMuZmluZFRyZWVOb2Rlcyh2YWx1ZXMsIGNoLmNoaWxkcmVuLCBub2Rlcyk7XHJcblx0XHR9XHJcblx0fSxcclxuXHR0cmFuc0xvZyhyYXdNb2RlbDogYW55LCBjaGFuZ2VkTW9kZWw6IGFueSwgbWFpblZhbHVlOiBhbnksIGlzTmV3OiBib29sZWFuKTogc3RyaW5nIHtcclxuXHRcdGlmIChpc05ldykge1xyXG5cdFx0XHRyZXR1cm4gJ+aWsOW7uu+8micgKyBtYWluVmFsdWU7XHJcblx0XHR9XHJcblx0XHRjb25zdCBkZXRhaWw6IHN0cmluZ1tdID0gW107XHJcblx0XHRPYmplY3Qua2V5cyhjaGFuZ2VkTW9kZWwpLmZvckVhY2goKGtleSkgPT4ge1xyXG5cdFx0XHRpZiAoY2hhbmdlZE1vZGVsW2tleV0udHlwZSA9PSAnY29kZW1pcnJvcicpIHtcclxuXHRcdFx0XHRkZXRhaWwucHVzaChgWyR7Y2hhbmdlZE1vZGVsW2tleV0ubmFtZX1dIOWPmOabtGApO1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cdFx0XHRkZXRhaWwucHVzaChgWyR7Y2hhbmdlZE1vZGVsW2tleV0ubmFtZX1dICR7cmF3TW9kZWxba2V5XSB8fCAnJ30gLT4gJHtjaGFuZ2VkTW9kZWxba2V5XS52YWx1ZSB8fCAnJ31gKTtcclxuXHRcdH0pO1xyXG5cdFx0cmV0dXJuIGRldGFpbC5qb2luKCc7Jyk7XHJcblx0fSxcclxuXHQvLyDnu4/mtYvor5VzZWxlY3Tnu4Tku7bmnInlhoXpg6hidWdcclxuXHQvLyDorr7nva5tb2RlbOaXtu+8jGZpZWxkQ29udHJvbC5zZXRWYWx1ZeeahGVtaXRFdmVudOWPguaVsOS4umZhbHNlLOS7jeS8muinpuWPkXZhbHVlQ2hhbmdlc+S6i+S7tlxyXG5cdC8vIOinpuWPkXZhbHVlQ2hhbmdlc+S8muW9seWTjeaXpeW/l+S/neWtmOeahOWHhuehruaAp++8jOaVheatpOaWueazleS7heaYr+S4uuS6humYsuatoue7hOS7tuWGhemDqOaEj+WkluinpuWPkeeahOWPmOWKqFxyXG5cdGlzRmFrZWRDaGFuZ2UobmV3VmFsdWU6IGFueSwgb2xkVmFsdWU6IGFueSwgZmllbGQ6IEZvcm1GaWVsZCk6IGJvb2xlYW4ge1xyXG5cdFx0Y29uc3QgY2hhbmdlVHlwZXMgPSBbJ2lucHV0dGV4dCcsICdpbnB1dG51bWJlcicsICdzZWxlY3QnLCAndHJlZXNlbGVjdCcsICdkYXRlcGlja2VyJywgJ2F1dG9jb21wbGV0ZScsICdtdWx0aXNlbGVjdCcsICdyYWRpbyddO1xyXG5cdFx0aWYgKGNoYW5nZVR5cGVzLmluY2x1ZGVzKGZpZWxkLnR5cGUhKSkge1xyXG5cdFx0XHRyZXR1cm4gKG9sZFZhbHVlIHx8ICcnKSA9PSAobmV3VmFsdWUgfHwgJycpO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIGZhbHNlO1xyXG5cdH0sXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgZmllbGRVdGlscyA9IHtcclxuXHRwcm9wczogX2ZpZWxkVXRpbHMucHJvcHMsXHJcblx0bGFiZWw6IF9maWVsZFV0aWxzLmxhYmVsLFxyXG5cdHRyaWdnZXJIb29rQW5kU2V0VmFsdWU6IF9maWVsZFV0aWxzLnRyaWdnZXJIb29rQW5kU2V0VmFsdWUsXHJcblx0ZnJvbUZpZWxkVmFsdWU6IF9maWVsZFV0aWxzLmZyb21GaWVsZFZhbHVlLFxyXG5cdHRyYW5zTG9nOiBfZmllbGRVdGlscy50cmFuc0xvZyxcclxuXHRpc0Zha2VkQ2hhbmdlOiBfZmllbGRVdGlscy5pc0Zha2VkQ2hhbmdlLFxyXG59O1xyXG4iXX0=
@@ -3,8 +3,14 @@
3
3
  */
4
4
  export * from './lib/am/am.component';
5
5
  export * from './lib/form/form/form.component';
6
+ export * from './lib/page-form/page-form.interface';
6
7
  export * from './lib/crumb-action/crumb-action.component';
8
+ export * from './lib/grid/pager/pager.component';
7
9
  export * from './lib/grid/grid/grid.component';
10
+ export * from './lib/grid/cell-edit/index';
11
+ export * from './lib/grid/grid-utils';
12
+ export * from './lib/grid/cell-render/link-render';
13
+ export * from './lib/grid/cell-render/async-renderer';
8
14
  export * from './lib/head/head.component';
9
15
  export * from './lib/import/import.component';
10
16
  export * from './lib/log/log.component';
@@ -23,4 +29,4 @@ export * from './lib/service/userHistory.service';
23
29
  export * from './lib/theme-config/theme-config.compoent';
24
30
  // export * from './styles/styles.d.ts'
25
31
  // export * from './lib/styles/styles.scss'
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsY0FBYyx1QkFBdUIsQ0FBQTtBQUVyQyxjQUFjLGdDQUFnQyxDQUFBO0FBRTlDLGNBQWMsMkNBQTJDLENBQUE7QUFFekQsY0FBYyxnQ0FBZ0MsQ0FBQTtBQUU5QyxjQUFjLDJCQUEyQixDQUFBO0FBRXpDLGNBQWUsK0JBQStCLENBQUE7QUFFOUMsY0FBYyx5QkFBeUIsQ0FBQTtBQUV2QyxjQUFjLDJDQUEyQyxDQUFBO0FBRXpELGNBQWMsbUJBQW1CLENBQUE7QUFFakMsY0FBYyw4QkFBOEIsQ0FBQTtBQUU1QyxjQUFjLDRCQUE0QixDQUFBO0FBRTFDLGNBQWMsbUNBQW1DLENBQUE7QUFFakQsY0FBYyxxQ0FBcUMsQ0FBQTtBQUVuRCxjQUFjLCtDQUErQyxDQUFBO0FBRTdELGNBQWMsNkJBQTZCLENBQUE7QUFFM0MsY0FBYywyQ0FBMkMsQ0FBQTtBQUV6RCxjQUFjLHNDQUFzQyxDQUFBO0FBRXBELGNBQWMscUNBQXFDLENBQUE7QUFFbkQsY0FBYyxtQ0FBbUMsQ0FBQTtBQUVqRCxjQUFjLDBDQUEwQyxDQUFBO0FBQ3hELHVDQUF1QztBQUV2QywyQ0FBMkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgYW0tZnJvbnQtdWlcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FtL2FtLmNvbXBvbmVudCdcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Zvcm0vZm9ybS9mb3JtLmNvbXBvbmVudCdcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NydW1iLWFjdGlvbi9jcnVtYi1hY3Rpb24uY29tcG9uZW50J1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZ3JpZC9ncmlkL2dyaWQuY29tcG9uZW50J1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvaGVhZC9oZWFkLmNvbXBvbmVudCdcclxuXHJcbmV4cG9ydCAqIGZyb20gICcuL2xpYi9pbXBvcnQvaW1wb3J0LmNvbXBvbmVudCdcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xvZy9sb2cuY29tcG9uZW50J1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcm93LXNlbGVjdG9yL3Jvdy1zZWxlY3Rvci5jb21wb25lbnQnXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZS91dGlscydcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvYWN0aW9uLnNlcnZpY2UnXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2kxOG4uc2VydmljZSdcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvdGhlbWVDb25maWcuc2VydmljZSdcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BhZ2UtZm9ybS9wYWdlLWZvcm0uY29tcG9uZW50J1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGFnZS1ncmlkLWxpc3QvcGFnZS1ncmlkLWxpc3QuY29tcG9uZW50J1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RlcHMvc3RlcHMuY29tcG9uZW50J1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcm93LXNlbGVjdG9yL3Jvdy1zZWxlY3Rvci5jb21wb25lbnQnXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZWFyY2gvc2VhcmNoL3NlYXJjaC5jb21wb25lbnQnXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wYWdlLWZvcm0vcGFnZS1mb3JtLmludGVyZmFjZSdcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvdXNlckhpc3Rvcnkuc2VydmljZSdcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RoZW1lLWNvbmZpZy90aGVtZS1jb25maWcuY29tcG9lbnQnXHJcbi8vIGV4cG9ydCAqIGZyb20gJy4vc3R5bGVzL3N0eWxlcy5kLnRzJ1xyXG5cclxuLy8gZXhwb3J0ICogZnJvbSAnLi9saWIvc3R5bGVzL3N0eWxlcy5zY3NzJyJdfQ==
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsY0FBYyx1QkFBdUIsQ0FBQTtBQUVyQyxjQUFjLGdDQUFnQyxDQUFBO0FBQzlDLGNBQWMscUNBQXFDLENBQUE7QUFDbkQsY0FBYywyQ0FBMkMsQ0FBQTtBQUV6RCxjQUFjLGtDQUFrQyxDQUFBO0FBRWhELGNBQWMsZ0NBQWdDLENBQUE7QUFFOUMsY0FBYyw0QkFBNEIsQ0FBQTtBQUUxQyxjQUFjLHVCQUF1QixDQUFBO0FBRXJDLGNBQWMsb0NBQW9DLENBQUE7QUFFbEQsY0FBYyx1Q0FBdUMsQ0FBQTtBQUVyRCxjQUFjLDJCQUEyQixDQUFBO0FBRXpDLGNBQWUsK0JBQStCLENBQUE7QUFFOUMsY0FBYyx5QkFBeUIsQ0FBQTtBQUV2QyxjQUFjLDJDQUEyQyxDQUFBO0FBRXpELGNBQWMsbUJBQW1CLENBQUE7QUFFakMsY0FBYyw4QkFBOEIsQ0FBQTtBQUU1QyxjQUFjLDRCQUE0QixDQUFBO0FBRTFDLGNBQWMsbUNBQW1DLENBQUE7QUFFakQsY0FBYyxxQ0FBcUMsQ0FBQTtBQUVuRCxjQUFjLCtDQUErQyxDQUFBO0FBRTdELGNBQWMsNkJBQTZCLENBQUE7QUFFM0MsY0FBYywyQ0FBMkMsQ0FBQTtBQUV6RCxjQUFjLHNDQUFzQyxDQUFBO0FBRXBELGNBQWMscUNBQXFDLENBQUE7QUFFbkQsY0FBYyxtQ0FBbUMsQ0FBQTtBQUVqRCxjQUFjLDBDQUEwQyxDQUFBO0FBQ3hELHVDQUF1QztBQUV2QywyQ0FBMkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgYW0tZnJvbnQtdWlcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FtL2FtLmNvbXBvbmVudCdcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Zvcm0vZm9ybS9mb3JtLmNvbXBvbmVudCdcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGFnZS1mb3JtL3BhZ2UtZm9ybS5pbnRlcmZhY2UnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NydW1iLWFjdGlvbi9jcnVtYi1hY3Rpb24uY29tcG9uZW50J1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZ3JpZC9wYWdlci9wYWdlci5jb21wb25lbnQnXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9ncmlkL2dyaWQvZ3JpZC5jb21wb25lbnQnXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9ncmlkL2NlbGwtZWRpdC9pbmRleCdcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2dyaWQvZ3JpZC11dGlscydcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2dyaWQvY2VsbC1yZW5kZXIvbGluay1yZW5kZXInXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9ncmlkL2NlbGwtcmVuZGVyL2FzeW5jLXJlbmRlcmVyJ1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvaGVhZC9oZWFkLmNvbXBvbmVudCdcclxuXHJcbmV4cG9ydCAqIGZyb20gICcuL2xpYi9pbXBvcnQvaW1wb3J0LmNvbXBvbmVudCdcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xvZy9sb2cuY29tcG9uZW50J1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcm93LXNlbGVjdG9yL3Jvdy1zZWxlY3Rvci5jb21wb25lbnQnXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZS91dGlscydcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvYWN0aW9uLnNlcnZpY2UnXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2kxOG4uc2VydmljZSdcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvdGhlbWVDb25maWcuc2VydmljZSdcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BhZ2UtZm9ybS9wYWdlLWZvcm0uY29tcG9uZW50J1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGFnZS1ncmlkLWxpc3QvcGFnZS1ncmlkLWxpc3QuY29tcG9uZW50J1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RlcHMvc3RlcHMuY29tcG9uZW50J1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcm93LXNlbGVjdG9yL3Jvdy1zZWxlY3Rvci5jb21wb25lbnQnXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZWFyY2gvc2VhcmNoL3NlYXJjaC5jb21wb25lbnQnXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wYWdlLWZvcm0vcGFnZS1mb3JtLmludGVyZmFjZSdcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvdXNlckhpc3Rvcnkuc2VydmljZSdcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RoZW1lLWNvbmZpZy90aGVtZS1jb25maWcuY29tcG9lbnQnXHJcbi8vIGV4cG9ydCAqIGZyb20gJy4vc3R5bGVzL3N0eWxlcy5kLnRzJ1xyXG5cclxuLy8gZXhwb3J0ICogZnJvbSAnLi9saWIvc3R5bGVzL3N0eWxlcy5zY3NzJyJdfQ==
@@ -175,6 +175,7 @@ class AmComponent {
175
175
  delete param.addData;
176
176
  }
177
177
  let updData = param.updData;
178
+ console.log('param----', param.updData);
178
179
  if (Object.keys(updData).length == 0) {
179
180
  delete param.updData;
180
181
  }
@@ -660,20 +661,20 @@ const _fieldUtils = {
660
661
  return this.getModel(model[k], keys.join('.'));
661
662
  }
662
663
  },
663
- triggerHookAndSetValue: (field, value, detectModelChange, hookObservers, callback) => {
664
+ triggerHookAndSetValue: (field, value, detectModelChange, hookObservers, callback, datePipe) => {
664
665
  if (field.hook) {
665
666
  const sub = field.hook
666
667
  .pipe(tap((func) => {
667
668
  func(field);
668
669
  }))
669
670
  .subscribe(() => {
670
- field.fieldControl?.setValue(fieldUtils.toFieldValue(field, value), { onlySelf: false, emitEvent: false }, detectModelChange),
671
+ field.fieldControl?.setValue(_fieldUtils.toFieldValue(field, value, datePipe), { onlySelf: false, emitEvent: false }, detectModelChange),
671
672
  callback && callback();
672
673
  });
673
674
  hookObservers.push(() => sub.unsubscribe());
674
675
  }
675
676
  else {
676
- field.fieldControl?.setValue(fieldUtils.toFieldValue(field, value), { onlySelf: false, emitEvent: false }, detectModelChange);
677
+ field.fieldControl?.setValue(_fieldUtils.toFieldValue(field, value, datePipe), { onlySelf: false, emitEvent: false }, detectModelChange);
677
678
  callback && callback();
678
679
  }
679
680
  },
@@ -717,10 +718,13 @@ const _fieldUtils = {
717
718
  fromUploadValue: (field, target) => {
718
719
  return target.join(';');
719
720
  },
720
- toFieldValue: (field, raw) => {
721
+ toFieldValue: (field, raw, datePipe) => {
721
722
  if (field.type == 'treeselect') {
722
723
  return _fieldUtils.toTreeSelectValue(field, raw);
723
724
  }
725
+ if (field.type == 'datepicker') {
726
+ return _fieldUtils.toDataPickerValue(field, raw, datePipe);
727
+ }
724
728
  if (field.type == 'multiselect') {
725
729
  return _fieldUtils.toMultiSelectValue(field, raw);
726
730
  }
@@ -740,6 +744,10 @@ const _fieldUtils = {
740
744
  _fieldUtils.findTreeNodes(raw?.split(',') || [], field.treeSelectProps?.options || [], nodes);
741
745
  return nodes;
742
746
  },
747
+ toDataPickerValue: (field, raw, datePipe) => {
748
+ const dateFormat = (field.datePickerProps?.dateFormat || 'yy-mm-dd').replace('yy', 'yyyy').replace('mm', 'MM');
749
+ return datePipe.transform(raw, dateFormat, 'GMT') || raw;
750
+ },
743
751
  toMultiSelectValue: (field, raw) => {
744
752
  if (!field.multiSelectProps?.optionValue) {
745
753
  return raw || '';
@@ -804,7 +812,6 @@ const fieldUtils = {
804
812
  label: _fieldUtils.label,
805
813
  triggerHookAndSetValue: _fieldUtils.triggerHookAndSetValue,
806
814
  fromFieldValue: _fieldUtils.fromFieldValue,
807
- toFieldValue: _fieldUtils.toFieldValue,
808
815
  transLog: _fieldUtils.transLog,
809
816
  isFakedChange: _fieldUtils.isFakedChange,
810
817
  };
@@ -3601,7 +3608,7 @@ class FormComponent {
3601
3608
  this.fieldList.forEach((field) => {
3602
3609
  fieldUtils.triggerHookAndSetValue(field, this.model()?.[field.key], ['upload', 'image', 'codemirror', 'radio', 'select'].includes(field.type), this.hookObservers, () => {
3603
3610
  this.handleHideExpression();
3604
- });
3611
+ }, this.datePipe);
3605
3612
  });
3606
3613
  }
3607
3614
  reCalcLabelSize() {
@@ -3639,7 +3646,7 @@ class FormComponent {
3639
3646
  return;
3640
3647
  fieldUtils.triggerHookAndSetValue(field, model[key], ['upload', 'image', 'codemirror', 'radio', 'select'].includes(field.type), this.hookObservers, () => {
3641
3648
  this.handleHideExpression();
3642
- });
3649
+ }, this.datePipe);
3643
3650
  });
3644
3651
  }
3645
3652
  finalize() {
@@ -3663,6 +3670,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
3663
3670
  args: ['window:resize', ['$event']]
3664
3671
  }] } });
3665
3672
 
3673
+ const formTypeToProps = {
3674
+ inputtext: 'inputTextProps',
3675
+ inputnumber: 'inputNumberProps',
3676
+ select: 'selectProps',
3677
+ treeselect: 'treeSelectProps',
3678
+ datepicker: 'datePickerProps',
3679
+ autocomplete: 'autoCompleteProps',
3680
+ multiselect: 'multiSelectProps',
3681
+ radio: 'radioProps',
3682
+ textarea: 'textAreaProps',
3683
+ upload: 'uploadProps',
3684
+ image: 'imageProps',
3685
+ codemirror: 'codeMirrorProps',
3686
+ };
3687
+
3666
3688
  class CrumbActionComponent {
3667
3689
  constructor() {
3668
3690
  this.userHistoryService = inject(UserHistoryService);
@@ -3725,6 +3747,9 @@ class CrumbActionComponent {
3725
3747
  effect(() => {
3726
3748
  this.listOpItems = this.listOpItems.filter((v) => this.authLevel() >= v.level);
3727
3749
  });
3750
+ effect(() => {
3751
+ console.log('addVisible', this.addVisible());
3752
+ });
3728
3753
  }
3729
3754
  ngOnInit() { }
3730
3755
  goNew() {
@@ -3783,6 +3808,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
3783
3808
  args: ['newBtn', { descendants: false }]
3784
3809
  }] } });
3785
3810
 
3811
+ class PagerComponent {
3812
+ constructor(action) {
3813
+ this.action = action;
3814
+ effect(() => {
3815
+ this.page = this.action.getPage();
3816
+ });
3817
+ }
3818
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PagerComponent, deps: [{ token: ActionService }], target: i0.ɵɵFactoryTarget.Component }); }
3819
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: PagerComponent, isStandalone: true, selector: "custom-pager", ngImport: i0, template: "@if (page?.total) {\r\n\t@if (page?.mode == 'client') {\r\n\t\t<div class=\"page-container flex p-2 items-center\">\r\n\t\t\t<span class=\"mr-2\">\u5171 {{ page ? page.total : 0 }} \u6761</span>\r\n\t\t</div>\r\n\t} @else {\r\n\t\t<div class=\"page-container flex p-2 items-center\">\r\n\t\t\t<span>{{ page ? (page.startRow || 0) + 1 : 0 }}</span>\r\n\t\t\t<span> - </span>\r\n\t\t\t<span>{{ page ? page.endRow : 0 }}</span>\r\n\t\t\t<span class=\"px-1\"> / </span>\r\n\t\t\t<span class=\"mr-2\">{{ page ? page.total : 0 }}</span>\r\n\t\t</div>\r\n\t}\r\n}\r\n", styles: [":host ::ng-deep .ms-down .p-button{border-radius:6px 0 0 6px;margin-right:1px}:host ::ng-deep .ms-up .p-button{border-radius:0 6px 6px 0;margin-left:1px}.page-container{color:#334155}\n"], dependencies: [{ kind: "ngmodule", type: ButtonModule }] }); }
3820
+ }
3821
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PagerComponent, decorators: [{
3822
+ type: Component,
3823
+ args: [{ selector: 'custom-pager', standalone: true, imports: [ButtonModule], template: "@if (page?.total) {\r\n\t@if (page?.mode == 'client') {\r\n\t\t<div class=\"page-container flex p-2 items-center\">\r\n\t\t\t<span class=\"mr-2\">\u5171 {{ page ? page.total : 0 }} \u6761</span>\r\n\t\t</div>\r\n\t} @else {\r\n\t\t<div class=\"page-container flex p-2 items-center\">\r\n\t\t\t<span>{{ page ? (page.startRow || 0) + 1 : 0 }}</span>\r\n\t\t\t<span> - </span>\r\n\t\t\t<span>{{ page ? page.endRow : 0 }}</span>\r\n\t\t\t<span class=\"px-1\"> / </span>\r\n\t\t\t<span class=\"mr-2\">{{ page ? page.total : 0 }}</span>\r\n\t\t</div>\r\n\t}\r\n}\r\n", styles: [":host ::ng-deep .ms-down .p-button{border-radius:6px 0 0 6px;margin-right:1px}:host ::ng-deep .ms-up .p-button{border-radius:0 6px 6px 0;margin-left:1px}.page-container{color:#334155}\n"] }]
3824
+ }], ctorParameters: () => [{ type: ActionService }] });
3825
+
3786
3826
  class ThemeConfigService {
3787
3827
  constructor() {
3788
3828
  this.STORAGE_KEY = 'themeConfigState';
@@ -6160,21 +6200,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
6160
6200
  args: [{ selector: 'custom-steps', standalone: true, imports: [], template: "<div class=\"flex my-1\">\r\n\t@for (step of steps(); track step; let i = $index) {\r\n\t\t<div [class]=\"getClass(i)\" (click)=\"changeStatus(step)\">\r\n\t\t\t<span>{{ step.i18nKey ? i18n.fanyi(step.i18nKey):step.label }}</span>\r\n\t\t</div>\r\n\t}\r\n</div>\r\n", styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}.step-item{position:relative;height:32px;padding:0 5px;background-color:#e7e9ed}.step-item span{color:#334155c2}.step-item.step-first{padding-left:15px}.step-item.step-last{padding-right:15px}.step-item:not(.step-first){border-left:15px solid transparent;margin-left:2px}.step-item:not(.step-first):before{content:\"\";position:absolute;top:0;left:-15px;width:0;height:0;border-top:15px solid transparent;border-bottom:15px solid transparent;border-left:12px solid white}.step-item:not(.step-last):after{content:\"\";position:absolute;top:0;right:-12px;width:0;height:0;border-top:15px solid transparent;border-bottom:15px solid transparent;border-left:12px solid #e7e9ed;z-index:2}.step-item.step-active{background-color:var(--p-primary-200)}.step-item.step-active span{color:#334155}.step-item.step-active:after{border-left:12px solid var(--p-primary-200)}\n"] }]
6161
6201
  }], ctorParameters: () => [] });
6162
6202
 
6163
- const formTypeToProps = {
6164
- inputtext: 'inputTextProps',
6165
- inputnumber: 'inputNumberProps',
6166
- select: 'selectProps',
6167
- treeselect: 'treeSelectProps',
6168
- datepicker: 'datePickerProps',
6169
- autocomplete: 'autoCompleteProps',
6170
- multiselect: 'multiSelectProps',
6171
- radio: 'radioProps',
6172
- textarea: 'textAreaProps',
6173
- upload: 'uploadProps',
6174
- image: 'imageProps',
6175
- codemirror: 'codeMirrorProps',
6176
- };
6177
-
6178
6203
  class PageFormComponent extends AmComponent {
6179
6204
  constructor() {
6180
6205
  super();
@@ -6366,21 +6391,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
6366
6391
  args: ['cForm']
6367
6392
  }] } });
6368
6393
 
6369
- class PagerComponent {
6370
- constructor(action) {
6371
- this.action = action;
6372
- effect(() => {
6373
- this.page = this.action.getPage();
6374
- });
6375
- }
6376
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PagerComponent, deps: [{ token: ActionService }], target: i0.ɵɵFactoryTarget.Component }); }
6377
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: PagerComponent, isStandalone: true, selector: "custom-pager", ngImport: i0, template: "@if (page?.total) {\r\n\t@if (page?.mode == 'client') {\r\n\t\t<div class=\"page-container flex p-2 items-center\">\r\n\t\t\t<span class=\"mr-2\">\u5171 {{ page ? page.total : 0 }} \u6761</span>\r\n\t\t</div>\r\n\t} @else {\r\n\t\t<div class=\"page-container flex p-2 items-center\">\r\n\t\t\t<span>{{ page ? (page.startRow || 0) + 1 : 0 }}</span>\r\n\t\t\t<span> - </span>\r\n\t\t\t<span>{{ page ? page.endRow : 0 }}</span>\r\n\t\t\t<span class=\"px-1\"> / </span>\r\n\t\t\t<span class=\"mr-2\">{{ page ? page.total : 0 }}</span>\r\n\t\t</div>\r\n\t}\r\n}\r\n", styles: [":host ::ng-deep .ms-down .p-button{border-radius:6px 0 0 6px;margin-right:1px}:host ::ng-deep .ms-up .p-button{border-radius:0 6px 6px 0;margin-left:1px}.page-container{color:#334155}\n"], dependencies: [{ kind: "ngmodule", type: ButtonModule }] }); }
6378
- }
6379
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PagerComponent, decorators: [{
6380
- type: Component,
6381
- args: [{ selector: 'custom-pager', standalone: true, imports: [ButtonModule], template: "@if (page?.total) {\r\n\t@if (page?.mode == 'client') {\r\n\t\t<div class=\"page-container flex p-2 items-center\">\r\n\t\t\t<span class=\"mr-2\">\u5171 {{ page ? page.total : 0 }} \u6761</span>\r\n\t\t</div>\r\n\t} @else {\r\n\t\t<div class=\"page-container flex p-2 items-center\">\r\n\t\t\t<span>{{ page ? (page.startRow || 0) + 1 : 0 }}</span>\r\n\t\t\t<span> - </span>\r\n\t\t\t<span>{{ page ? page.endRow : 0 }}</span>\r\n\t\t\t<span class=\"px-1\"> / </span>\r\n\t\t\t<span class=\"mr-2\">{{ page ? page.total : 0 }}</span>\r\n\t\t</div>\r\n\t}\r\n}\r\n", styles: [":host ::ng-deep .ms-down .p-button{border-radius:6px 0 0 6px;margin-right:1px}:host ::ng-deep .ms-up .p-button{border-radius:0 6px 6px 0;margin-left:1px}.page-container{color:#334155}\n"] }]
6382
- }], ctorParameters: () => [{ type: ActionService }] });
6383
-
6384
6394
  class PageGridListComponent extends AmComponent {
6385
6395
  constructor() {
6386
6396
  super();
@@ -6593,5 +6603,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
6593
6603
  * Generated bundle index. Do not edit.
6594
6604
  */
6595
6605
 
6596
- export { ActionService, AmComponent, CrumbActionComponent, FormComponent, GridComponent, HeadComponent, I18N_Token, I18nService, ImportComponent, LANGS, LogComponent, PageFormComponent, PageGridListComponent, RowSelectorComponent, SearchComponent, StepsComponent, ThemeConfigComponent, ThemeConfigService, UserHistoryService, compileTsToJs, createCircularIterator, filterObjectByKeys, formTypeToProps, generateUniqueId, isJSONParsable, parseFunctions, toPascalCase };
6606
+ export { ActionService, AmComponent, AsyncRenderer, CellEditAutoCompleteComponent, CellEditDatePickerComponent, CellEditInputNumberCompoent, CellEditInputTextCompoent, CellEditSelectComponent, CrumbActionComponent, FormComponent, GridComponent, HeadComponent, I18N_Token, I18nService, ImportComponent, LANGS, LinkRenderer, LogComponent, PageFormComponent, PageGridListComponent, PagerComponent, RowSelectorComponent, SearchComponent, StepsComponent, ThemeConfigComponent, ThemeConfigService, UserHistoryService, compileTsToJs, createCircularIterator, filterObjectByKeys, formTypeToProps, generateUniqueId, gridUtils, isJSONParsable, parseFunctions, toPascalCase };
6597
6607
  //# sourceMappingURL=imm-element-ui.mjs.map