@gravitee/ui-particles-angular 15.13.0 → 15.13.1

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.
@@ -142,10 +142,41 @@ export const toCronExpression = (cronDisplay) => {
142
142
  export const toCronDescription = (cronExpression) => {
143
143
  throwIfInvalid(cronExpression);
144
144
  if (!isEmpty(cronExpression)) {
145
- return Cronstrue.toString(cronExpression);
145
+ return Cronstrue.toString(expandMisleadingSteps(cronExpression));
146
146
  }
147
147
  return '';
148
148
  };
149
+ /**
150
+ * Expand step values (like *\/50) that don't evenly divide the field range
151
+ * into explicit value lists (like 0,50) so that cronstrue generates an accurate description.
152
+ *
153
+ * For example, *\/50 in the minutes field means "at every minute divisible by 50" (i.e. 0 and 50),
154
+ * NOT "every 50 minutes". Without this fix, cronstrue would display "Every 50 minutes" which is misleading.
155
+ *
156
+ * See: https://github.com/bradymholt/cRonstrue/issues/360
157
+ */
158
+ const expandMisleadingSteps = (cronExpression) => {
159
+ const parts = cronExpression.trim().split(/\s+/);
160
+ // Field ranges: [seconds, minutes, hours, day-of-month, month, day-of-week]
161
+ const fieldRanges = [60, 60, 24, undefined, undefined, undefined];
162
+ const expandedParts = parts.map((part, index) => {
163
+ const range = fieldRanges[index];
164
+ if (range === undefined)
165
+ return part;
166
+ const match = part.match(/^\*\/(\d+)$/);
167
+ if (!match)
168
+ return part;
169
+ const step = parseInt(match[1], 10);
170
+ if (step <= 0 || range % step === 0)
171
+ return part;
172
+ const values = [];
173
+ for (let v = 0; v < range; v += step) {
174
+ values.push(v);
175
+ }
176
+ return values.join(',');
177
+ });
178
+ return expandedParts.join(' ');
179
+ };
149
180
  /**
150
181
  * Simple validation to ensure that the cron expression has 6 parts.
151
182
  * Note : The full cron expression validation is done by the backend.
@@ -215,4 +246,4 @@ const getSegment = (value) => {
215
246
  });
216
247
  });
217
248
  };
218
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLWZvcm0tY3Jvbi5hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcGFydGljbGVzLWFuZ3VsYXIvc3JjL2xpYi9naW8tZm9ybS1jcm9uL2dpby1mb3JtLWNyb24uYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sU0FBUyxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFnQmpDLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFVLENBQUM7QUFHdEgsTUFBTSxpQkFBaUIsR0FJakI7SUFDSjtRQUNFLElBQUksRUFBRSxVQUFVO1FBQ2hCLE9BQU8sRUFBRSxlQUFlO1FBQ3hCLEtBQUssRUFBRSx5QkFBeUI7S0FDakM7SUFDRDtRQUNFLElBQUksRUFBRSxVQUFVO1FBQ2hCLE9BQU8sRUFBRSxlQUFlO1FBQ3hCLEtBQUssRUFBRSwyQkFBMkI7S0FDbkM7SUFDRDtRQUNFLElBQUksRUFBRSxRQUFRO1FBQ2QsT0FBTyxFQUFFLGVBQWU7UUFDeEIsS0FBSyxFQUFFLGdDQUFnQztLQUN4QztJQUNEO1FBQ0UsSUFBSSxFQUFFLE9BQU87UUFDYixPQUFPLEVBQUUsZUFBZTtRQUN4QixLQUFLLEVBQUUsZ0NBQWdDO0tBQ3hDO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsUUFBUTtRQUNkLE9BQU8sRUFBRSxhQUFhO1FBQ3RCLEtBQUssRUFBRSxvQ0FBb0M7S0FDNUM7SUFDRDtRQUNFLElBQUksRUFBRSxTQUFTO1FBQ2YsT0FBTyxFQUFFLGFBQWE7UUFDdEIsS0FBSyxFQUFFLHNCQUFzQjtLQUM5QjtJQUNEO1FBQ0UsSUFBSSxFQUFFLFFBQVE7UUFD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QUMsU0FBUyxDQUFDO0FBQy9DLENBQUMsQ0FBQztBQUVGLE1BQU0sZUFBZSxHQUFHLENBQUMsZUFBeUIsRUFBc0IsRUFBRTtJQUN4RSxNQUFNLENBQUMsR0FBRyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0MsT0FBTyxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQy9DLENBQUMsQ0FBQztBQUVGLE1BQU0sY0FBYyxHQUFHLENBQUMsZUFBeUIsRUFBc0IsRUFBRTtJQUN2RSxNQUFNLENBQUMsR0FBRyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0MsT0FBTyxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQy9DLENBQUMsQ0FBQztBQUVGLE1BQU0sWUFBWSxHQUFHLENBQUMsZUFBeUIsRUFBc0IsRUFBRTtJQUNyRSxNQUFNLENBQUMsR0FBRyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0MsT0FBTyxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQy9DLENBQUMsQ0FBQztBQUVGLE1BQU0sYUFBYSxHQUFHLENBQUMsZUFBeUIsRUFBc0IsRUFBRTtJQUN0RSxNQUFNLENBQUMsR0FBRyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0MsT0FBTyxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQy9DLENBQUMsQ0FBQztBQUVGLE1BQU0sVUFBVSxHQUFHLENBQUMsZUFBeUIsRUFBc0IsRUFBRTtJQUNuRSxNQUFNLENBQUMsR0FBRyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0MsT0FBTyxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQy9DLENBQUMsQ0FBQztBQUVGLE1BQU0sUUFBUSxHQUFHLENBQUMsZUFBeUIsRUFBc0IsRUFBRTtJQUNqRSxNQUFNLENBQUMsR0FBRyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0MsT0FBTyxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQy9DLENBQUMsQ0FBQztBQUVGLE1BQU0sVUFBVSxHQUFHLENBQUMsS0FBYSxFQUFpQyxFQUFFO0lBQ2xFLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3hCLEtBQUssR0FBRyxHQUFHLENBQUM7SUFDZCxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUM5QixJQUFJLENBQUMsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNwQixDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQ1YsQ0FBQztRQUNELE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDMUIsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMxQixPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMjMgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgQ3JvbnN0cnVlIGZyb20gJ2Nyb25zdHJ1ZS9pMThuJztcbmltcG9ydCB7IGlzRW1wdHkgfSBmcm9tICdsb2Rhc2gnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENyb25EaXNwbGF5IHtcbiAgbW9kZTogQ3JvbkRpc3BsYXlNb2RlO1xuXG4gIHNlY29uZEludGVydmFsPzogbnVtYmVyO1xuICBtaW51dGVJbnRlcnZhbD86IG51bWJlcjtcbiAgaG91ckludGVydmFsPzogbnVtYmVyO1xuICBkYXlJbnRlcnZhbD86IG51bWJlcjtcbiAgZGF5T2ZXZWVrPzogbnVtYmVyO1xuICBkYXlPZk1vbnRoPzogbnVtYmVyO1xuICBjdXN0b21FeHByZXNzaW9uPzogc3RyaW5nO1xuXG4gIGhvdXJzPzogbnVtYmVyO1xuICBtaW51dGVzPzogbnVtYmVyO1xufVxuZXhwb3J0IGNvbnN0IENST05fRElTUExBWV9NT0RFUyA9IFsnc2Vjb25kbHknLCAnbWludXRlbHknLCAnaG91cmx5JywgJ2RhaWx5JywgJ3dlZWtseScsICdtb250aGx5JywgJ2N1c3RvbSddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgQ3JvbkRpc3BsYXlNb2RlID0gKHR5cGVvZiBDUk9OX0RJU1BMQVlfTU9ERVMpW251bWJlcl07XG5cbmNvbnN0IERJU1BMQVlfTU9ERV9MSVNUOiB7XG4gIG1vZGU6IENyb25EaXNwbGF5TW9kZTtcbiAgZGVmYXVsdDogc3RyaW5nO1xuICByZWdleDogUmVnRXhwO1xufVtdID0gW1xuICB7XG4gICAgbW9kZTogJ3NlY29uZGx5JyxcbiAgICBkZWZhdWx0OiAnKi8xICogKiAqICogKicsXG4gICAgcmVnZXg6IC9eKFxcKlxcL1xcZCtcXHMpKFxcKlxccyl7NH1cXCovLFxuICB9LFxuICB7XG4gICAgbW9kZTogJ21pbnV0ZWx5JyxcbiAgICBkZWZhdWx0OiAnMCAqLzEgKiAqICogKicsXG4gICAgcmVnZXg6IC9eMFxcc1xcKlxcL1xcZCtcXHMoXFwqXFxzKXszfVxcKiQvLFxuICB9LFxuICB7XG4gICAgbW9kZTogJ2hvdXJseScsXG4gICAgZGVmYXVsdDogJzAgMCAqLzEgKiAqIConLFxuICAgIHJlZ2V4OiAvXjBcXHNcXGQrXFxzXFwqXFwvXFxkK1xccyhcXCpcXHMpezJ9XFwqJC8sXG4gIH0sXG4gIHtcbiAgICBtb2RlOiAnZGFpbHknLFxuICAgIGRlZmF1bHQ6ICcwIDAgMCAqLzEgKiAqJyxcbiAgICByZWdleDogL14wXFxzXFxkK1xcc1xcZCtcXHNcXCpcXC9cXGQrXFxzXFwqXFxzXFwqJC8sXG4gIH0sXG4gIHtcbiAgICBtb2RlOiAnd2Vla2x5JyxcbiAgICBkZWZhdWx0OiAnMCAwIDAgKiAqIDAnLFxuICAgIHJlZ2V4OiAvXihcXGR7MSwyfVxccyl7MiwzfShcXCpcXHMpezJ9XFxkezEsMn0kLyxcbiAgfSxcbiAge1xuICAgIG1vZGU6ICdtb250aGx5JyxcbiAgICBkZWZhdWx0OiAnMCAwIDAgMSAqIConLFxuICAgIHJlZ2V4OiAvXihcXGQrXFxzKXszLDR9XFwqXFxzXFwqJC8sXG4gIH0sXG4gIHtcbiAgICBtb2RlOiAnY3VzdG9tJyxcbiAgICBkZWZhdWx0OiAnKiAqICogKiAqIConLFxuICAgIHJlZ2V4OiAvXi4qJC8sXG4gIH0sXG5dO1xuXG5leHBvcnQgY29uc3QgZ2V0RGVmYXVsdENyb25EaXNwbGF5ID0gKG1vZGU6IENyb25EaXNwbGF5TW9kZSk6IENyb25EaXNwbGF5ID0+IHtcbiAgY29uc3QgbW9kZUZvdW5kID0gRElTUExBWV9NT0RFX0xJU1QuZmluZChtZiA9PiBtZi5tb2RlID09PSBtb2RlKTtcbiAgaWYgKCFtb2RlRm91bmQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgY3JvbiBtb2RlLicpO1xuICB9XG5cbiAgcmV0dXJuIHBhcnNlQ3JvbkV4cHJlc3Npb24obW9kZUZvdW5kLmRlZmF1bHQpO1xufTtcblxuZXhwb3J0IGNvbnN0IHBhcnNlQ3JvbkV4cHJlc3Npb24gPSAoY3JvbkV4cHJlc3Npb246IHN0cmluZyk6IENyb25EaXNwbGF5ID0+IHtcbiAgdGhyb3dJZkludmFsaWQoY3JvbkV4cHJlc3Npb24pO1xuXG4gIGNvbnN0IHBhcnRzID0gY3JvbkV4cHJlc3Npb24uc3BsaXQoJyAnKTtcblxuICAvLyBOb3JtYWxpemUgY3JvbiBzbyB0aGF0IHNlY29uZCBzZWdtZW50IGlzIGluY2x1ZGVkLlxuICBpZiAoY3JvbkV4cHJlc3Npb24gJiYgY3JvbkV4cHJlc3Npb24uc3BsaXQoJyAnKS5sZW5ndGggPT09IDYpIHtcbiAgICBwYXJ0cy5wdXNoKCcnKTtcbiAgfVxuXG4gIGNvbnN0IGhvdXJJbnRlcnZhbCA9IGdldEhvdXJJbnRlcnZhbChwYXJ0cyk7XG4gIGNvbnN0IG1pbnV0ZUludGVydmFsID0gZ2V0TWludXRlSW50ZXJ2YWwocGFydHMpO1xuICBjb25zdCBzZWNvbmRJbnRlcnZhbCA9IGdldFNlY29uZEludGVydmFsKHBhcnRzKTtcbiAgY29uc3QgZGF5SW50ZXJ2YWwgPSBnZXREYXlJbnRlcnZhbChwYXJ0cyk7XG4gIGNvbnN0IGRheU9mV2VlayA9IGdldERheU9mV2VlayhwYXJ0cyk7XG4gIGNvbnN0IGRheU9mTW9udGggPSBnZXREYXlPZk1vbnRoKHBhcnRzKTtcblxuICBjb25zdCBob3VycyA9IGdldEhvdXJzKHBhcnRzKTtcbiAgY29uc3QgbWludXRlcyA9IGdldE1pbnV0ZXMocGFydHMpO1xuXG4gIGNvbnN0IGRpc3BsYXlNb2RlID0gZ2V0RGlzcGxheU1vZGUoY3JvbkV4cHJlc3Npb24pO1xuXG4gIHN3aXRjaCAoZGlzcGxheU1vZGUubW9kZSkge1xuICAgIGNhc2UgJ3NlY29uZGx5JzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG1vZGU6ICdzZWNvbmRseScsXG4gICAgICAgIHNlY29uZEludGVydmFsLFxuICAgICAgfTtcbiAgICBjYXNlICdtaW51dGVseSc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBtb2RlOiAnbWludXRlbHknLFxuICAgICAgICBtaW51dGVJbnRlcnZhbCxcbiAgICAgIH07XG4gICAgY2FzZSAnaG91cmx5JzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG1vZGU6ICdob3VybHknLFxuICAgICAgICBob3VySW50ZXJ2YWwsXG4gICAgICAgIG1pbnV0ZXMsXG4gICAgICB9O1xuICAgIGNhc2UgJ2RhaWx5JzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG1vZGU6ICdkYWlseScsXG4gICAgICAgIGRheUludGVydmFsLFxuICAgICAgICBob3VycyxcbiAgICAgICAgbWludXRlcyxcbiAgICAgIH07XG4gICAgY2FzZSAnd2Vla2x5JzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG1vZGU6ICd3ZWVrbHknLFxuICAgICAgICBkYXlPZldlZWssXG4gICAgICAgIGhvdXJzLFxuICAgICAgICBtaW51dGVzLFxuICAgICAgfTtcbiAgICBjYXNlICdtb250aGx5JzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG1vZGU6ICdtb250aGx5JyxcbiAgICAgICAgZGF5T2ZNb250aCxcbiAgICAgICAgaG91cnMsXG4gICAgICAgIG1pbnV0ZXMsXG4gICAgICB9O1xuICAgIGNhc2UgJ2N1c3RvbSc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBtb2RlOiAnY3VzdG9tJyxcbiAgICAgICAgY3VzdG9tRXhwcmVzc2lvbjogY3JvbkV4cHJlc3Npb24sXG4gICAgICB9O1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgdG9Dcm9uRXhwcmVzc2lvbiA9IChjcm9uRGlzcGxheTogT21pdDxDcm9uRGlzcGxheSwgJ2Nyb25EZXNjcmlwdGlvbic+KTogc3RyaW5nID0+IHtcbiAgc3dpdGNoIChjcm9uRGlzcGxheS5tb2RlKSB7XG4gICAgY2FzZSAnc2Vjb25kbHknOlxuICAgICAgcmV0dXJuIGAqLyR7Y3JvbkRpc3BsYXkuc2Vjb25kSW50ZXJ2YWx9ICogKiAqICogKmA7XG4gICAgY2FzZSAnbWludXRlbHknOlxuICAgICAgcmV0dXJuIGAwICovJHtjcm9uRGlzcGxheS5taW51dGVJbnRlcnZhbH0gKiAqICogKmA7XG4gICAgY2FzZSAnaG91cmx5JzpcbiAgICAgIHJldHVybiBgMCAke2Nyb25EaXNwbGF5Lm1pbnV0ZXN9ICovJHtjcm9uRGlzcGxheS5ob3VySW50ZXJ2YWx9ICogKiAqYDtcbiAgICBjYXNlICdkYWlseSc6XG4gICAgICByZXR1cm4gYDAgJHtjcm9uRGlzcGxheS5taW51dGVzfSAke2Nyb25EaXNwbGF5LmhvdXJzfSAqLyR7Y3JvbkRpc3BsYXkuZGF5SW50ZXJ2YWx9ICogKmA7XG4gICAgY2FzZSAnd2Vla2x5JzpcbiAgICAgIHJldHVybiBgMCAke2Nyb25EaXNwbGF5Lm1pbnV0ZXN9ICR7Y3JvbkRpc3BsYXkuaG91cnN9ICogKiAke2Nyb25EaXNwbGF5LmRheU9mV2Vla31gO1xuICAgIGNhc2UgJ21vbnRobHknOlxuICAgICAgcmV0dXJuIGAwICR7Y3JvbkRpc3BsYXkubWludXRlc30gJHtjcm9uRGlzcGxheS5ob3Vyc30gJHtjcm9uRGlzcGxheS5kYXlPZk1vbnRofSAqICpgO1xuICAgIGNhc2UgJ2N1c3RvbSc6XG4gICAgICByZXR1cm4gYCR7Y3JvbkRpc3BsYXkuY3VzdG9tRXhwcmVzc2lvbn1gO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgdG9Dcm9uRGVzY3JpcHRpb24gPSAoY3JvbkV4cHJlc3Npb246IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIHRocm93SWZJbnZhbGlkKGNyb25FeHByZXNzaW9uKTtcblxuICBpZiAoIWlzRW1wdHkoY3JvbkV4cHJlc3Npb24pKSB7XG4gICAgcmV0dXJuIENyb25zdHJ1ZS50b1N0cmluZyhjcm9uRXhwcmVzc2lvbik7XG4gIH1cblxuICByZXR1cm4gJyc7XG59O1xuXG4vKipcbiAqIFNpbXBsZSB2YWxpZGF0aW9uIHRvIGVuc3VyZSB0aGF0IHRoZSBjcm9uIGV4cHJlc3Npb24gaGFzIDYgcGFydHMuXG4gKiBOb3RlIDogVGhlIGZ1bGwgY3JvbiBleHByZXNzaW9uIHZhbGlkYXRpb24gaXMgZG9uZSBieSB0aGUgYmFja2VuZC5cbiAqL1xuY29uc3QgdGhyb3dJZkludmFsaWQgPSAoY3JvbkV4cHJlc3Npb246IHN0cmluZyk6IHZvaWQgPT4ge1xuICBjb25zdCBwYXJ0cyA9IGNyb25FeHByZXNzaW9uLnRyaW0oKS5zcGxpdCgvXFxzKy8pO1xuXG4gIGlmIChwYXJ0cy5sZW5ndGggIT0gNikge1xuICAgIHRocm93IG5ldyBFcnJvcignQ3JvbiBleHByZXNzaW9uIG11c3QgaGF2ZSA2IHBhcnRzLicpO1xuICB9XG59O1xuXG5jb25zdCBnZXREaXNwbGF5TW9kZSA9IChcbiAgY3JvbkV4cHJlc3Npb246IHN0cmluZyxcbik6IHtcbiAgbW9kZTogQ3JvbkRpc3BsYXlNb2RlO1xuICBkZWZhdWx0OiBzdHJpbmc7XG59ID0+IHtcbiAgY29uc3QgbW9kZUZvdW5kID0gRElTUExBWV9NT0RFX0xJU1QuZmluZChtZiA9PiB7XG4gICAgY29uc3QgcmVnZXggPSBtZi5yZWdleDtcbiAgICByZXR1cm4gcmVnZXgudGVzdChjcm9uRXhwcmVzc2lvbik7XG4gIH0pO1xuXG4gIGlmICghbW9kZUZvdW5kKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNyb24gZXhwcmVzc2lvbi4nKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbW9kZTogbW9kZUZvdW5kLm1vZGUsXG4gICAgZGVmYXVsdDogbW9kZUZvdW5kLmRlZmF1bHQsXG4gIH07XG59O1xuXG5jb25zdCBnZXRTZWNvbmRJbnRlcnZhbCA9IChleHByZXNzaW9uUGFydHM6IHN0cmluZ1tdKTogbnVtYmVyIHwgdW5kZWZpbmVkID0+IHtcbiAgY29uc3QgdiA9IGdldFNlZ21lbnQoZXhwcmVzc2lvblBhcnRzWzBdKVswXVsxXTtcbiAgcmV0dXJuIHR5cGVvZiB2ID09PSAnbnVtYmVyJyA/IHYgOiB1bmRlZmluZWQ7XG59O1xuXG5jb25zdCBnZXRNaW51dGVJbnRlcnZhbCA9IChleHByZXNzaW9uUGFydHM6IHN0cmluZ1tdKTogbnVtYmVyIHwgdW5kZWZpbmVkID0+IHtcbiAgY29uc3QgdiA9IGdldFNlZ21lbnQoZXhwcmVzc2lvblBhcnRzWzFdKVswXVsxXTtcbiAgcmV0dXJuIHR5cGVvZiB2ID09PSAnbnVtYmVyJyA/IHYgOiB1bmRlZmluZWQ7XG59O1xuXG5jb25zdCBnZXRIb3VySW50ZXJ2YWwgPSAoZXhwcmVzc2lvblBhcnRzOiBzdHJpbmdbXSk6IG51bWJlciB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IHYgPSBnZXRTZWdtZW50KGV4cHJlc3Npb25QYXJ0c1syXSlbMF1bMV07XG4gIHJldHVybiB0eXBlb2YgdiA9PT0gJ251bWJlcicgPyB2IDogdW5kZWZpbmVkO1xufTtcblxuY29uc3QgZ2V0RGF5SW50ZXJ2YWwgPSAoZXhwcmVzc2lvblBhcnRzOiBzdHJpbmdbXSk6IG51bWJlciB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IHYgPSBnZXRTZWdtZW50KGV4cHJlc3Npb25QYXJ0c1szXSlbMF1bMV07XG4gIHJldHVybiB0eXBlb2YgdiA9PT0gJ251bWJlcicgPyB2IDogdW5kZWZpbmVkO1xufTtcblxuY29uc3QgZ2V0RGF5T2ZXZWVrID0gKGV4cHJlc3Npb25QYXJ0czogc3RyaW5nW10pOiBudW1iZXIgfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCB2ID0gZ2V0U2VnbWVudChleHByZXNzaW9uUGFydHNbNV0pWzBdWzBdO1xuICByZXR1cm4gdHlwZW9mIHYgPT09ICdudW1iZXInID8gdiA6IHVuZGVmaW5lZDtcbn07XG5cbmNvbnN0IGdldERheU9mTW9udGggPSAoZXhwcmVzc2lvblBhcnRzOiBzdHJpbmdbXSk6IG51bWJlciB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IHYgPSBnZXRTZWdtZW50KGV4cHJlc3Npb25QYXJ0c1szXSlbMF1bMF07XG4gIHJldHVybiB0eXBlb2YgdiA9PT0gJ251bWJlcicgPyB2IDogdW5kZWZpbmVkO1xufTtcblxuY29uc3QgZ2V0TWludXRlcyA9IChleHByZXNzaW9uUGFydHM6IHN0cmluZ1tdKTogbnVtYmVyIHwgdW5kZWZpbmVkID0+IHtcbiAgY29uc3QgdiA9IGdldFNlZ21lbnQoZXhwcmVzc2lvblBhcnRzWzFdKVswXVswXTtcbiAgcmV0dXJuIHR5cGVvZiB2ID09PSAnbnVtYmVyJyA/IHYgOiB1bmRlZmluZWQ7XG59O1xuXG5jb25zdCBnZXRIb3VycyA9IChleHByZXNzaW9uUGFydHM6IHN0cmluZ1tdKTogbnVtYmVyIHwgdW5kZWZpbmVkID0+IHtcbiAgY29uc3QgdiA9IGdldFNlZ21lbnQoZXhwcmVzc2lvblBhcnRzWzJdKVswXVswXTtcbiAgcmV0dXJuIHR5cGVvZiB2ID09PSAnbnVtYmVyJyA/IHYgOiB1bmRlZmluZWQ7XG59O1xuXG5jb25zdCBnZXRTZWdtZW50ID0gKHZhbHVlOiBzdHJpbmcpOiBBcnJheTxBcnJheTxzdHJpbmcgfCBudW1iZXI+PiA9PiB7XG4gIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdmFsdWUgPSAnKic7XG4gIH1cbiAgcmV0dXJuIHZhbHVlLnNwbGl0KCcsJykubWFwKHMgPT4ge1xuICAgIGlmIChzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHMgPSAnKic7XG4gICAgfVxuICAgIHJldHVybiBzLnNwbGl0KCcvJykubWFwKHAgPT4ge1xuICAgICAgY29uc3QgdiA9IHBhcnNlSW50KHAsIDEwKTtcbiAgICAgIHJldHVybiBpc05hTih2KSA/IHAgOiB2O1xuICAgIH0pO1xuICB9KTtcbn07XG4iXX0=
249
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLWZvcm0tY3Jvbi5hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcGFydGljbGVzLWFuZ3VsYXIvc3JjL2xpYi9naW8tZm9ybS1jcm9uL2dpby1mb3JtLWNyb24uYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sU0FBUyxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFnQmpDLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFVLENBQUM7QUFHdEgsTUFBTSxpQkFBaUIsR0FJakI7SUFDSjtRQUNFLElBQUksRUFBRSxVQUFVO1FBQ2hCLE9BQU8sRUFBRSxlQUFlO1FBQ3hCLEtBQUssRUFBRSx5QkFBeUI7S0FDakM7SUFDRDtRQUNFLElBQUksRUFBRSxVQUFVO1FBQ2hCLE9BQU8sRUFBRSxlQUFlO1FBQ3hCLEtBQUssRUFBRSwyQkFBMkI7S0FDbkM7SUFDRDtRQUNFLElBQUksRUFBRSxRQUFRO1FBQ2QsT0FBTyxFQUFFLGVBQWU7UUFDeEIsS0FBSyxFQUFFLGdDQUFnQztLQUN4QztJQUNEO1FBQ0UsSUFBSSxFQUFFLE9BQU87UUFDYixPQUFPLEVBQUUsZUFBZTtRQUN4QixLQUFLLEVBQUUsZ0NBQWdDO0tBQ3hDO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsUUFBUTtRQUNkLE9BQU8sRUFBRSxhQUFhO1FBQ3RCLEtBQUssRUFBRSxvQ0FBb0M7S0FDNUM7SUFDRDtRQUNFLElBQUksRUFBRSxTQUFTO1FBQ2YsT0FBTyxFQUFFLGFBQWE7UUFDdEIsS0FBSyxFQUFFLHNCQUFzQjtLQUM5QjtJQUNEO1FBQ0UsSUFBSSxFQUFFLFFBQVE7UUFD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QU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDL0MsQ0FBQyxDQUFDO0FBRUYsTUFBTSxlQUFlLEdBQUcsQ0FBQyxlQUF5QixFQUFzQixFQUFFO0lBQ3hFLE1BQU0sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQyxPQUFPLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDL0MsQ0FBQyxDQUFDO0FBRUYsTUFBTSxjQUFjLEdBQUcsQ0FBQyxlQUF5QixFQUFzQixFQUFFO0lBQ3ZFLE1BQU0sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQyxPQUFPLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDL0MsQ0FBQyxDQUFDO0FBRUYsTUFBTSxZQUFZLEdBQUcsQ0FBQyxlQUF5QixFQUFzQixFQUFFO0lBQ3JFLE1BQU0sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQyxPQUFPLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDL0MsQ0FBQyxDQUFDO0FBRUYsTUFBTSxhQUFhLEdBQUcsQ0FBQyxlQUF5QixFQUFzQixFQUFFO0lBQ3RFLE1BQU0sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQyxPQUFPLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDL0MsQ0FBQyxDQUFDO0FBRUYsTUFBTSxVQUFVLEdBQUcsQ0FBQyxlQUF5QixFQUFzQixFQUFFO0lBQ25FLE1BQU0sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQyxPQUFPLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDL0MsQ0FBQyxDQUFDO0FBRUYsTUFBTSxRQUFRLEdBQUcsQ0FBQyxlQUF5QixFQUFzQixFQUFFO0lBQ2pFLE1BQU0sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQyxPQUFPLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDL0MsQ0FBQyxDQUFDO0FBRUYsTUFBTSxVQUFVLEdBQUcsQ0FBQyxLQUFhLEVBQWlDLEVBQUU7SUFDbEUsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDeEIsS0FBSyxHQUFHLEdBQUcsQ0FBQztJQUNkLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQzlCLElBQUksQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3BCLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDVixDQUFDO1FBQ0QsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMxQixNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzFCLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAyMyBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCBDcm9uc3RydWUgZnJvbSAnY3JvbnN0cnVlL2kxOG4nO1xuaW1wb3J0IHsgaXNFbXB0eSB9IGZyb20gJ2xvZGFzaCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JvbkRpc3BsYXkge1xuICBtb2RlOiBDcm9uRGlzcGxheU1vZGU7XG5cbiAgc2Vjb25kSW50ZXJ2YWw/OiBudW1iZXI7XG4gIG1pbnV0ZUludGVydmFsPzogbnVtYmVyO1xuICBob3VySW50ZXJ2YWw/OiBudW1iZXI7XG4gIGRheUludGVydmFsPzogbnVtYmVyO1xuICBkYXlPZldlZWs/OiBudW1iZXI7XG4gIGRheU9mTW9udGg/OiBudW1iZXI7XG4gIGN1c3RvbUV4cHJlc3Npb24/OiBzdHJpbmc7XG5cbiAgaG91cnM/OiBudW1iZXI7XG4gIG1pbnV0ZXM/OiBudW1iZXI7XG59XG5leHBvcnQgY29uc3QgQ1JPTl9ESVNQTEFZX01PREVTID0gWydzZWNvbmRseScsICdtaW51dGVseScsICdob3VybHknLCAnZGFpbHknLCAnd2Vla2x5JywgJ21vbnRobHknLCAnY3VzdG9tJ10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBDcm9uRGlzcGxheU1vZGUgPSAodHlwZW9mIENST05fRElTUExBWV9NT0RFUylbbnVtYmVyXTtcblxuY29uc3QgRElTUExBWV9NT0RFX0xJU1Q6IHtcbiAgbW9kZTogQ3JvbkRpc3BsYXlNb2RlO1xuICBkZWZhdWx0OiBzdHJpbmc7XG4gIHJlZ2V4OiBSZWdFeHA7XG59W10gPSBbXG4gIHtcbiAgICBtb2RlOiAnc2Vjb25kbHknLFxuICAgIGRlZmF1bHQ6ICcqLzEgKiAqICogKiAqJyxcbiAgICByZWdleDogL14oXFwqXFwvXFxkK1xccykoXFwqXFxzKXs0fVxcKi8sXG4gIH0sXG4gIHtcbiAgICBtb2RlOiAnbWludXRlbHknLFxuICAgIGRlZmF1bHQ6ICcwICovMSAqICogKiAqJyxcbiAgICByZWdleDogL14wXFxzXFwqXFwvXFxkK1xccyhcXCpcXHMpezN9XFwqJC8sXG4gIH0sXG4gIHtcbiAgICBtb2RlOiAnaG91cmx5JyxcbiAgICBkZWZhdWx0OiAnMCAwICovMSAqICogKicsXG4gICAgcmVnZXg6IC9eMFxcc1xcZCtcXHNcXCpcXC9cXGQrXFxzKFxcKlxccyl7Mn1cXCokLyxcbiAgfSxcbiAge1xuICAgIG1vZGU6ICdkYWlseScsXG4gICAgZGVmYXVsdDogJzAgMCAwICovMSAqIConLFxuICAgIHJlZ2V4OiAvXjBcXHNcXGQrXFxzXFxkK1xcc1xcKlxcL1xcZCtcXHNcXCpcXHNcXCokLyxcbiAgfSxcbiAge1xuICAgIG1vZGU6ICd3ZWVrbHknLFxuICAgIGRlZmF1bHQ6ICcwIDAgMCAqICogMCcsXG4gICAgcmVnZXg6IC9eKFxcZHsxLDJ9XFxzKXsyLDN9KFxcKlxccyl7Mn1cXGR7MSwyfSQvLFxuICB9LFxuICB7XG4gICAgbW9kZTogJ21vbnRobHknLFxuICAgIGRlZmF1bHQ6ICcwIDAgMCAxICogKicsXG4gICAgcmVnZXg6IC9eKFxcZCtcXHMpezMsNH1cXCpcXHNcXCokLyxcbiAgfSxcbiAge1xuICAgIG1vZGU6ICdjdXN0b20nLFxuICAgIGRlZmF1bHQ6ICcqICogKiAqICogKicsXG4gICAgcmVnZXg6IC9eLiokLyxcbiAgfSxcbl07XG5cbmV4cG9ydCBjb25zdCBnZXREZWZhdWx0Q3JvbkRpc3BsYXkgPSAobW9kZTogQ3JvbkRpc3BsYXlNb2RlKTogQ3JvbkRpc3BsYXkgPT4ge1xuICBjb25zdCBtb2RlRm91bmQgPSBESVNQTEFZX01PREVfTElTVC5maW5kKG1mID0+IG1mLm1vZGUgPT09IG1vZGUpO1xuICBpZiAoIW1vZGVGb3VuZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBjcm9uIG1vZGUuJyk7XG4gIH1cblxuICByZXR1cm4gcGFyc2VDcm9uRXhwcmVzc2lvbihtb2RlRm91bmQuZGVmYXVsdCk7XG59O1xuXG5leHBvcnQgY29uc3QgcGFyc2VDcm9uRXhwcmVzc2lvbiA9IChjcm9uRXhwcmVzc2lvbjogc3RyaW5nKTogQ3JvbkRpc3BsYXkgPT4ge1xuICB0aHJvd0lmSW52YWxpZChjcm9uRXhwcmVzc2lvbik7XG5cbiAgY29uc3QgcGFydHMgPSBjcm9uRXhwcmVzc2lvbi5zcGxpdCgnICcpO1xuXG4gIC8vIE5vcm1hbGl6ZSBjcm9uIHNvIHRoYXQgc2Vjb25kIHNlZ21lbnQgaXMgaW5jbHVkZWQuXG4gIGlmIChjcm9uRXhwcmVzc2lvbiAmJiBjcm9uRXhwcmVzc2lvbi5zcGxpdCgnICcpLmxlbmd0aCA9PT0gNikge1xuICAgIHBhcnRzLnB1c2goJycpO1xuICB9XG5cbiAgY29uc3QgaG91ckludGVydmFsID0gZ2V0SG91ckludGVydmFsKHBhcnRzKTtcbiAgY29uc3QgbWludXRlSW50ZXJ2YWwgPSBnZXRNaW51dGVJbnRlcnZhbChwYXJ0cyk7XG4gIGNvbnN0IHNlY29uZEludGVydmFsID0gZ2V0U2Vjb25kSW50ZXJ2YWwocGFydHMpO1xuICBjb25zdCBkYXlJbnRlcnZhbCA9IGdldERheUludGVydmFsKHBhcnRzKTtcbiAgY29uc3QgZGF5T2ZXZWVrID0gZ2V0RGF5T2ZXZWVrKHBhcnRzKTtcbiAgY29uc3QgZGF5T2ZNb250aCA9IGdldERheU9mTW9udGgocGFydHMpO1xuXG4gIGNvbnN0IGhvdXJzID0gZ2V0SG91cnMocGFydHMpO1xuICBjb25zdCBtaW51dGVzID0gZ2V0TWludXRlcyhwYXJ0cyk7XG5cbiAgY29uc3QgZGlzcGxheU1vZGUgPSBnZXREaXNwbGF5TW9kZShjcm9uRXhwcmVzc2lvbik7XG5cbiAgc3dpdGNoIChkaXNwbGF5TW9kZS5tb2RlKSB7XG4gICAgY2FzZSAnc2Vjb25kbHknOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbW9kZTogJ3NlY29uZGx5JyxcbiAgICAgICAgc2Vjb25kSW50ZXJ2YWwsXG4gICAgICB9O1xuICAgIGNhc2UgJ21pbnV0ZWx5JzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG1vZGU6ICdtaW51dGVseScsXG4gICAgICAgIG1pbnV0ZUludGVydmFsLFxuICAgICAgfTtcbiAgICBjYXNlICdob3VybHknOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbW9kZTogJ2hvdXJseScsXG4gICAgICAgIGhvdXJJbnRlcnZhbCxcbiAgICAgICAgbWludXRlcyxcbiAgICAgIH07XG4gICAgY2FzZSAnZGFpbHknOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbW9kZTogJ2RhaWx5JyxcbiAgICAgICAgZGF5SW50ZXJ2YWwsXG4gICAgICAgIGhvdXJzLFxuICAgICAgICBtaW51dGVzLFxuICAgICAgfTtcbiAgICBjYXNlICd3ZWVrbHknOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbW9kZTogJ3dlZWtseScsXG4gICAgICAgIGRheU9mV2VlayxcbiAgICAgICAgaG91cnMsXG4gICAgICAgIG1pbnV0ZXMsXG4gICAgICB9O1xuICAgIGNhc2UgJ21vbnRobHknOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbW9kZTogJ21vbnRobHknLFxuICAgICAgICBkYXlPZk1vbnRoLFxuICAgICAgICBob3VycyxcbiAgICAgICAgbWludXRlcyxcbiAgICAgIH07XG4gICAgY2FzZSAnY3VzdG9tJzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG1vZGU6ICdjdXN0b20nLFxuICAgICAgICBjdXN0b21FeHByZXNzaW9uOiBjcm9uRXhwcmVzc2lvbixcbiAgICAgIH07XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCB0b0Nyb25FeHByZXNzaW9uID0gKGNyb25EaXNwbGF5OiBPbWl0PENyb25EaXNwbGF5LCAnY3JvbkRlc2NyaXB0aW9uJz4pOiBzdHJpbmcgPT4ge1xuICBzd2l0Y2ggKGNyb25EaXNwbGF5Lm1vZGUpIHtcbiAgICBjYXNlICdzZWNvbmRseSc6XG4gICAgICByZXR1cm4gYCovJHtjcm9uRGlzcGxheS5zZWNvbmRJbnRlcnZhbH0gKiAqICogKiAqYDtcbiAgICBjYXNlICdtaW51dGVseSc6XG4gICAgICByZXR1cm4gYDAgKi8ke2Nyb25EaXNwbGF5Lm1pbnV0ZUludGVydmFsfSAqICogKiAqYDtcbiAgICBjYXNlICdob3VybHknOlxuICAgICAgcmV0dXJuIGAwICR7Y3JvbkRpc3BsYXkubWludXRlc30gKi8ke2Nyb25EaXNwbGF5LmhvdXJJbnRlcnZhbH0gKiAqICpgO1xuICAgIGNhc2UgJ2RhaWx5JzpcbiAgICAgIHJldHVybiBgMCAke2Nyb25EaXNwbGF5Lm1pbnV0ZXN9ICR7Y3JvbkRpc3BsYXkuaG91cnN9ICovJHtjcm9uRGlzcGxheS5kYXlJbnRlcnZhbH0gKiAqYDtcbiAgICBjYXNlICd3ZWVrbHknOlxuICAgICAgcmV0dXJuIGAwICR7Y3JvbkRpc3BsYXkubWludXRlc30gJHtjcm9uRGlzcGxheS5ob3Vyc30gKiAqICR7Y3JvbkRpc3BsYXkuZGF5T2ZXZWVrfWA7XG4gICAgY2FzZSAnbW9udGhseSc6XG4gICAgICByZXR1cm4gYDAgJHtjcm9uRGlzcGxheS5taW51dGVzfSAke2Nyb25EaXNwbGF5LmhvdXJzfSAke2Nyb25EaXNwbGF5LmRheU9mTW9udGh9ICogKmA7XG4gICAgY2FzZSAnY3VzdG9tJzpcbiAgICAgIHJldHVybiBgJHtjcm9uRGlzcGxheS5jdXN0b21FeHByZXNzaW9ufWA7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCB0b0Nyb25EZXNjcmlwdGlvbiA9IChjcm9uRXhwcmVzc2lvbjogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgdGhyb3dJZkludmFsaWQoY3JvbkV4cHJlc3Npb24pO1xuXG4gIGlmICghaXNFbXB0eShjcm9uRXhwcmVzc2lvbikpIHtcbiAgICByZXR1cm4gQ3JvbnN0cnVlLnRvU3RyaW5nKGV4cGFuZE1pc2xlYWRpbmdTdGVwcyhjcm9uRXhwcmVzc2lvbikpO1xuICB9XG5cbiAgcmV0dXJuICcnO1xufTtcblxuLyoqXG4gKiBFeHBhbmQgc3RlcCB2YWx1ZXMgKGxpa2UgKlxcLzUwKSB0aGF0IGRvbid0IGV2ZW5seSBkaXZpZGUgdGhlIGZpZWxkIHJhbmdlXG4gKiBpbnRvIGV4cGxpY2l0IHZhbHVlIGxpc3RzIChsaWtlIDAsNTApIHNvIHRoYXQgY3JvbnN0cnVlIGdlbmVyYXRlcyBhbiBhY2N1cmF0ZSBkZXNjcmlwdGlvbi5cbiAqXG4gKiBGb3IgZXhhbXBsZSwgKlxcLzUwIGluIHRoZSBtaW51dGVzIGZpZWxkIG1lYW5zIFwiYXQgZXZlcnkgbWludXRlIGRpdmlzaWJsZSBieSA1MFwiIChpLmUuIDAgYW5kIDUwKSxcbiAqIE5PVCBcImV2ZXJ5IDUwIG1pbnV0ZXNcIi4gV2l0aG91dCB0aGlzIGZpeCwgY3JvbnN0cnVlIHdvdWxkIGRpc3BsYXkgXCJFdmVyeSA1MCBtaW51dGVzXCIgd2hpY2ggaXMgbWlzbGVhZGluZy5cbiAqXG4gKiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9icmFkeW1ob2x0L2NSb25zdHJ1ZS9pc3N1ZXMvMzYwXG4gKi9cbmNvbnN0IGV4cGFuZE1pc2xlYWRpbmdTdGVwcyA9IChjcm9uRXhwcmVzc2lvbjogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgY29uc3QgcGFydHMgPSBjcm9uRXhwcmVzc2lvbi50cmltKCkuc3BsaXQoL1xccysvKTtcbiAgLy8gRmllbGQgcmFuZ2VzOiBbc2Vjb25kcywgbWludXRlcywgaG91cnMsIGRheS1vZi1tb250aCwgbW9udGgsIGRheS1vZi13ZWVrXVxuICBjb25zdCBmaWVsZFJhbmdlcyA9IFs2MCwgNjAsIDI0LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkXTtcblxuICBjb25zdCBleHBhbmRlZFBhcnRzID0gcGFydHMubWFwKChwYXJ0LCBpbmRleCkgPT4ge1xuICAgIGNvbnN0IHJhbmdlID0gZmllbGRSYW5nZXNbaW5kZXhdO1xuICAgIGlmIChyYW5nZSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gcGFydDtcblxuICAgIGNvbnN0IG1hdGNoID0gcGFydC5tYXRjaCgvXlxcKlxcLyhcXGQrKSQvKTtcbiAgICBpZiAoIW1hdGNoKSByZXR1cm4gcGFydDtcblxuICAgIGNvbnN0IHN0ZXAgPSBwYXJzZUludChtYXRjaFsxXSwgMTApO1xuICAgIGlmIChzdGVwIDw9IDAgfHwgcmFuZ2UgJSBzdGVwID09PSAwKSByZXR1cm4gcGFydDtcblxuICAgIGNvbnN0IHZhbHVlczogbnVtYmVyW10gPSBbXTtcbiAgICBmb3IgKGxldCB2ID0gMDsgdiA8IHJhbmdlOyB2ICs9IHN0ZXApIHtcbiAgICAgIHZhbHVlcy5wdXNoKHYpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWVzLmpvaW4oJywnKTtcbiAgfSk7XG5cbiAgcmV0dXJuIGV4cGFuZGVkUGFydHMuam9pbignICcpO1xufTtcblxuLyoqXG4gKiBTaW1wbGUgdmFsaWRhdGlvbiB0byBlbnN1cmUgdGhhdCB0aGUgY3JvbiBleHByZXNzaW9uIGhhcyA2IHBhcnRzLlxuICogTm90ZSA6IFRoZSBmdWxsIGNyb24gZXhwcmVzc2lvbiB2YWxpZGF0aW9uIGlzIGRvbmUgYnkgdGhlIGJhY2tlbmQuXG4gKi9cbmNvbnN0IHRocm93SWZJbnZhbGlkID0gKGNyb25FeHByZXNzaW9uOiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgY29uc3QgcGFydHMgPSBjcm9uRXhwcmVzc2lvbi50cmltKCkuc3BsaXQoL1xccysvKTtcblxuICBpZiAocGFydHMubGVuZ3RoICE9IDYpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nyb24gZXhwcmVzc2lvbiBtdXN0IGhhdmUgNiBwYXJ0cy4nKTtcbiAgfVxufTtcblxuY29uc3QgZ2V0RGlzcGxheU1vZGUgPSAoXG4gIGNyb25FeHByZXNzaW9uOiBzdHJpbmcsXG4pOiB7XG4gIG1vZGU6IENyb25EaXNwbGF5TW9kZTtcbiAgZGVmYXVsdDogc3RyaW5nO1xufSA9PiB7XG4gIGNvbnN0IG1vZGVGb3VuZCA9IERJU1BMQVlfTU9ERV9MSVNULmZpbmQobWYgPT4ge1xuICAgIGNvbnN0IHJlZ2V4ID0gbWYucmVnZXg7XG4gICAgcmV0dXJuIHJlZ2V4LnRlc3QoY3JvbkV4cHJlc3Npb24pO1xuICB9KTtcblxuICBpZiAoIW1vZGVGb3VuZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBjcm9uIGV4cHJlc3Npb24uJyk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG1vZGU6IG1vZGVGb3VuZC5tb2RlLFxuICAgIGRlZmF1bHQ6IG1vZGVGb3VuZC5kZWZhdWx0LFxuICB9O1xufTtcblxuY29uc3QgZ2V0U2Vjb25kSW50ZXJ2YWwgPSAoZXhwcmVzc2lvblBhcnRzOiBzdHJpbmdbXSk6IG51bWJlciB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IHYgPSBnZXRTZWdtZW50KGV4cHJlc3Npb25QYXJ0c1swXSlbMF1bMV07XG4gIHJldHVybiB0eXBlb2YgdiA9PT0gJ251bWJlcicgPyB2IDogdW5kZWZpbmVkO1xufTtcblxuY29uc3QgZ2V0TWludXRlSW50ZXJ2YWwgPSAoZXhwcmVzc2lvblBhcnRzOiBzdHJpbmdbXSk6IG51bWJlciB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IHYgPSBnZXRTZWdtZW50KGV4cHJlc3Npb25QYXJ0c1sxXSlbMF1bMV07XG4gIHJldHVybiB0eXBlb2YgdiA9PT0gJ251bWJlcicgPyB2IDogdW5kZWZpbmVkO1xufTtcblxuY29uc3QgZ2V0SG91ckludGVydmFsID0gKGV4cHJlc3Npb25QYXJ0czogc3RyaW5nW10pOiBudW1iZXIgfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCB2ID0gZ2V0U2VnbWVudChleHByZXNzaW9uUGFydHNbMl0pWzBdWzFdO1xuICByZXR1cm4gdHlwZW9mIHYgPT09ICdudW1iZXInID8gdiA6IHVuZGVmaW5lZDtcbn07XG5cbmNvbnN0IGdldERheUludGVydmFsID0gKGV4cHJlc3Npb25QYXJ0czogc3RyaW5nW10pOiBudW1iZXIgfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCB2ID0gZ2V0U2VnbWVudChleHByZXNzaW9uUGFydHNbM10pWzBdWzFdO1xuICByZXR1cm4gdHlwZW9mIHYgPT09ICdudW1iZXInID8gdiA6IHVuZGVmaW5lZDtcbn07XG5cbmNvbnN0IGdldERheU9mV2VlayA9IChleHByZXNzaW9uUGFydHM6IHN0cmluZ1tdKTogbnVtYmVyIHwgdW5kZWZpbmVkID0+IHtcbiAgY29uc3QgdiA9IGdldFNlZ21lbnQoZXhwcmVzc2lvblBhcnRzWzVdKVswXVswXTtcbiAgcmV0dXJuIHR5cGVvZiB2ID09PSAnbnVtYmVyJyA/IHYgOiB1bmRlZmluZWQ7XG59O1xuXG5jb25zdCBnZXREYXlPZk1vbnRoID0gKGV4cHJlc3Npb25QYXJ0czogc3RyaW5nW10pOiBudW1iZXIgfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCB2ID0gZ2V0U2VnbWVudChleHByZXNzaW9uUGFydHNbM10pWzBdWzBdO1xuICByZXR1cm4gdHlwZW9mIHYgPT09ICdudW1iZXInID8gdiA6IHVuZGVmaW5lZDtcbn07XG5cbmNvbnN0IGdldE1pbnV0ZXMgPSAoZXhwcmVzc2lvblBhcnRzOiBzdHJpbmdbXSk6IG51bWJlciB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IHYgPSBnZXRTZWdtZW50KGV4cHJlc3Npb25QYXJ0c1sxXSlbMF1bMF07XG4gIHJldHVybiB0eXBlb2YgdiA9PT0gJ251bWJlcicgPyB2IDogdW5kZWZpbmVkO1xufTtcblxuY29uc3QgZ2V0SG91cnMgPSAoZXhwcmVzc2lvblBhcnRzOiBzdHJpbmdbXSk6IG51bWJlciB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IHYgPSBnZXRTZWdtZW50KGV4cHJlc3Npb25QYXJ0c1syXSlbMF1bMF07XG4gIHJldHVybiB0eXBlb2YgdiA9PT0gJ251bWJlcicgPyB2IDogdW5kZWZpbmVkO1xufTtcblxuY29uc3QgZ2V0U2VnbWVudCA9ICh2YWx1ZTogc3RyaW5nKTogQXJyYXk8QXJyYXk8c3RyaW5nIHwgbnVtYmVyPj4gPT4ge1xuICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgIHZhbHVlID0gJyonO1xuICB9XG4gIHJldHVybiB2YWx1ZS5zcGxpdCgnLCcpLm1hcChzID0+IHtcbiAgICBpZiAocyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBzID0gJyonO1xuICAgIH1cbiAgICByZXR1cm4gcy5zcGxpdCgnLycpLm1hcChwID0+IHtcbiAgICAgIGNvbnN0IHYgPSBwYXJzZUludChwLCAxMCk7XG4gICAgICByZXR1cm4gaXNOYU4odikgPyBwIDogdjtcbiAgICB9KTtcbiAgfSk7XG59O1xuIl19
@@ -4666,10 +4666,41 @@ const toCronExpression = (cronDisplay) => {
4666
4666
  const toCronDescription = (cronExpression) => {
4667
4667
  throwIfInvalid(cronExpression);
4668
4668
  if (!isEmpty(cronExpression)) {
4669
- return Cronstrue.toString(cronExpression);
4669
+ return Cronstrue.toString(expandMisleadingSteps(cronExpression));
4670
4670
  }
4671
4671
  return '';
4672
4672
  };
4673
+ /**
4674
+ * Expand step values (like *\/50) that don't evenly divide the field range
4675
+ * into explicit value lists (like 0,50) so that cronstrue generates an accurate description.
4676
+ *
4677
+ * For example, *\/50 in the minutes field means "at every minute divisible by 50" (i.e. 0 and 50),
4678
+ * NOT "every 50 minutes". Without this fix, cronstrue would display "Every 50 minutes" which is misleading.
4679
+ *
4680
+ * See: https://github.com/bradymholt/cRonstrue/issues/360
4681
+ */
4682
+ const expandMisleadingSteps = (cronExpression) => {
4683
+ const parts = cronExpression.trim().split(/\s+/);
4684
+ // Field ranges: [seconds, minutes, hours, day-of-month, month, day-of-week]
4685
+ const fieldRanges = [60, 60, 24, undefined, undefined, undefined];
4686
+ const expandedParts = parts.map((part, index) => {
4687
+ const range = fieldRanges[index];
4688
+ if (range === undefined)
4689
+ return part;
4690
+ const match = part.match(/^\*\/(\d+)$/);
4691
+ if (!match)
4692
+ return part;
4693
+ const step = parseInt(match[1], 10);
4694
+ if (step <= 0 || range % step === 0)
4695
+ return part;
4696
+ const values = [];
4697
+ for (let v = 0; v < range; v += step) {
4698
+ values.push(v);
4699
+ }
4700
+ return values.join(',');
4701
+ });
4702
+ return expandedParts.join(' ');
4703
+ };
4673
4704
  /**
4674
4705
  * Simple validation to ensure that the cron expression has 6 parts.
4675
4706
  * Note : The full cron expression validation is done by the backend.