@qualtrics/plugin-ui-react 1.3.3 → 1.4.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.dockerignore +10 -0
- package/.eslintrc.js +1 -1
- package/Dockerfile +18 -0
- package/Makefile +33 -4
- package/README.md +28 -0
- package/dist/common/capture-event/capture-event.d.ts +13 -0
- package/dist/common/capture-event/capture-event.test.d.ts +1 -0
- package/dist/common/copy-text/copy-text.d.ts +8 -0
- package/dist/common/copy-text/copy-text.test.d.ts +1 -0
- package/dist/common/field-mapper/field-mapper-key/field-mapper-key.d.ts +12 -0
- package/dist/common/field-mapper/field-mapper-row/field-mapper-row.d.ts +17 -0
- package/dist/common/field-mapper/field-mapper-value/field-mapper-value.d.ts +11 -0
- package/dist/common/field-mapper/field-mapper.d.ts +20 -0
- package/dist/common/field-mapper/index.d.ts +4 -0
- package/dist/common/piped-text-input/piped-text-input.d.ts +2 -2
- package/dist/common/piped-text-select/piped-text-menu/piped-text-menu-item/piped-text-menu-item.d.ts +16 -0
- package/dist/common/piped-text-select/piped-text-menu/piped-text-submenu-item/piped-text-submenu-item.d.ts +13 -0
- package/dist/common/portal.d.ts +3 -0
- package/dist/hooks/use-id.d.ts +7 -0
- package/dist/index.d.ts +4 -1
- package/dist/lib/models/field-mapper-item.d.ts +7 -0
- package/dist/lib/models/piped-text-menu-item-data.d.ts +21 -0
- package/dist/lib/models/piped-text.d.ts +16 -0
- package/dist/lib/type-validation/validate-primitives.d.ts +1 -0
- package/dist/main.es.js +959 -172
- package/dist/main.js +963 -170
- package/jenkins.groovy +284 -0
- package/jenkinsPipelineUtils/jira.groovy +84 -0
- package/jenkinsPipelineUtils/notifications.groovy +34 -0
- package/jenkinsPipelineUtils/pipelineControls.groovy +56 -0
- package/jenkinsPipelineUtils/trs.groovy +30 -0
- package/package.json +7 -6
- package/test_results/junit.xml +101 -0
- package/.bee +0 -2
- package/Jenkinsfile +0 -109
- package/bee +0 -932
package/dist/main.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @license @qualtrics/plugin-ui-react 1.
|
|
1
|
+
/*! @license @qualtrics/plugin-ui-react 1.4.0-alpha.0
|
|
2
2
|
Qualtrics Software License Agreement
|
|
3
3
|
|
|
4
4
|
1. General.
|
|
@@ -64,16 +64,16 @@ var _get = require('lodash.get');
|
|
|
64
64
|
var uiReact = require('@qualtrics/ui-react');
|
|
65
65
|
var icons = require('@qualtrics/ui-react/icons');
|
|
66
66
|
require('core-js/modules/es.string.anchor.js');
|
|
67
|
+
require('core-js/modules/es.array.filter.js');
|
|
67
68
|
require('core-js/modules/es.string.trim.js');
|
|
68
69
|
require('core-js/modules/es.array.map.js');
|
|
69
70
|
require('core-js/modules/es.array.concat.js');
|
|
70
|
-
require('core-js/modules/es.array.filter.js');
|
|
71
|
-
require('regenerator-runtime/runtime.js');
|
|
72
71
|
var _cloneDeep = require('lodash.clonedeep');
|
|
73
72
|
require('core-js/modules/es.array.is-array.js');
|
|
74
73
|
var reactPopper = require('react-popper');
|
|
75
74
|
var ReactDOM = require('react-dom');
|
|
76
75
|
require('core-js/modules/web.timers.js');
|
|
76
|
+
var uuid = require('uuid');
|
|
77
77
|
require('core-js/modules/es.function.name.js');
|
|
78
78
|
require('core-js/modules/es.array.slice.js');
|
|
79
79
|
require('core-js/modules/es.array.iterator.js');
|
|
@@ -81,7 +81,6 @@ require('core-js/modules/web.dom-collections.iterator.js');
|
|
|
81
81
|
require('core-js/modules/es.array.find.js');
|
|
82
82
|
require('core-js/modules/es.object.assign.js');
|
|
83
83
|
var _cloneDeepWith = require('lodash.clonedeepwith');
|
|
84
|
-
var uuid = require('uuid');
|
|
85
84
|
require('core-js/modules/es.regexp.exec.js');
|
|
86
85
|
require('core-js/modules/es.string.search.js');
|
|
87
86
|
|
|
@@ -91,8 +90,8 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
|
91
90
|
var _get__default = /*#__PURE__*/_interopDefaultLegacy(_get);
|
|
92
91
|
var _cloneDeep__default = /*#__PURE__*/_interopDefaultLegacy(_cloneDeep);
|
|
93
92
|
var ReactDOM__default = /*#__PURE__*/_interopDefaultLegacy(ReactDOM);
|
|
94
|
-
var _cloneDeepWith__default = /*#__PURE__*/_interopDefaultLegacy(_cloneDeepWith);
|
|
95
93
|
var uuid__default = /*#__PURE__*/_interopDefaultLegacy(uuid);
|
|
94
|
+
var _cloneDeepWith__default = /*#__PURE__*/_interopDefaultLegacy(_cloneDeepWith);
|
|
96
95
|
|
|
97
96
|
function styleInject(css, ref) {
|
|
98
97
|
if ( ref === void 0 ) ref = {};
|
|
@@ -121,8 +120,8 @@ function styleInject(css, ref) {
|
|
|
121
120
|
}
|
|
122
121
|
}
|
|
123
122
|
|
|
124
|
-
var css_248z$
|
|
125
|
-
styleInject(css_248z$
|
|
123
|
+
var css_248z$j = ".react-app {\n background-color: RGBA(0, 0, 0, 0.1); }\n";
|
|
124
|
+
styleInject(css_248z$j);
|
|
126
125
|
|
|
127
126
|
function ownKeys(object, enumerableOnly) {
|
|
128
127
|
var keys = Object.keys(object);
|
|
@@ -150,6 +149,351 @@ function _objectSpread2(target) {
|
|
|
150
149
|
return target;
|
|
151
150
|
}
|
|
152
151
|
|
|
152
|
+
function _regeneratorRuntime() {
|
|
153
|
+
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
|
|
154
|
+
|
|
155
|
+
_regeneratorRuntime = function () {
|
|
156
|
+
return exports;
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
var exports = {},
|
|
160
|
+
Op = Object.prototype,
|
|
161
|
+
hasOwn = Op.hasOwnProperty,
|
|
162
|
+
$Symbol = "function" == typeof Symbol ? Symbol : {},
|
|
163
|
+
iteratorSymbol = $Symbol.iterator || "@@iterator",
|
|
164
|
+
asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator",
|
|
165
|
+
toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";
|
|
166
|
+
|
|
167
|
+
function define(obj, key, value) {
|
|
168
|
+
return Object.defineProperty(obj, key, {
|
|
169
|
+
value: value,
|
|
170
|
+
enumerable: !0,
|
|
171
|
+
configurable: !0,
|
|
172
|
+
writable: !0
|
|
173
|
+
}), obj[key];
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
try {
|
|
177
|
+
define({}, "");
|
|
178
|
+
} catch (err) {
|
|
179
|
+
define = function (obj, key, value) {
|
|
180
|
+
return obj[key] = value;
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
function wrap(innerFn, outerFn, self, tryLocsList) {
|
|
185
|
+
var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,
|
|
186
|
+
generator = Object.create(protoGenerator.prototype),
|
|
187
|
+
context = new Context(tryLocsList || []);
|
|
188
|
+
return generator._invoke = function (innerFn, self, context) {
|
|
189
|
+
var state = "suspendedStart";
|
|
190
|
+
return function (method, arg) {
|
|
191
|
+
if ("executing" === state) throw new Error("Generator is already running");
|
|
192
|
+
|
|
193
|
+
if ("completed" === state) {
|
|
194
|
+
if ("throw" === method) throw arg;
|
|
195
|
+
return doneResult();
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
for (context.method = method, context.arg = arg;;) {
|
|
199
|
+
var delegate = context.delegate;
|
|
200
|
+
|
|
201
|
+
if (delegate) {
|
|
202
|
+
var delegateResult = maybeInvokeDelegate(delegate, context);
|
|
203
|
+
|
|
204
|
+
if (delegateResult) {
|
|
205
|
+
if (delegateResult === ContinueSentinel) continue;
|
|
206
|
+
return delegateResult;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) {
|
|
211
|
+
if ("suspendedStart" === state) throw state = "completed", context.arg;
|
|
212
|
+
context.dispatchException(context.arg);
|
|
213
|
+
} else "return" === context.method && context.abrupt("return", context.arg);
|
|
214
|
+
state = "executing";
|
|
215
|
+
var record = tryCatch(innerFn, self, context);
|
|
216
|
+
|
|
217
|
+
if ("normal" === record.type) {
|
|
218
|
+
if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue;
|
|
219
|
+
return {
|
|
220
|
+
value: record.arg,
|
|
221
|
+
done: context.done
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
"throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg);
|
|
226
|
+
}
|
|
227
|
+
};
|
|
228
|
+
}(innerFn, self, context), generator;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
function tryCatch(fn, obj, arg) {
|
|
232
|
+
try {
|
|
233
|
+
return {
|
|
234
|
+
type: "normal",
|
|
235
|
+
arg: fn.call(obj, arg)
|
|
236
|
+
};
|
|
237
|
+
} catch (err) {
|
|
238
|
+
return {
|
|
239
|
+
type: "throw",
|
|
240
|
+
arg: err
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
exports.wrap = wrap;
|
|
246
|
+
var ContinueSentinel = {};
|
|
247
|
+
|
|
248
|
+
function Generator() {}
|
|
249
|
+
|
|
250
|
+
function GeneratorFunction() {}
|
|
251
|
+
|
|
252
|
+
function GeneratorFunctionPrototype() {}
|
|
253
|
+
|
|
254
|
+
var IteratorPrototype = {};
|
|
255
|
+
define(IteratorPrototype, iteratorSymbol, function () {
|
|
256
|
+
return this;
|
|
257
|
+
});
|
|
258
|
+
var getProto = Object.getPrototypeOf,
|
|
259
|
+
NativeIteratorPrototype = getProto && getProto(getProto(values([])));
|
|
260
|
+
NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);
|
|
261
|
+
var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);
|
|
262
|
+
|
|
263
|
+
function defineIteratorMethods(prototype) {
|
|
264
|
+
["next", "throw", "return"].forEach(function (method) {
|
|
265
|
+
define(prototype, method, function (arg) {
|
|
266
|
+
return this._invoke(method, arg);
|
|
267
|
+
});
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
function AsyncIterator(generator, PromiseImpl) {
|
|
272
|
+
function invoke(method, arg, resolve, reject) {
|
|
273
|
+
var record = tryCatch(generator[method], generator, arg);
|
|
274
|
+
|
|
275
|
+
if ("throw" !== record.type) {
|
|
276
|
+
var result = record.arg,
|
|
277
|
+
value = result.value;
|
|
278
|
+
return value && "object" == typeof value && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) {
|
|
279
|
+
invoke("next", value, resolve, reject);
|
|
280
|
+
}, function (err) {
|
|
281
|
+
invoke("throw", err, resolve, reject);
|
|
282
|
+
}) : PromiseImpl.resolve(value).then(function (unwrapped) {
|
|
283
|
+
result.value = unwrapped, resolve(result);
|
|
284
|
+
}, function (error) {
|
|
285
|
+
return invoke("throw", error, resolve, reject);
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
reject(record.arg);
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
var previousPromise;
|
|
293
|
+
|
|
294
|
+
this._invoke = function (method, arg) {
|
|
295
|
+
function callInvokeWithMethodAndArg() {
|
|
296
|
+
return new PromiseImpl(function (resolve, reject) {
|
|
297
|
+
invoke(method, arg, resolve, reject);
|
|
298
|
+
});
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
function maybeInvokeDelegate(delegate, context) {
|
|
306
|
+
var method = delegate.iterator[context.method];
|
|
307
|
+
|
|
308
|
+
if (undefined === method) {
|
|
309
|
+
if (context.delegate = null, "throw" === context.method) {
|
|
310
|
+
if (delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method)) return ContinueSentinel;
|
|
311
|
+
context.method = "throw", context.arg = new TypeError("The iterator does not provide a 'throw' method");
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
return ContinueSentinel;
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
var record = tryCatch(method, delegate.iterator, context.arg);
|
|
318
|
+
if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel;
|
|
319
|
+
var info = record.arg;
|
|
320
|
+
return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel);
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
function pushTryEntry(locs) {
|
|
324
|
+
var entry = {
|
|
325
|
+
tryLoc: locs[0]
|
|
326
|
+
};
|
|
327
|
+
1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
function resetTryEntry(entry) {
|
|
331
|
+
var record = entry.completion || {};
|
|
332
|
+
record.type = "normal", delete record.arg, entry.completion = record;
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
function Context(tryLocsList) {
|
|
336
|
+
this.tryEntries = [{
|
|
337
|
+
tryLoc: "root"
|
|
338
|
+
}], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
function values(iterable) {
|
|
342
|
+
if (iterable) {
|
|
343
|
+
var iteratorMethod = iterable[iteratorSymbol];
|
|
344
|
+
if (iteratorMethod) return iteratorMethod.call(iterable);
|
|
345
|
+
if ("function" == typeof iterable.next) return iterable;
|
|
346
|
+
|
|
347
|
+
if (!isNaN(iterable.length)) {
|
|
348
|
+
var i = -1,
|
|
349
|
+
next = function next() {
|
|
350
|
+
for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;
|
|
351
|
+
|
|
352
|
+
return next.value = undefined, next.done = !0, next;
|
|
353
|
+
};
|
|
354
|
+
|
|
355
|
+
return next.next = next;
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
return {
|
|
360
|
+
next: doneResult
|
|
361
|
+
};
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
function doneResult() {
|
|
365
|
+
return {
|
|
366
|
+
value: undefined,
|
|
367
|
+
done: !0
|
|
368
|
+
};
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, "constructor", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) {
|
|
372
|
+
var ctor = "function" == typeof genFun && genFun.constructor;
|
|
373
|
+
return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name));
|
|
374
|
+
}, exports.mark = function (genFun) {
|
|
375
|
+
return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun;
|
|
376
|
+
}, exports.awrap = function (arg) {
|
|
377
|
+
return {
|
|
378
|
+
__await: arg
|
|
379
|
+
};
|
|
380
|
+
}, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {
|
|
381
|
+
return this;
|
|
382
|
+
}), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {
|
|
383
|
+
void 0 === PromiseImpl && (PromiseImpl = Promise);
|
|
384
|
+
var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);
|
|
385
|
+
return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {
|
|
386
|
+
return result.done ? result.value : iter.next();
|
|
387
|
+
});
|
|
388
|
+
}, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () {
|
|
389
|
+
return this;
|
|
390
|
+
}), define(Gp, "toString", function () {
|
|
391
|
+
return "[object Generator]";
|
|
392
|
+
}), exports.keys = function (object) {
|
|
393
|
+
var keys = [];
|
|
394
|
+
|
|
395
|
+
for (var key in object) keys.push(key);
|
|
396
|
+
|
|
397
|
+
return keys.reverse(), function next() {
|
|
398
|
+
for (; keys.length;) {
|
|
399
|
+
var key = keys.pop();
|
|
400
|
+
if (key in object) return next.value = key, next.done = !1, next;
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
return next.done = !0, next;
|
|
404
|
+
};
|
|
405
|
+
}, exports.values = values, Context.prototype = {
|
|
406
|
+
constructor: Context,
|
|
407
|
+
reset: function (skipTempReset) {
|
|
408
|
+
if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);
|
|
409
|
+
},
|
|
410
|
+
stop: function () {
|
|
411
|
+
this.done = !0;
|
|
412
|
+
var rootRecord = this.tryEntries[0].completion;
|
|
413
|
+
if ("throw" === rootRecord.type) throw rootRecord.arg;
|
|
414
|
+
return this.rval;
|
|
415
|
+
},
|
|
416
|
+
dispatchException: function (exception) {
|
|
417
|
+
if (this.done) throw exception;
|
|
418
|
+
var context = this;
|
|
419
|
+
|
|
420
|
+
function handle(loc, caught) {
|
|
421
|
+
return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught;
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
for (var i = this.tryEntries.length - 1; i >= 0; --i) {
|
|
425
|
+
var entry = this.tryEntries[i],
|
|
426
|
+
record = entry.completion;
|
|
427
|
+
if ("root" === entry.tryLoc) return handle("end");
|
|
428
|
+
|
|
429
|
+
if (entry.tryLoc <= this.prev) {
|
|
430
|
+
var hasCatch = hasOwn.call(entry, "catchLoc"),
|
|
431
|
+
hasFinally = hasOwn.call(entry, "finallyLoc");
|
|
432
|
+
|
|
433
|
+
if (hasCatch && hasFinally) {
|
|
434
|
+
if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);
|
|
435
|
+
if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);
|
|
436
|
+
} else if (hasCatch) {
|
|
437
|
+
if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);
|
|
438
|
+
} else {
|
|
439
|
+
if (!hasFinally) throw new Error("try statement without catch or finally");
|
|
440
|
+
if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
},
|
|
445
|
+
abrupt: function (type, arg) {
|
|
446
|
+
for (var i = this.tryEntries.length - 1; i >= 0; --i) {
|
|
447
|
+
var entry = this.tryEntries[i];
|
|
448
|
+
|
|
449
|
+
if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) {
|
|
450
|
+
var finallyEntry = entry;
|
|
451
|
+
break;
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);
|
|
456
|
+
var record = finallyEntry ? finallyEntry.completion : {};
|
|
457
|
+
return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);
|
|
458
|
+
},
|
|
459
|
+
complete: function (record, afterLoc) {
|
|
460
|
+
if ("throw" === record.type) throw record.arg;
|
|
461
|
+
return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;
|
|
462
|
+
},
|
|
463
|
+
finish: function (finallyLoc) {
|
|
464
|
+
for (var i = this.tryEntries.length - 1; i >= 0; --i) {
|
|
465
|
+
var entry = this.tryEntries[i];
|
|
466
|
+
if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;
|
|
467
|
+
}
|
|
468
|
+
},
|
|
469
|
+
catch: function (tryLoc) {
|
|
470
|
+
for (var i = this.tryEntries.length - 1; i >= 0; --i) {
|
|
471
|
+
var entry = this.tryEntries[i];
|
|
472
|
+
|
|
473
|
+
if (entry.tryLoc === tryLoc) {
|
|
474
|
+
var record = entry.completion;
|
|
475
|
+
|
|
476
|
+
if ("throw" === record.type) {
|
|
477
|
+
var thrown = record.arg;
|
|
478
|
+
resetTryEntry(entry);
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
return thrown;
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
throw new Error("illegal catch attempt");
|
|
486
|
+
},
|
|
487
|
+
delegateYield: function (iterable, resultName, nextLoc) {
|
|
488
|
+
return this.delegate = {
|
|
489
|
+
iterator: values(iterable),
|
|
490
|
+
resultName: resultName,
|
|
491
|
+
nextLoc: nextLoc
|
|
492
|
+
}, "next" === this.method && (this.arg = undefined), ContinueSentinel;
|
|
493
|
+
}
|
|
494
|
+
}, exports;
|
|
495
|
+
}
|
|
496
|
+
|
|
153
497
|
function _typeof(obj) {
|
|
154
498
|
"@babel/helpers - typeof";
|
|
155
499
|
|
|
@@ -255,18 +599,17 @@ function _inherits(subClass, superClass) {
|
|
|
255
599
|
}
|
|
256
600
|
|
|
257
601
|
function _getPrototypeOf(o) {
|
|
258
|
-
_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
|
|
602
|
+
_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {
|
|
259
603
|
return o.__proto__ || Object.getPrototypeOf(o);
|
|
260
604
|
};
|
|
261
605
|
return _getPrototypeOf(o);
|
|
262
606
|
}
|
|
263
607
|
|
|
264
608
|
function _setPrototypeOf(o, p) {
|
|
265
|
-
_setPrototypeOf = Object.setPrototypeOf
|
|
609
|
+
_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {
|
|
266
610
|
o.__proto__ = p;
|
|
267
611
|
return o;
|
|
268
612
|
};
|
|
269
|
-
|
|
270
613
|
return _setPrototypeOf(o, p);
|
|
271
614
|
}
|
|
272
615
|
|
|
@@ -593,7 +936,7 @@ function languageCodeAdapter(languageCode) {
|
|
|
593
936
|
return adaptedCode;
|
|
594
937
|
}
|
|
595
938
|
|
|
596
|
-
|
|
939
|
+
/******************************************************************************
|
|
597
940
|
Copyright (c) Microsoft Corporation.
|
|
598
941
|
|
|
599
942
|
Permission to use, copy, modify, and/or distribute this software for any
|
|
@@ -674,8 +1017,8 @@ var Portal = function (_Component) {
|
|
|
674
1017
|
return Portal;
|
|
675
1018
|
}(React.Component);
|
|
676
1019
|
|
|
677
|
-
var css_248z$
|
|
678
|
-
styleInject(css_248z$
|
|
1020
|
+
var css_248z$i = ".q-popover {\n position: absolute;\n z-index: 1000;\n padding: 4px 0;\n font-size: 14px;\n line-height: 20px;\n color: #32363A;\n fill: #333;\n list-style: none;\n min-width: 160px;\n max-width: 500px;\n min-height: 10px;\n max-height: 99%;\n background: #fff;\n border-radius: 4px;\n box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 0px 10px 1px rgba(0, 0, 0, 0.14), 0 0px 10px 2px rgba(0, 0, 0, 0.12);\n z-index: 9000; }\n\nbody .q-popover {\n max-height: 50vh;\n overflow-y: scroll;\n max-width: 30vw; }\n";
|
|
1021
|
+
styleInject(css_248z$i);
|
|
679
1022
|
|
|
680
1023
|
var globalClickRegistry = new EventRegistry();
|
|
681
1024
|
var DEFAULT_PLACEMENT = 'bottom-start';
|
|
@@ -789,10 +1132,10 @@ function initGlobalListener() {
|
|
|
789
1132
|
});
|
|
790
1133
|
}
|
|
791
1134
|
|
|
792
|
-
var css_248z$
|
|
793
|
-
styleInject(css_248z$
|
|
1135
|
+
var css_248z$h = "div[role=\"menu\"] .piped-text-search-input-container {\n padding: 5px 10px; }\n\n.piped-text-search-input {\n padding: 10px 12px;\n user-select: none;\n box-sizing: border-box;\n overflow-x: hidden;\n text-overflow: ellipsis;\n align-content: center;\n padding: 4px 8px 8px; }\n .piped-text-search-input input.q-plugin-popover-input {\n box-sizing: border-box;\n height: 36px;\n padding: 7px 9px; }\n\n.piped-text-menu-empty-anchor {\n /* the margin-right hack was not in harmony with tao.\n now, the empty-anchor is truly empty */ }\n\n.piped-text-submenu-item-container {\n position: relative; }\n .piped-text-submenu-item-container .piped-text-menu .piped-text-submenu-anchor {\n position: absolute;\n z-index: -1;\n bottom: 0;\n top: 0;\n left: 0;\n right: 0;\n min-width: 100%; }\n\n.piped-text-menu-item, .piped-text-submenu-item {\n padding: 10px 12px;\n user-select: none;\n box-sizing: border-box;\n overflow-x: hidden;\n text-overflow: ellipsis; }\n .piped-text-menu-item:not(.piped-text-header):not(.piped-text-disabled):hover, .piped-text-submenu-item:not(.piped-text-header):not(.piped-text-disabled):hover {\n cursor: pointer;\n background: RGBA(50, 54, 58, 0.08); }\n .piped-text-menu-item.piped-text-header, .piped-text-submenu-item.piped-text-header {\n font-size: 12px;\n line-height: 16px;\n font-weight: 700;\n padding: 12px; }\n .piped-text-menu-item.piped-text-disabled:not(.piped-text-header), .piped-text-submenu-item.piped-text-disabled:not(.piped-text-header) {\n color: RGB(116, 119, 122); }\n\n.piped-text-submenu-item {\n padding-right: 24px; }\n\n.piped-text-information-message {\n padding: 10px 12px;\n user-select: none;\n box-sizing: border-box;\n overflow-x: hidden;\n text-overflow: ellipsis;\n color: #74777A;\n text-align: center;\n white-space: pre-line; }\n\n.piped-text-loading-spinner {\n width: fit-content;\n margin: 0 auto; }\n\n.piped-text-error-container {\n color: #BB0000; }\n .piped-text-error-container .piped-text-error-icon {\n padding: 8px 0; }\n .piped-text-error-container .piped-text-error-icon svg {\n fill: #BB0000;\n display: block;\n margin: 0 auto; }\n .piped-text-error-container .piped-text-error-text {\n text-align: center;\n white-space: pre-line;\n padding: 0 12px 8px; }\n\n.embedded-data-menu {\n padding: 10px 12px;\n user-select: none;\n box-sizing: border-box;\n overflow-x: hidden;\n text-overflow: ellipsis;\n align-content: center;\n padding: 4px 8px 8px; }\n .embedded-data-menu input.q-plugin-popover-input {\n box-sizing: border-box;\n height: 36px;\n padding: 7px 9px; }\n";
|
|
1136
|
+
styleInject(css_248z$h);
|
|
794
1137
|
|
|
795
|
-
var EmbeddedDataMenu = React__default["default"].forwardRef(function (props, ref) {
|
|
1138
|
+
var EmbeddedDataMenu = React__default["default"].forwardRef(function EmbeddedDataMeny(props, ref) {
|
|
796
1139
|
var _useState = React.useState(''),
|
|
797
1140
|
_useState2 = _slicedToArray(_useState, 2),
|
|
798
1141
|
inputValue = _useState2[0],
|
|
@@ -860,7 +1203,8 @@ var EmbeddedDataMenu = React__default["default"].forwardRef(function (props, ref
|
|
|
860
1203
|
ignoreClickSelector: ignoreClickSelector,
|
|
861
1204
|
placement: props.placement || 'right-start'
|
|
862
1205
|
}, React__default["default"].createElement("div", {
|
|
863
|
-
className: "embedded-data-menu"
|
|
1206
|
+
className: "embedded-data-menu",
|
|
1207
|
+
ref: ref
|
|
864
1208
|
}, React__default["default"].createElement("div", null, React__default["default"].createElement(uiReact.InputGroup, null, React__default["default"].createElement(uiReact.Input, {
|
|
865
1209
|
onChange: handleInputChange,
|
|
866
1210
|
invalid: isInputInvalid,
|
|
@@ -875,8 +1219,151 @@ var EmbeddedDataMenu = React__default["default"].forwardRef(function (props, ref
|
|
|
875
1219
|
}))))));
|
|
876
1220
|
});
|
|
877
1221
|
|
|
878
|
-
|
|
879
|
-
|
|
1222
|
+
/**
|
|
1223
|
+
* Copied from: https://gitlab-app.eng.qops.net/cfe/ui/-/blob/master/packages/ui-react/src/hooks/useId/useId.js
|
|
1224
|
+
* Returns an ID that is stable across renders.
|
|
1225
|
+
* @param {string=} defaultExternalId - ID to be used instead of a randomly generated ID. This ID is only considered on mount, so changes to this ID are ignored.
|
|
1226
|
+
* @returns {String} If an external ID is passed in, the external ID. Otherwise, a randomly generated ID.
|
|
1227
|
+
*/
|
|
1228
|
+
function useId(defaultExternalId) {
|
|
1229
|
+
var currentId = React.useState(function () {
|
|
1230
|
+
return defaultExternalId !== null && defaultExternalId !== void 0 ? defaultExternalId : uuid.v4();
|
|
1231
|
+
})[0];
|
|
1232
|
+
return currentId;
|
|
1233
|
+
}
|
|
1234
|
+
|
|
1235
|
+
var css_248z$g = "";
|
|
1236
|
+
styleInject(css_248z$g);
|
|
1237
|
+
|
|
1238
|
+
var css_248z$f = "";
|
|
1239
|
+
styleInject(css_248z$f);
|
|
1240
|
+
|
|
1241
|
+
// const WrappedPipedTextMenu = PipedTextMenu as PipedTextMenuType;
|
|
1242
|
+
var PipedTextSubmenuItem = React__default["default"].forwardRef(function PipedTextSubmenuItem(props, ref) {
|
|
1243
|
+
var submenuAnchorRef = React.useRef(null);
|
|
1244
|
+
var submenuItemId = useId();
|
|
1245
|
+
var menuItem = props.menuItem;
|
|
1246
|
+
return (React__default["default"].createElement("div", { "data-testid": "piped-text-submenu", className: "piped-text-submenu-item-container" },
|
|
1247
|
+
menuItem.show && (React__default["default"].createElement(PipedTextMenu, { "aria-labelledby": submenuItemId,
|
|
1248
|
+
//@ts-ignore
|
|
1249
|
+
items: menuItem.submenu.items, show: menuItem.show, placement: "right-start", onClose: function () {
|
|
1250
|
+
menuItem.show = false;
|
|
1251
|
+
}, allowCustom: menuItem.submenu.allowCustom, customScheme: menuItem.submenu.customScheme, customInputMessage: menuItem.submenu.customInputMessage, searchPlaceholder: menuItem.submenu.searchPlaceholder, errorText: menuItem.submenu.errorText, onSelected: menuItemClicked, anchor: function (ref) { return (React__default["default"].createElement("div", { ref: ref, className: "piped-text-submenu-anchor" })); }, anchorRef: submenuAnchorRef })),
|
|
1252
|
+
React__default["default"].createElement("div", {
|
|
1253
|
+
// aria-haspopup="menu"
|
|
1254
|
+
// id={subMenuItemId}
|
|
1255
|
+
className: "piped-text-submenu-item",
|
|
1256
|
+
// role="menuitem"
|
|
1257
|
+
onMouseEnter: function () { return submenuHovered(menuItem); }, ref: submenuAnchorRef },
|
|
1258
|
+
React__default["default"].createElement("div", { className: "label-text" }, menuItem.label),
|
|
1259
|
+
React__default["default"].createElement("div", { className: "piped-text-icon" },
|
|
1260
|
+
React__default["default"].createElement(uiReact.Icon, { type: uiReact.IconTypes.ChevronRight, size: "medium" })))));
|
|
1261
|
+
function menuItemClicked(menuItem) {
|
|
1262
|
+
props.onMenuItemClick(menuItem);
|
|
1263
|
+
}
|
|
1264
|
+
function submenuHovered(menuItem) {
|
|
1265
|
+
props.onSubmenuHover(menuItem);
|
|
1266
|
+
}
|
|
1267
|
+
});
|
|
1268
|
+
|
|
1269
|
+
var EMBEDDED_DATA_LOCATOR$1 = 'embeddedData';
|
|
1270
|
+
var PipedTextMenuItem = React__default["default"].forwardRef(function PipedTextMenuItem(props, ref) {
|
|
1271
|
+
var submenuId = useId();
|
|
1272
|
+
return (React__default["default"].createElement("div", { className: 'piped-text-menu-item-container', ref: ref }, getMenuItemContent(props.menuItem)));
|
|
1273
|
+
function getMenuItemContent(menuItem) {
|
|
1274
|
+
var innerContent, menuItemEl;
|
|
1275
|
+
var menuItemHeaderClass, menuItemDisabledClass, menuItemClassName;
|
|
1276
|
+
var isSubmenu = checkSubmenuMenuItemItem$1(menuItem);
|
|
1277
|
+
var isDecorated = checkDecoratedMenuItem$1(menuItem);
|
|
1278
|
+
var isEmbeddedDataMenuItem = checkEmbeddedDataMenuItem$1(menuItem);
|
|
1279
|
+
var isFocusable = checkMenuItemFocusable$1(menuItem);
|
|
1280
|
+
var role = isSubmenu
|
|
1281
|
+
? 'submenu'
|
|
1282
|
+
: 'menuitemradio';
|
|
1283
|
+
if (isSubmenu) {
|
|
1284
|
+
innerContent = (React__default["default"].createElement(PipedTextSubmenuItem, { key: menuItem.key, menuItem: menuItem, onSubmenuHover: handleSubmenuHover, onMenuItemClick: handleMenuItemClick }));
|
|
1285
|
+
}
|
|
1286
|
+
else if (isDecorated) {
|
|
1287
|
+
menuItemHeaderClass = (menuItem.header === true)
|
|
1288
|
+
? 'piped-text-header'
|
|
1289
|
+
: '';
|
|
1290
|
+
menuItemDisabledClass = (menuItem.disabled === true)
|
|
1291
|
+
? 'piped-text-disabled'
|
|
1292
|
+
: '';
|
|
1293
|
+
menuItemClassName = "piped-text-menu-item ".concat(menuItemHeaderClass, " ").concat(menuItemDisabledClass);
|
|
1294
|
+
innerContent = (React__default["default"].createElement("div", { className: menuItemClassName }, menuItem.label));
|
|
1295
|
+
}
|
|
1296
|
+
else if (isEmbeddedDataMenuItem) {
|
|
1297
|
+
innerContent = (React__default["default"].createElement("div", { onClick: function () {
|
|
1298
|
+
handleEmbeddedDataItemClick(menuItem);
|
|
1299
|
+
}, onMouseEnter: function () { return handleMenuItemHovered(menuItem); } },
|
|
1300
|
+
React__default["default"].createElement(EmbeddedDataMenu
|
|
1301
|
+
//@ts-ignore
|
|
1302
|
+
, {
|
|
1303
|
+
//@ts-ignore
|
|
1304
|
+
show: menuItem.show, onSelect: handleEmbeddedDataSelect, anchor: function (ref) { return (React__default["default"].createElement("div", { ref: ref, className: "embedded-data-menu-anchor" })); } }),
|
|
1305
|
+
React__default["default"].createElement("div", { className: "piped-text-menu-item" }, menuItem.label)));
|
|
1306
|
+
}
|
|
1307
|
+
else {
|
|
1308
|
+
innerContent = (React__default["default"].createElement("div", { onClick: function () { return handleMenuItemClick(menuItem); }, onMouseEnter: function () { return handleMenuItemHovered(menuItem); } },
|
|
1309
|
+
React__default["default"].createElement("div", { className: "piped-text-menu-item" }, menuItem.label)));
|
|
1310
|
+
}
|
|
1311
|
+
menuItemEl = (React__default["default"].createElement("div", { "aria-haspopup": isSubmenu ? 'menu' : undefined, id: isSubmenu ? submenuId : undefined, role: role, className: "piped-text-menu-item-content", tabIndex: isFocusable ? -1 : undefined }, innerContent));
|
|
1312
|
+
return menuItemEl;
|
|
1313
|
+
}
|
|
1314
|
+
function handleEmbeddedDataItemClick(menuItem) {
|
|
1315
|
+
props.onEmbeddedDataItemClick(menuItem);
|
|
1316
|
+
}
|
|
1317
|
+
function handleMenuItemClick(menuItem) {
|
|
1318
|
+
props.onMenuItemClicked(menuItem);
|
|
1319
|
+
}
|
|
1320
|
+
function handleSubmenuHover(menuItem) {
|
|
1321
|
+
props.onSubmenuHover(menuItem);
|
|
1322
|
+
}
|
|
1323
|
+
function handleMenuItemHovered(menuItem) {
|
|
1324
|
+
props.onMenuItemHover(menuItem);
|
|
1325
|
+
}
|
|
1326
|
+
function handleEmbeddedDataSelect(edLocator) {
|
|
1327
|
+
var edMenuItem;
|
|
1328
|
+
/* Instead of returning the menuItem, we'll construct one that matches the interface.
|
|
1329
|
+
There is no mappable "menuItem" here, when ED values are added they can be different
|
|
1330
|
+
potentially every time, so we trigger events generically ad hoc
|
|
1331
|
+
*/
|
|
1332
|
+
edMenuItem = {
|
|
1333
|
+
value: {
|
|
1334
|
+
locator: edLocator,
|
|
1335
|
+
},
|
|
1336
|
+
};
|
|
1337
|
+
props.onMenuItemClicked(edMenuItem);
|
|
1338
|
+
}
|
|
1339
|
+
});
|
|
1340
|
+
function checkEmbeddedDataMenuItem$1(menuItem) {
|
|
1341
|
+
return menuItem.value === EMBEDDED_DATA_LOCATOR$1;
|
|
1342
|
+
}
|
|
1343
|
+
function checkDecoratedMenuItem$1(menuItem) {
|
|
1344
|
+
return (menuItem.header === true)
|
|
1345
|
+
|| (menuItem.disabled === true);
|
|
1346
|
+
}
|
|
1347
|
+
function checkSubmenuMenuItemItem$1(menuItem) {
|
|
1348
|
+
return !!menuItem.hasSubmenu;
|
|
1349
|
+
}
|
|
1350
|
+
function checkMenuItemFocusable$1(menuItem) {
|
|
1351
|
+
var isEmbeddedData, isSubmenu, isDefaultMenuItem;
|
|
1352
|
+
isEmbeddedData = checkEmbeddedDataMenuItem$1(menuItem);
|
|
1353
|
+
isSubmenu = checkSubmenuMenuItemItem$1(menuItem);
|
|
1354
|
+
isDefaultMenuItem = checkDefaultMenuItem$1(menuItem);
|
|
1355
|
+
return (isEmbeddedData
|
|
1356
|
+
|| isSubmenu
|
|
1357
|
+
|| isDefaultMenuItem);
|
|
1358
|
+
}
|
|
1359
|
+
function checkDefaultMenuItem$1(menuItem) {
|
|
1360
|
+
return !(checkEmbeddedDataMenuItem$1(menuItem)
|
|
1361
|
+
|| checkDecoratedMenuItem$1(menuItem)
|
|
1362
|
+
|| checkSubmenuMenuItemItem$1(menuItem));
|
|
1363
|
+
}
|
|
1364
|
+
|
|
1365
|
+
var css_248z$e = "div[role=\"menu\"] .piped-text-search-input-container {\n padding: 5px 10px; }\n\n.piped-text-search-input {\n padding: 10px 12px;\n user-select: none;\n box-sizing: border-box;\n overflow-x: hidden;\n text-overflow: ellipsis;\n align-content: center;\n padding: 4px 8px 8px; }\n .piped-text-search-input input.q-plugin-popover-input {\n box-sizing: border-box;\n height: 36px;\n padding: 7px 9px; }\n\n.piped-text-menu-empty-anchor {\n /* the margin-right hack was not in harmony with tao.\n now, the empty-anchor is truly empty */ }\n\n.piped-text-submenu-item-container {\n position: relative; }\n .piped-text-submenu-item-container .piped-text-menu .piped-text-submenu-anchor {\n position: absolute;\n z-index: -1;\n bottom: 0;\n top: 0;\n left: 0;\n right: 0;\n min-width: 100%; }\n\n.piped-text-menu-item, .piped-text-submenu-item {\n padding: 10px 12px;\n user-select: none;\n box-sizing: border-box;\n overflow-x: hidden;\n text-overflow: ellipsis; }\n .piped-text-menu-item:not(.piped-text-header):not(.piped-text-disabled):hover, .piped-text-submenu-item:not(.piped-text-header):not(.piped-text-disabled):hover {\n cursor: pointer;\n background: RGBA(50, 54, 58, 0.08); }\n .piped-text-menu-item.piped-text-header, .piped-text-submenu-item.piped-text-header {\n font-size: 12px;\n line-height: 16px;\n font-weight: 700;\n padding: 12px; }\n .piped-text-menu-item.piped-text-disabled:not(.piped-text-header), .piped-text-submenu-item.piped-text-disabled:not(.piped-text-header) {\n color: RGB(116, 119, 122); }\n\n.piped-text-submenu-item {\n padding-right: 24px; }\n\n.piped-text-information-message {\n padding: 10px 12px;\n user-select: none;\n box-sizing: border-box;\n overflow-x: hidden;\n text-overflow: ellipsis;\n color: #74777A;\n text-align: center;\n white-space: pre-line; }\n\n.piped-text-loading-spinner {\n width: fit-content;\n margin: 0 auto; }\n\n.piped-text-error-container {\n color: #BB0000; }\n .piped-text-error-container .piped-text-error-icon {\n padding: 8px 0; }\n .piped-text-error-container .piped-text-error-icon svg {\n fill: #BB0000;\n display: block;\n margin: 0 auto; }\n .piped-text-error-container .piped-text-error-text {\n text-align: center;\n white-space: pre-line;\n padding: 0 12px 8px; }\n";
|
|
1366
|
+
styleInject(css_248z$e);
|
|
880
1367
|
|
|
881
1368
|
var EMBEDDED_DATA_LOCATOR = 'embeddedData';
|
|
882
1369
|
var PipedTextMenu = React__default["default"].forwardRef(function PipedTextMenu(props, ref) {
|
|
@@ -909,31 +1396,64 @@ var PipedTextMenu = React__default["default"].forwardRef(function PipedTextMenu(
|
|
|
909
1396
|
setSearchValue = _useState8[1];
|
|
910
1397
|
|
|
911
1398
|
var _useState9 = React.useState(undefined),
|
|
912
|
-
_useState10 = _slicedToArray(_useState9, 2)
|
|
913
|
-
|
|
914
|
-
setIsSubmenu = _useState10[1];
|
|
1399
|
+
_useState10 = _slicedToArray(_useState9, 2);
|
|
1400
|
+
_useState10[0];
|
|
1401
|
+
var setIsSubmenu = _useState10[1];
|
|
1402
|
+
|
|
1403
|
+
var _useState11 = React.useState([]),
|
|
1404
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
1405
|
+
itemsToRender = _useState12[0],
|
|
1406
|
+
setItemsToRender = _useState12[1];
|
|
1407
|
+
|
|
1408
|
+
var externalAriaLabelledBy = props['aria-labelledby'];
|
|
1409
|
+
var popoverAriaLabelledBy = useId();
|
|
1410
|
+
|
|
1411
|
+
var _useState13 = React.useState([]),
|
|
1412
|
+
_useState14 = _slicedToArray(_useState13, 2),
|
|
1413
|
+
menuChildren = _useState14[0],
|
|
1414
|
+
setMenuChildren = _useState14[1];
|
|
1415
|
+
|
|
1416
|
+
var _useState15 = React.useState(-1),
|
|
1417
|
+
_useState16 = _slicedToArray(_useState15, 2),
|
|
1418
|
+
higlightedItemIndex = _useState16[0],
|
|
1419
|
+
setHighlightedItemIndex = _useState16[1];
|
|
1420
|
+
|
|
1421
|
+
var _useState17 = React.useState([]),
|
|
1422
|
+
_useState18 = _slicedToArray(_useState17, 2);
|
|
1423
|
+
_useState18[0];
|
|
1424
|
+
var setFocusMenuItems = _useState18[1];
|
|
915
1425
|
|
|
916
1426
|
var onClose = props.onClose || function () {
|
|
917
1427
|
return undefined;
|
|
918
1428
|
};
|
|
919
1429
|
|
|
920
|
-
var
|
|
921
|
-
|
|
922
|
-
popoverEl =
|
|
923
|
-
setPopoverEl =
|
|
1430
|
+
var _useState19 = React.useState(null),
|
|
1431
|
+
_useState20 = _slicedToArray(_useState19, 2),
|
|
1432
|
+
popoverEl = _useState20[0],
|
|
1433
|
+
setPopoverEl = _useState20[1];
|
|
924
1434
|
|
|
925
1435
|
var popoverRefCb = React.useCallback(function (el) {
|
|
926
1436
|
setPopoverEl(el);
|
|
927
1437
|
}, []);
|
|
928
1438
|
|
|
929
|
-
var
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
setSearchBoxEl =
|
|
1439
|
+
var _useState21 = React.useState(null),
|
|
1440
|
+
_useState22 = _slicedToArray(_useState21, 2);
|
|
1441
|
+
_useState22[0];
|
|
1442
|
+
var setSearchBoxEl = _useState22[1];
|
|
933
1443
|
|
|
934
1444
|
var searchBoxRefCb = React.useCallback(function (el) {
|
|
935
1445
|
setSearchBoxEl(el);
|
|
936
1446
|
}, []);
|
|
1447
|
+
React.useEffect(function () {
|
|
1448
|
+
var nextMenuChildren;
|
|
1449
|
+
nextMenuChildren = getPipedTextMenuItems(itemsToRender);
|
|
1450
|
+
setMenuChildren(nextMenuChildren);
|
|
1451
|
+
}, [itemsToRender]);
|
|
1452
|
+
React.useEffect(function () {
|
|
1453
|
+
var nextItemsToRender;
|
|
1454
|
+
nextItemsToRender = (menuItems || []).filter(matchesSearch);
|
|
1455
|
+
setItemsToRender(nextItemsToRender);
|
|
1456
|
+
}, [searchValue, menuItems]);
|
|
937
1457
|
React.useEffect(function () {
|
|
938
1458
|
var anchorRefEl = _get__default["default"](props, 'anchorRef.current');
|
|
939
1459
|
|
|
@@ -942,17 +1462,11 @@ var PipedTextMenu = React__default["default"].forwardRef(function PipedTextMenu(
|
|
|
942
1462
|
var nextIsSubmenu = anchorRefElRole === 'menuitem';
|
|
943
1463
|
setIsSubmenu(nextIsSubmenu);
|
|
944
1464
|
}
|
|
945
|
-
|
|
946
|
-
if (isSubmenu === true) ; else if (isSubmenu === false) {
|
|
947
|
-
if (popoverEl !== null) {
|
|
948
|
-
popoverEl.focus();
|
|
949
|
-
}
|
|
950
|
-
}
|
|
951
|
-
}, [popoverEl, searchBoxEl, props.anchorRef, isSubmenu]);
|
|
1465
|
+
}, [popoverEl]);
|
|
952
1466
|
React.useEffect(function () {
|
|
953
|
-
_asyncToGenerator(
|
|
1467
|
+
_asyncToGenerator(_regeneratorRuntime().mark(function _callee() {
|
|
954
1468
|
var newMenuItems;
|
|
955
|
-
return
|
|
1469
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
956
1470
|
while (1) {
|
|
957
1471
|
switch (_context.prev = _context.next) {
|
|
958
1472
|
case 0:
|
|
@@ -1053,7 +1567,7 @@ var PipedTextMenu = React__default["default"].forwardRef(function PipedTextMenu(
|
|
|
1053
1567
|
return JSON.stringify(item).toLowerCase().includes(searchVal);
|
|
1054
1568
|
};
|
|
1055
1569
|
|
|
1056
|
-
var menuItemClicked = function menuItemClicked(menuItem
|
|
1570
|
+
var menuItemClicked = function menuItemClicked(menuItem) {
|
|
1057
1571
|
if (!menuItem.disabled) {
|
|
1058
1572
|
props.onSelected(menuItem);
|
|
1059
1573
|
}
|
|
@@ -1066,118 +1580,47 @@ var PipedTextMenu = React__default["default"].forwardRef(function PipedTextMenu(
|
|
|
1066
1580
|
reRenderMenus();
|
|
1067
1581
|
};
|
|
1068
1582
|
|
|
1069
|
-
var handleEmbeddedDataSelect = function handleEmbeddedDataSelect(edLocator) {
|
|
1070
|
-
var edMenuItem;
|
|
1071
|
-
edMenuItem = {
|
|
1072
|
-
value: {
|
|
1073
|
-
locator: edLocator
|
|
1074
|
-
}
|
|
1075
|
-
};
|
|
1076
|
-
props.onSelected(edMenuItem);
|
|
1077
|
-
};
|
|
1078
|
-
|
|
1079
|
-
var SubmenuItem = function SubmenuItem(props) {
|
|
1080
|
-
var submenuAnchorRef = React.useRef(null);
|
|
1081
|
-
var menuItem = props.menuItem;
|
|
1082
|
-
return React__default["default"].createElement("div", {
|
|
1083
|
-
"data-testid": "piped-text-submenu",
|
|
1084
|
-
className: "piped-text-submenu-item-container"
|
|
1085
|
-
}, menuItem.show && React__default["default"].createElement(PipedTextMenu, {
|
|
1086
|
-
items: menuItem.submenu.items,
|
|
1087
|
-
show: menuItem.show,
|
|
1088
|
-
placement: "right-start",
|
|
1089
|
-
onClose: function onClose() {
|
|
1090
|
-
menuItem.show = false;
|
|
1091
|
-
},
|
|
1092
|
-
allowCustom: menuItem.submenu.allowCustom,
|
|
1093
|
-
customScheme: menuItem.submenu.customScheme,
|
|
1094
|
-
customInputMessage: menuItem.submenu.customInputMessage,
|
|
1095
|
-
searchPlaceholder: menuItem.submenu.searchPlaceholder,
|
|
1096
|
-
errorText: menuItem.submenu.errorText,
|
|
1097
|
-
onSelected: menuItemClicked,
|
|
1098
|
-
anchor: function anchor(ref) {
|
|
1099
|
-
return React__default["default"].createElement("div", {
|
|
1100
|
-
ref: ref,
|
|
1101
|
-
className: "piped-text-submenu-anchor"
|
|
1102
|
-
});
|
|
1103
|
-
},
|
|
1104
|
-
anchorRef: submenuAnchorRef
|
|
1105
|
-
}), React__default["default"].createElement("div", {
|
|
1106
|
-
className: "piped-text-submenu-item",
|
|
1107
|
-
"aria-haspopup": "menu",
|
|
1108
|
-
role: "menuitem",
|
|
1109
|
-
onMouseEnter: function onMouseEnter($e) {
|
|
1110
|
-
return submenuHovered(menuItem);
|
|
1111
|
-
},
|
|
1112
|
-
ref: submenuAnchorRef
|
|
1113
|
-
}, React__default["default"].createElement("div", {
|
|
1114
|
-
className: "label-text"
|
|
1115
|
-
}, menuItem.label), React__default["default"].createElement("div", {
|
|
1116
|
-
className: "piped-text-icon"
|
|
1117
|
-
}, React__default["default"].createElement(uiReact.Icon, {
|
|
1118
|
-
type: uiReact.IconTypes.ChevronRight,
|
|
1119
|
-
size: "medium"
|
|
1120
|
-
}))));
|
|
1121
|
-
};
|
|
1122
|
-
|
|
1123
1583
|
var getPipedTextMenuItems = function getPipedTextMenuItems(menuItems) {
|
|
1584
|
+
var pipedTextMenuItems, nextFocusMenuItems;
|
|
1585
|
+
pipedTextMenuItems = [];
|
|
1586
|
+
nextFocusMenuItems = [];
|
|
1587
|
+
|
|
1124
1588
|
if (menuItems.length === 0 && props.allowCustom === true && props.customInputMessage) {
|
|
1125
1589
|
return React__default["default"].createElement("div", null, React__default["default"].createElement("div", {
|
|
1126
1590
|
className: "piped-text-information-message"
|
|
1127
1591
|
}, props.customInputMessage));
|
|
1128
1592
|
}
|
|
1129
1593
|
|
|
1130
|
-
|
|
1131
|
-
var
|
|
1594
|
+
pipedTextMenuItems = menuItems.map(function (menuItem) {
|
|
1595
|
+
var isFocusable, menuItemEl;
|
|
1596
|
+
var menuItemRef = React__default["default"].createRef();
|
|
1597
|
+
isFocusable = checkMenuItemFocusable(menuItem);
|
|
1598
|
+
menuItemEl = React__default["default"].createElement(PipedTextMenuItem, {
|
|
1599
|
+
key: menuItem.key,
|
|
1600
|
+
menuItem: menuItem,
|
|
1601
|
+
onSubmenuHover: function onSubmenuHover(menuItem) {
|
|
1602
|
+
submenuHovered(menuItem);
|
|
1603
|
+
},
|
|
1604
|
+
onMenuItemClicked: function onMenuItemClicked(menuItem) {
|
|
1605
|
+
menuItemClicked(menuItem);
|
|
1606
|
+
},
|
|
1607
|
+
onMenuItemHover: function onMenuItemHover(menuItem) {
|
|
1608
|
+
menuItemHovered();
|
|
1609
|
+
},
|
|
1610
|
+
onEmbeddedDataItemClick: function onEmbeddedDataItemClick(menuItem) {
|
|
1611
|
+
embeddedDataItemClicked(menuItem);
|
|
1612
|
+
},
|
|
1613
|
+
ref: menuItemRef
|
|
1614
|
+
});
|
|
1132
1615
|
|
|
1133
|
-
if (
|
|
1134
|
-
|
|
1135
|
-
key: menuItem.key,
|
|
1136
|
-
menuItem: menuItem
|
|
1137
|
-
});
|
|
1138
|
-
} else if (menuItem.header === true || menuItem.disabled === true) {
|
|
1139
|
-
menuItemHeaderClass = menuItem.header === true ? 'piped-text-header' : '';
|
|
1140
|
-
menuItemDisabledClass = menuItem.disabled === true ? 'piped-text-disabled' : '';
|
|
1141
|
-
menuItemClassName = "piped-text-menu-item ".concat(menuItemHeaderClass, " ").concat(menuItemDisabledClass);
|
|
1142
|
-
return React__default["default"].createElement("div", {
|
|
1143
|
-
key: menuItem.key,
|
|
1144
|
-
className: menuItemClassName
|
|
1145
|
-
}, menuItem.label);
|
|
1146
|
-
} else if (menuItem.value === EMBEDDED_DATA_LOCATOR) {
|
|
1147
|
-
return React__default["default"].createElement("div", {
|
|
1148
|
-
key: menuItem.key,
|
|
1149
|
-
onClick: function onClick($e) {
|
|
1150
|
-
return embeddedDataItemClicked(menuItem);
|
|
1151
|
-
},
|
|
1152
|
-
onMouseEnter: function onMouseEnter($e) {
|
|
1153
|
-
return menuItemHovered();
|
|
1154
|
-
}
|
|
1155
|
-
}, React__default["default"].createElement(EmbeddedDataMenu, {
|
|
1156
|
-
show: menuItem.show,
|
|
1157
|
-
onSelect: handleEmbeddedDataSelect,
|
|
1158
|
-
anchor: function anchor(ref) {
|
|
1159
|
-
return React__default["default"].createElement("div", {
|
|
1160
|
-
ref: ref,
|
|
1161
|
-
className: "embedded-data-menu-anchor"
|
|
1162
|
-
});
|
|
1163
|
-
}
|
|
1164
|
-
}), React__default["default"].createElement("div", {
|
|
1165
|
-
className: "piped-text-menu-item"
|
|
1166
|
-
}, menuItem.label));
|
|
1167
|
-
} else {
|
|
1168
|
-
return React__default["default"].createElement("div", {
|
|
1169
|
-
key: menuItem.key,
|
|
1170
|
-
onMouseEnter: function onMouseEnter($e) {
|
|
1171
|
-
return menuItemHovered();
|
|
1172
|
-
},
|
|
1173
|
-
onClick: function onClick($e) {
|
|
1174
|
-
return menuItemClicked(menuItem);
|
|
1175
|
-
}
|
|
1176
|
-
}, React__default["default"].createElement("div", {
|
|
1177
|
-
className: "piped-text-menu-item"
|
|
1178
|
-
}, menuItem.label));
|
|
1616
|
+
if (isFocusable) {
|
|
1617
|
+
nextFocusMenuItems.push(menuItemEl);
|
|
1179
1618
|
}
|
|
1619
|
+
|
|
1620
|
+
return menuItemEl;
|
|
1180
1621
|
});
|
|
1622
|
+
setFocusMenuItems(nextFocusMenuItems);
|
|
1623
|
+
return pipedTextMenuItems;
|
|
1181
1624
|
};
|
|
1182
1625
|
|
|
1183
1626
|
var handleSearchSubmit = function handleSearchSubmit(e) {
|
|
@@ -1230,7 +1673,6 @@ var PipedTextMenu = React__default["default"].forwardRef(function PipedTextMenu(
|
|
|
1230
1673
|
if (isLoadError) {
|
|
1231
1674
|
return getLoadError();
|
|
1232
1675
|
} else {
|
|
1233
|
-
var itemsToRender = (menuItems || []).filter(matchesSearch);
|
|
1234
1676
|
return React__default["default"].createElement("div", {
|
|
1235
1677
|
className: "piped-text-popover-menu"
|
|
1236
1678
|
}, React__default["default"].createElement("div", {
|
|
@@ -1250,7 +1692,7 @@ var PipedTextMenu = React__default["default"].forwardRef(function PipedTextMenu(
|
|
|
1250
1692
|
return handleSearchInputClick($e);
|
|
1251
1693
|
},
|
|
1252
1694
|
ref: searchBoxRefCb
|
|
1253
|
-
}))), menuItems === undefined ? getLoadingSpinner() :
|
|
1695
|
+
}))), menuItems === undefined ? getLoadingSpinner() : menuChildren);
|
|
1254
1696
|
}
|
|
1255
1697
|
};
|
|
1256
1698
|
|
|
@@ -1263,20 +1705,35 @@ var PipedTextMenu = React__default["default"].forwardRef(function PipedTextMenu(
|
|
|
1263
1705
|
anchor: props.anchor,
|
|
1264
1706
|
ignoreClickSelector: props.ignoreClickSelector
|
|
1265
1707
|
}, React__default["default"].createElement("div", {
|
|
1708
|
+
id: popoverAriaLabelledBy,
|
|
1709
|
+
"aria-labelledby": externalAriaLabelledBy,
|
|
1710
|
+
role: "menu",
|
|
1266
1711
|
className: "piped-text-popover-container",
|
|
1267
1712
|
ref: popoverRefCb,
|
|
1268
1713
|
onFocus: function onFocus($e) {
|
|
1269
1714
|
return handleFocus($e);
|
|
1270
1715
|
},
|
|
1716
|
+
onKeyDown: function onKeyDown($e) {
|
|
1717
|
+
return handleKeyDown($e);
|
|
1718
|
+
},
|
|
1271
1719
|
tabIndex: props.tabIndex !== undefined ? props.tabIndex : -1
|
|
1272
1720
|
}, getMenuContent()), React__default["default"].createElement(OptionsPlaceholder, {
|
|
1273
1721
|
optionsRef: optionsRef
|
|
1274
1722
|
})));
|
|
1275
1723
|
|
|
1724
|
+
function handleKeyDown(evt) {
|
|
1725
|
+
var nextFocusElIdx;
|
|
1726
|
+
|
|
1727
|
+
if (evt.key === 'ArrowDown') {
|
|
1728
|
+
if (higlightedItemIndex < menuChildren.length) {
|
|
1729
|
+
nextFocusElIdx = higlightedItemIndex + 1;
|
|
1730
|
+
menuChildren[nextFocusElIdx];
|
|
1731
|
+
setHighlightedItemIndex(nextFocusElIdx);
|
|
1732
|
+
}
|
|
1733
|
+
} else if (evt.key === 'ArrowUp') ;
|
|
1734
|
+
}
|
|
1735
|
+
|
|
1276
1736
|
function handleFocus(evt) {
|
|
1277
|
-
if (!isSubmenu && searchBoxEl !== null) {
|
|
1278
|
-
searchBoxEl.focus();
|
|
1279
|
-
}
|
|
1280
1737
|
|
|
1281
1738
|
evt.stopPropagation();
|
|
1282
1739
|
}
|
|
@@ -1319,8 +1776,32 @@ function pipedTextDataAdapter(pipedTextData, recursed) {
|
|
|
1319
1776
|
return pipedTextData;
|
|
1320
1777
|
}
|
|
1321
1778
|
|
|
1322
|
-
|
|
1323
|
-
|
|
1779
|
+
function checkDefaultMenuItem(menuItem) {
|
|
1780
|
+
return !(checkEmbeddedDataMenuItem(menuItem) || checkDecoratedMenuItem(menuItem) || checkSubmenuMenuItemItem(menuItem));
|
|
1781
|
+
}
|
|
1782
|
+
|
|
1783
|
+
function checkEmbeddedDataMenuItem(menuItem) {
|
|
1784
|
+
return menuItem.value === EMBEDDED_DATA_LOCATOR;
|
|
1785
|
+
}
|
|
1786
|
+
|
|
1787
|
+
function checkDecoratedMenuItem(menuItem) {
|
|
1788
|
+
return menuItem.header === true || menuItem.disabled === true;
|
|
1789
|
+
}
|
|
1790
|
+
|
|
1791
|
+
function checkSubmenuMenuItemItem(menuItem) {
|
|
1792
|
+
return !!menuItem.hasSubmenu;
|
|
1793
|
+
}
|
|
1794
|
+
|
|
1795
|
+
function checkMenuItemFocusable(menuItem) {
|
|
1796
|
+
var isEmbeddedData, isSubmenu, isDefaultMenuItem;
|
|
1797
|
+
isEmbeddedData = checkEmbeddedDataMenuItem(menuItem);
|
|
1798
|
+
isSubmenu = checkSubmenuMenuItemItem(menuItem);
|
|
1799
|
+
isDefaultMenuItem = checkDefaultMenuItem(menuItem);
|
|
1800
|
+
return isEmbeddedData || isSubmenu || isDefaultMenuItem;
|
|
1801
|
+
}
|
|
1802
|
+
|
|
1803
|
+
var css_248z$d = ".piped-text-dropdown button[type=button].popover-toggle-button {\n min-width: 128px; }\n\n.piped-text-popover-container {\n padding: 0; }\n .piped-text-popover-container > * {\n min-height: 32px; }\n .piped-text-popover-container .piped-text-submenu-item .label-text, .piped-text-popover-container .piped-text-submenu-item > .piped-text-icon {\n display: inline-block;\n vertical-align: middle;\n overflow-wrap: break-word;\n word-wrap: break-word;\n -webkit-hyphens: auto;\n -ms-hyphens: auto;\n -moz-hyphens: auto;\n hyphens: auto; }\n .piped-text-popover-container .piped-text-submenu-item .piped-text-icon {\n display: inline-block;\n box-sizing: content-box;\n position: absolute;\n right: 0;\n max-width: 24px;\n min-width: 24px;\n max-height: 24px; }\n .piped-text-popover-container .piped-text-submenu-item .piped-text-icon > svg {\n position: relative;\n margin-left: -5px;\n margin-top: -3px; }\n";
|
|
1804
|
+
styleInject(css_248z$d);
|
|
1324
1805
|
|
|
1325
1806
|
var defaultAnchor = function defaultAnchor(ref) {
|
|
1326
1807
|
return React__default["default"].createElement("div", {
|
|
@@ -1342,6 +1823,7 @@ function PipedTextSelect(props) {
|
|
|
1342
1823
|
|
|
1343
1824
|
var defaultAnchorRef = React.useRef(null);
|
|
1344
1825
|
var externalAnchor = props.anchor;
|
|
1826
|
+
var ariaLabelledBy = props['aria-labelledby'];
|
|
1345
1827
|
React.useEffect(function () {
|
|
1346
1828
|
return function () {
|
|
1347
1829
|
return onClose();
|
|
@@ -1381,7 +1863,8 @@ function PipedTextSelect(props) {
|
|
|
1381
1863
|
items: pipedTextItems,
|
|
1382
1864
|
anchor: actualAnchor,
|
|
1383
1865
|
anchorRef: anchorRef,
|
|
1384
|
-
ignoreClickSelector: props.ignoreClickSelector
|
|
1866
|
+
ignoreClickSelector: props.ignoreClickSelector,
|
|
1867
|
+
"aria-labelledby": ariaLabelledBy
|
|
1385
1868
|
}));
|
|
1386
1869
|
|
|
1387
1870
|
function initializePipedText() {
|
|
@@ -1391,12 +1874,13 @@ function PipedTextSelect(props) {
|
|
|
1391
1874
|
}
|
|
1392
1875
|
}
|
|
1393
1876
|
|
|
1394
|
-
var css_248z$
|
|
1395
|
-
styleInject(css_248z$
|
|
1877
|
+
var css_248z$c = ".piped-text-input .piped-text-input-toggle, .piped-text-input .piped-text-select-container {\n display: inline-block; }\n\n.piped-text-input .piped-text-input-toggle {\n display: flex; }\n .piped-text-input .piped-text-input-toggle input {\n flex: 1 1;\n box-sizing: border-box; }\n .piped-text-input .piped-text-input-toggle input:first-child {\n border-right: 0;\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n .piped-text-input .piped-text-input-toggle.multiline-input textarea {\n flex: 1 1;\n box-sizing: border-box; }\n .piped-text-input .piped-text-input-toggle input + button, .piped-text-input .piped-text-input-toggle textarea + button {\n margin-left: 4px; }\n\n.piped-text-input .addon-text-container {\n /*\n These styles are intended to match CFE QDS components,\n notably FormField and InputField.\n See: https://gitlab-app.eng.qops.net/cfe/ui/-/blob/master/packages/ui-react/src/FormField/Caption.less\n */\n margin-top: 6px; }\n .piped-text-input .addon-text-container .helper-text, .piped-text-input .addon-text-container .error-text {\n font-size: 12px; }\n .piped-text-input .addon-text-container .helper-text {\n color: #74777a;\n fill: #74777a; }\n .piped-text-input .addon-text-container .helper-text + .error-text {\n margin-top: 4px; }\n .piped-text-input .addon-text-container .error-text {\n display: flex;\n align-items: center;\n color: #b00;\n fill: #b00; }\n .piped-text-input .addon-text-container .error-text .error-text-icon svg {\n margin-left: -2px;\n margin-right: 3px;\n width: 16px;\n height: 16px; }\n";
|
|
1878
|
+
styleInject(css_248z$c);
|
|
1396
1879
|
|
|
1397
1880
|
function PipedTextInput(props) {
|
|
1398
1881
|
var _a = React.useState(false), showMenu = _a[0], setShowMenu = _a[1];
|
|
1399
1882
|
var _b = React.useState(), cursorPosition = _b[0], setCursorPosition = _b[1];
|
|
1883
|
+
var pipedTextButtonId = useId();
|
|
1400
1884
|
var pipedTextButtonRef = React.useRef(null);
|
|
1401
1885
|
/*
|
|
1402
1886
|
This has to be an Object type ref instead of 'string' or React will lose
|
|
@@ -1432,10 +1916,10 @@ function PipedTextInput(props) {
|
|
|
1432
1916
|
React__default["default"].createElement(uiReact.Input, __assign({ value: inputRefValue.value, onChange: function (evt) {
|
|
1433
1917
|
onInputChange(evt);
|
|
1434
1918
|
}, onBlur: onInputBlur, placeholder: placeholder, multiline: multiline }, restProps)),
|
|
1435
|
-
React__default["default"].createElement(uiReact.IconButton, { "aria-label": "PipedText", "aria-haspopup": "menu", "aria-expanded": showMenu ? true : undefined, role: "button", onClick: toggleMenu, ref: pipedTextButtonRef },
|
|
1919
|
+
React__default["default"].createElement(uiReact.IconButton, { id: pipedTextButtonId, "aria-label": "PipedText", "aria-haspopup": "menu", "aria-expanded": showMenu ? true : undefined, role: "button", onClick: toggleMenu, ref: pipedTextButtonRef },
|
|
1436
1920
|
React__default["default"].createElement(icons.PipedTextIcon, null)),
|
|
1437
1921
|
React__default["default"].createElement("div", { className: "piped-text-select-container" },
|
|
1438
|
-
React__default["default"].createElement(PipedTextSelect, { items: items, onSelect: pipedTextSelected, show: showMenu, onClose: handleClose, ignoreClickSelector: "piped-text-input-toggle", anchorRef: pipedTextButtonRef }))),
|
|
1922
|
+
React__default["default"].createElement(PipedTextSelect, { items: items, onSelect: pipedTextSelected, show: showMenu, onClose: handleClose, ignoreClickSelector: "piped-text-input-toggle", anchorRef: pipedTextButtonRef, "aria-labelledby": pipedTextButtonId }))),
|
|
1439
1923
|
showAddonText() && (React__default["default"].createElement("div", { className: "addon-text-container" },
|
|
1440
1924
|
helperText && (React__default["default"].createElement("div", { className: "helper-text" }, helperText)),
|
|
1441
1925
|
errorText && (React__default["default"].createElement("div", { className: "error-text" },
|
|
@@ -1507,8 +1991,8 @@ function PipedTextInput(props) {
|
|
|
1507
1991
|
}
|
|
1508
1992
|
}
|
|
1509
1993
|
|
|
1510
|
-
var css_248z$
|
|
1511
|
-
styleInject(css_248z$
|
|
1994
|
+
var css_248z$b = ".field-row {\n min-width: 475px;\n display: flex;\n align-items: center; }\n .field-row .field-selector, .field-row .field-input, .field-row .delete-row, .field-row .required-indicator {\n display: inline-block; }\n .field-row .field-selector, .field-row .field-input {\n padding: 0 10px; }\n .field-row .custom-field-name, .field-row .field-input, .field-row .delete-row {\n box-sizing: border-box; }\n .field-row .field-selector {\n min-width: 30%; }\n .field-row .field-selector.required-field button:hover {\n cursor: not-allowed; }\n .field-row .field-selector .required-indicator-container {\n padding-left: 12px;\n display: flex;\n color: #32363A; }\n .field-row .field-selector .required-indicator-container .required-indicator-text {\n min-width: 0;\n font-size: 14px; }\n .field-row .field-selector .required-indicator-container .required-indicator-symbol {\n margin-top: -2px; }\n .field-row .field-selector .left-align {\n text-align: left; }\n .field-row .field-selector .custom-field-name {\n padding-left: 16px;\n padding-right: 30px; }\n .field-row .field-selector .custom-field-name input {\n text-align: center;\n display: inline-block;\n width: 100%;\n padding: 0; }\n .field-row .field-input-container {\n display: flex;\n flex: 1 0;\n align-items: center; }\n .field-row .field-input-container .field-input {\n flex: 1;\n min-width: 0;\n margin-right: 4px; }\n .field-row .field-input-container .delete-row {\n max-width: 36px;\n margin-left: 12px;\n vertical-align: middle; }\n .field-row .field-input-container .delete-row .icon-wrapper {\n display: block;\n width: fit-content;\n margin: 0 auto;\n min-width: 41px; }\n .field-row .field-input-container .delete-row .icon-wrapper:hover {\n cursor: pointer; }\n .field-row .full-width {\n width: 100%; }\n";
|
|
1995
|
+
styleInject(css_248z$b);
|
|
1512
1996
|
|
|
1513
1997
|
function FieldRow(props) {
|
|
1514
1998
|
var _useState = React.useState(props.children),
|
|
@@ -1682,8 +2166,8 @@ function FieldRow(props) {
|
|
|
1682
2166
|
}, getRowDelete())));
|
|
1683
2167
|
}
|
|
1684
2168
|
|
|
1685
|
-
var css_248z$
|
|
1686
|
-
styleInject(css_248z$
|
|
2169
|
+
var css_248z$a = "";
|
|
2170
|
+
styleInject(css_248z$a);
|
|
1687
2171
|
|
|
1688
2172
|
function FieldItem(props) {
|
|
1689
2173
|
var label = props.name || undefined;
|
|
@@ -1700,8 +2184,8 @@ function FieldItem(props) {
|
|
|
1700
2184
|
}, label);
|
|
1701
2185
|
}
|
|
1702
2186
|
|
|
1703
|
-
var css_248z$
|
|
1704
|
-
styleInject(css_248z$
|
|
2187
|
+
var css_248z$9 = ".task-fields {\n margin-right: 100px; }\n .task-fields .add-field-button .add-field-button-label {\n padding: 0 3px; }\n .task-fields .field-headers {\n margin-bottom: 10px;\n padding-left: 12px; }\n .task-fields .field-headers .field-row {\n color: #6A6D70;\n font-weight: bold; }\n .task-fields .field-headers .field-row .field-selector label, .task-fields .field-headers .field-row .field-input label {\n font-size: 12px; }\n .task-fields .field-headers .field-row .field-selector {\n padding-top: 0;\n padding-right: 24px;\n padding-bottom: 0;\n padding-left: 0; }\n .task-fields .field-headers .field-row .field-input {\n padding-top: 0;\n padding-right: 0;\n padding-bottom: 0;\n padding-left: 12px; }\n .task-fields .field-rows {\n padding-bottom: 12px; }\n .task-fields .field-rows .field-row {\n border-top: 1px solid #E5E5E5; }\n .task-fields .field-rows .field-row .field-selector {\n padding-top: 8px;\n padding-right: 12px;\n padding-bottom: 8px;\n padding-left: 12px; }\n .task-fields .field-rows .field-row .field-input {\n border-left: 1px solid #E5E5E5;\n padding-top: 8px;\n padding-right: 0;\n padding-bottom: 8px;\n padding-left: 12px; }\n\n.q-popover .field-item {\n padding: 5px 32px; }\n .q-popover .field-item:hover {\n cursor: pointer;\n user-select: none;\n background: #007ac0;\n color: #fff;\n fill: #fff; }\n";
|
|
2188
|
+
styleInject(css_248z$9);
|
|
1705
2189
|
|
|
1706
2190
|
var uuidv4 = uuid__default["default"].v4;
|
|
1707
2191
|
var CUSTOM_TYPE = 'custom';
|
|
@@ -2086,8 +2570,8 @@ function AddFieldHeaders(props) {
|
|
|
2086
2570
|
}
|
|
2087
2571
|
}
|
|
2088
2572
|
|
|
2089
|
-
var css_248z$
|
|
2090
|
-
styleInject(css_248z$
|
|
2573
|
+
var css_248z$8 = ".select-item .item {\n padding: 5px 32px;\n display: inline-flex;\n align-items: center;\n box-sizing: border-box;\n width: 100%; }\n .select-item .item .checked-container, .select-item .item .item-content {\n display: inline-block; }\n .select-item .item .checked-container {\n margin-bottom: -3px;\n transition: opacity cubic-bezier(0.4, 0, 0.2, 1) 0.1s; }\n .select-item .item .checked-container.checked {\n opacity: 1; }\n .select-item .item .checked-container:not(.checked) {\n opacity: 0; }\n .select-item .item:hover {\n cursor: pointer;\n user-select: none;\n background: #007ac0;\n color: #fff;\n fill: #fff; }\n";
|
|
2574
|
+
styleInject(css_248z$8);
|
|
2091
2575
|
|
|
2092
2576
|
function SelectItem(props) {
|
|
2093
2577
|
var checked = props.checked || false;
|
|
@@ -2109,8 +2593,8 @@ function SelectItem(props) {
|
|
|
2109
2593
|
}, children)));
|
|
2110
2594
|
}
|
|
2111
2595
|
|
|
2112
|
-
var css_248z$
|
|
2113
|
-
styleInject(css_248z$
|
|
2596
|
+
var css_248z$7 = "";
|
|
2597
|
+
styleInject(css_248z$7);
|
|
2114
2598
|
|
|
2115
2599
|
function MultiselectDropdown(props) {
|
|
2116
2600
|
var _useState = React.useState(false),
|
|
@@ -2165,8 +2649,8 @@ function MultiselectDropdown(props) {
|
|
|
2165
2649
|
})));
|
|
2166
2650
|
}
|
|
2167
2651
|
|
|
2168
|
-
var css_248z = ".dynamic-search-input .search-input {\n box-sizing: border-box; }\n\n.dynamic-search-popover-child {\n padding: 5px 32px; }\n .dynamic-search-popover-child:hover {\n cursor: pointer;\n user-select: none;\n background: #007ac0;\n color: #fff;\n fill: #fff; }\n";
|
|
2169
|
-
styleInject(css_248z);
|
|
2652
|
+
var css_248z$6 = ".dynamic-search-input .search-input {\n box-sizing: border-box; }\n\n.dynamic-search-popover-child {\n padding: 5px 32px; }\n .dynamic-search-popover-child:hover {\n cursor: pointer;\n user-select: none;\n background: #007ac0;\n color: #fff;\n fill: #fff; }\n";
|
|
2653
|
+
styleInject(css_248z$6);
|
|
2170
2654
|
|
|
2171
2655
|
function DynamicSearchInput(props) {
|
|
2172
2656
|
var _useState = React.useState(false),
|
|
@@ -2231,9 +2715,9 @@ function DynamicSearchInput(props) {
|
|
|
2231
2715
|
};
|
|
2232
2716
|
|
|
2233
2717
|
var defaultSearch = function () {
|
|
2234
|
-
var _ref = _asyncToGenerator(
|
|
2718
|
+
var _ref = _asyncToGenerator(_regeneratorRuntime().mark(function _callee(value) {
|
|
2235
2719
|
var results;
|
|
2236
|
-
return
|
|
2720
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
2237
2721
|
while (1) {
|
|
2238
2722
|
switch (_context.prev = _context.next) {
|
|
2239
2723
|
case 0:
|
|
@@ -2266,9 +2750,9 @@ function DynamicSearchInput(props) {
|
|
|
2266
2750
|
}();
|
|
2267
2751
|
|
|
2268
2752
|
var handleInputChange = function () {
|
|
2269
|
-
var _ref2 = _asyncToGenerator(
|
|
2753
|
+
var _ref2 = _asyncToGenerator(_regeneratorRuntime().mark(function _callee2(event) {
|
|
2270
2754
|
var inputVal, searchFunc, results, resultsType, nextSearchResults;
|
|
2271
|
-
return
|
|
2755
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
2272
2756
|
while (1) {
|
|
2273
2757
|
switch (_context2.prev = _context2.next) {
|
|
2274
2758
|
case 0:
|
|
@@ -2349,8 +2833,317 @@ function SearchItem(props) {
|
|
|
2349
2833
|
}, props.children);
|
|
2350
2834
|
}
|
|
2351
2835
|
|
|
2836
|
+
var css_248z$5 = ".capture-event .capture-event-controls {\n display: flex;\n align-items: center;\n gap: 10px;\n margin-bottom: 15px; }\n .capture-event .capture-event-controls .waiting-message {\n display: flex;\n align-items: center; }\n .capture-event .capture-event-controls .waiting-message .waiting-label {\n color: #74777a;\n margin-left: 8px; }\n\n.capture-event .payload-block {\n text-align: left; }\n .capture-event .payload-block .payload-label {\n text-decoration: underline;\n margin-bottom: 3px; }\n";
|
|
2837
|
+
styleInject(css_248z$5);
|
|
2838
|
+
|
|
2839
|
+
function CaptureEvent(props) {
|
|
2840
|
+
var _a = React.useState(props.payload), payload = _a[0]; _a[1];
|
|
2841
|
+
var _b = React.useState(props.capturing || false), capturing = _b[0], setCapturing = _b[1];
|
|
2842
|
+
var _c = React.useState(props.waitingForEventTranslation), waitingLabel = _c[0], setWaitingLabel = _c[1];
|
|
2843
|
+
return (React__default["default"].createElement("div", { className: "capture-event" },
|
|
2844
|
+
React__default["default"].createElement("div", { className: "capture-event-controls" },
|
|
2845
|
+
getCaptureEventButton(),
|
|
2846
|
+
capturing && (React__default["default"].createElement("div", { className: "waiting-message" },
|
|
2847
|
+
React__default["default"].createElement(uiReact.LoadingSpinner, { show: true, size: 'small' }),
|
|
2848
|
+
React__default["default"].createElement("div", { className: "waiting-label" }, waitingLabel)))),
|
|
2849
|
+
payload && (React__default["default"].createElement("div", { className: "payload-block" },
|
|
2850
|
+
React__default["default"].createElement("div", { className: "payload-label" }, "".concat(props.payloadTranslation, ":")),
|
|
2851
|
+
React__default["default"].createElement("div", { className: "payload" },
|
|
2852
|
+
React__default["default"].createElement("pre", null, payload))))));
|
|
2853
|
+
function getCaptureEventButton() {
|
|
2854
|
+
if (capturing) {
|
|
2855
|
+
return (React__default["default"].createElement("div", { className: "capture-event-button-container" },
|
|
2856
|
+
React__default["default"].createElement(uiReact.Button, { kind: "secondary", onClick: cancelCapture }, props.cancelCaptureTranslation)));
|
|
2857
|
+
}
|
|
2858
|
+
else {
|
|
2859
|
+
return (React__default["default"].createElement("div", { className: "capture-event-button-container" },
|
|
2860
|
+
React__default["default"].createElement(uiReact.Button, { kind: "primary", onClick: startCapture }, props.captureNextEventTranslation)));
|
|
2861
|
+
}
|
|
2862
|
+
}
|
|
2863
|
+
function startCapture() {
|
|
2864
|
+
setCapturing(true);
|
|
2865
|
+
props.onStart();
|
|
2866
|
+
}
|
|
2867
|
+
function cancelCapture() {
|
|
2868
|
+
setCapturing(false);
|
|
2869
|
+
setWaitingLabel(props.waitingForEventTranslation);
|
|
2870
|
+
props.onCancel();
|
|
2871
|
+
}
|
|
2872
|
+
}
|
|
2873
|
+
|
|
2874
|
+
var css_248z$4 = ".copy-text {\n display: flex;\n column-gap: 8px; }\n .copy-text .input-container {\n width: 100%; }\n .copy-text .input-container .input-textbox {\n width: 100%; }\n .copy-text .copy-button-container .selected-button {\n display: flex; }\n .copy-text .copy-button-container .selected-button .selected-button-text {\n display: flex;\n align-self: center; }\n";
|
|
2875
|
+
styleInject(css_248z$4);
|
|
2876
|
+
|
|
2877
|
+
var COPY_BUTTON_SELECTED_TEXT_TIME = 1.5 * 1000; // seconds * milliseconds
|
|
2878
|
+
function CopyText(props) {
|
|
2879
|
+
var _a = React.useState(false), copyButtonSelected = _a[0], setCopyButtonSelected = _a[1];
|
|
2880
|
+
return (React__default["default"].createElement("div", { className: "copy-text" },
|
|
2881
|
+
React__default["default"].createElement("div", { className: "input-container" },
|
|
2882
|
+
React__default["default"].createElement(uiReact.Input, { className: "input-textbox", defaultValue: props.text, "aria-readonly": true, readOnly: true })),
|
|
2883
|
+
React__default["default"].createElement("div", { className: "copy-button-container" },
|
|
2884
|
+
React__default["default"].createElement(uiReact.Button, { kind: "secondary", disabled: copyButtonSelected, onClick: copyTextToClipboard }, getCopyButtonContent()))));
|
|
2885
|
+
function copyTextToClipboard() {
|
|
2886
|
+
try {
|
|
2887
|
+
navigator.clipboard.writeText(props.text);
|
|
2888
|
+
setCopyButtonSelected(true);
|
|
2889
|
+
setTimeout(function () { return setCopyButtonSelected(false); }, COPY_BUTTON_SELECTED_TEXT_TIME);
|
|
2890
|
+
}
|
|
2891
|
+
catch (err) {
|
|
2892
|
+
console.error('Failed to copy text');
|
|
2893
|
+
console.error(err);
|
|
2894
|
+
}
|
|
2895
|
+
}
|
|
2896
|
+
function getCopyButtonContent() {
|
|
2897
|
+
if (copyButtonSelected) {
|
|
2898
|
+
return (React__default["default"].createElement("div", { className: "selected-button" },
|
|
2899
|
+
React__default["default"].createElement("div", { className: "selected-button-icon" },
|
|
2900
|
+
React__default["default"].createElement(icons.CheckIcon, null)),
|
|
2901
|
+
React__default["default"].createElement("div", { className: "selected-button-text" }, props.copySelectedTranslation)));
|
|
2902
|
+
}
|
|
2903
|
+
else {
|
|
2904
|
+
return (React__default["default"].createElement("div", { className: "default-button" }, props.copyTranslation));
|
|
2905
|
+
}
|
|
2906
|
+
}
|
|
2907
|
+
}
|
|
2908
|
+
|
|
2909
|
+
var css_248z$3 = ".field-mapper {\n padding-bottom: 12px; }\n .field-mapper .field-mapper-row-container .field-mapper-row {\n border-top: 1px solid #E5E5E5; }\n .field-mapper .field-mapper-row-container.field-mapper-header-row {\n margin-bottom: 10px;\n padding-left: 12px; }\n .field-mapper .field-mapper-row-container.field-mapper-header-row .field-mapper-row {\n border: 0; }\n .field-mapper .field-mapper-row-container.field-mapper-header-row .field-mapper-key, .field-mapper .field-mapper-row-container.field-mapper-header-row .field-mapper-value {\n border: 0;\n display: flex;\n align-items: center; }\n .field-mapper .field-mapper-row-container.field-mapper-header-row .field-mapper-key .field-mapper-header-cell, .field-mapper .field-mapper-row-container.field-mapper-header-row .field-mapper-value .field-mapper-header-cell {\n color: #6A6D70;\n font-weight: bold;\n font-size: 12px; }\n .field-mapper .field-mapper-row-container.field-mapper-header-row .field-mapper-key {\n padding-top: 0;\n padding-right: 24px;\n padding-bottom: 0;\n padding-left: 0; }\n .field-mapper .field-mapper-row-container.field-mapper-header-row .field-mapper-value {\n padding-top: 0;\n padding-right: 0;\n padding-bottom: 0;\n padding-left: 12px; }\n .field-mapper .add-field-button-container {\n padding-top: 12px; }\n";
|
|
2910
|
+
styleInject(css_248z$3);
|
|
2911
|
+
|
|
2912
|
+
function isString(val) {
|
|
2913
|
+
return (typeof val) === 'string';
|
|
2914
|
+
}
|
|
2915
|
+
|
|
2916
|
+
var css_248z$2 = ".field-mapper-row .field-mapper-row-content {\n display: flex; }\n .field-mapper-row .field-mapper-row-content .field-mapper-key-container {\n flex: 4; }\n .field-mapper-row .field-mapper-row-content .field-mapper-value-container {\n flex: 7; }\n .field-mapper-row .field-mapper-row-content .remove-row-container {\n min-height: 100%;\n padding: 8px 12px;\n border-left: 1px solid #E5E5E5; }\n .field-mapper-row .field-mapper-row-content .remove-row-container.hide-remove-button {\n border: 0; }\n .field-mapper-row .field-mapper-row-content .remove-row-container .empty-remove-button {\n min-width: 36px; }\n";
|
|
2917
|
+
styleInject(css_248z$2);
|
|
2918
|
+
|
|
2919
|
+
var css_248z$1 = ".field-mapper-key {\n display: flex;\n align-items: center;\n padding-top: 8px;\n padding-right: 12px;\n padding-bottom: 8px;\n padding-left: 12px;\n height: 100%; }\n .field-mapper-key .required-field-container {\n display: flex; }\n .field-mapper-key .required-field-container .required-field-text {\n min-width: 0;\n font-size: 14px; }\n .field-mapper-key .required-field-container .required-field-symbol {\n margin-top: -2px; }\n";
|
|
2920
|
+
styleInject(css_248z$1);
|
|
2921
|
+
|
|
2922
|
+
var FieldMapperKey = React__default["default"].forwardRef(function FieldMapperKey(props, ref) {
|
|
2923
|
+
var _a, _b, _c, _d, _e;
|
|
2924
|
+
var availableFields;
|
|
2925
|
+
var onFieldKeyChange;
|
|
2926
|
+
availableFields = Array.isArray(props.availableFields)
|
|
2927
|
+
? props.availableFields
|
|
2928
|
+
: [];
|
|
2929
|
+
onFieldKeyChange = (typeof props.onFieldKeyChange === 'function')
|
|
2930
|
+
? props.onFieldKeyChange
|
|
2931
|
+
: function () { return undefined; };
|
|
2932
|
+
return (React__default["default"].createElement("div", { className: "field-mapper-key", ref: ref }, (React__default["default"].Children.count(props.children) > 0)
|
|
2933
|
+
? props.children
|
|
2934
|
+
: (React__default["default"].createElement("div", { className: "field-mapper-key-dropdown" }, fieldMapperKeyDropdownDisabled()
|
|
2935
|
+
? (React__default["default"].createElement(uiReact.Button, { disabled: true }, (_a = props.selectedField) === null || _a === void 0 ? void 0 : _a.label))
|
|
2936
|
+
: (((_b = props.selectedField) === null || _b === void 0 ? void 0 : _b.required) === true)
|
|
2937
|
+
? (React__default["default"].createElement("div", { className: "required-field-container" },
|
|
2938
|
+
React__default["default"].createElement("div", { className: "required-field-text" }, (_c = props.selectedField) === null || _c === void 0 ? void 0 : _c.label),
|
|
2939
|
+
React__default["default"].createElement("div", { className: "required-field-symbol" }, "*")))
|
|
2940
|
+
: (React__default["default"].createElement(uiReact.Dropdown, { onChange: handleFieldKeyChange },
|
|
2941
|
+
React__default["default"].createElement(uiReact.DropdownButton, { label: (_d = props.selectedField) === null || _d === void 0 ? void 0 : _d.label }),
|
|
2942
|
+
React__default["default"].createElement(uiReact.DropdownList, null, (_e = props.availableFields) === null || _e === void 0 ? void 0 : _e.map(function (fieldItem) {
|
|
2943
|
+
return (React__default["default"].createElement(uiReact.DropdownOption, { key: fieldItem.key, label: fieldItem.label, value: fieldItem.value }));
|
|
2944
|
+
}))))))));
|
|
2945
|
+
function handleFieldKeyChange(value) {
|
|
2946
|
+
var foundSelectedFieldKey;
|
|
2947
|
+
foundSelectedFieldKey = availableFields.find(function (availableField) {
|
|
2948
|
+
return availableField.value === value;
|
|
2949
|
+
});
|
|
2950
|
+
if (foundSelectedFieldKey === undefined) {
|
|
2951
|
+
return;
|
|
2952
|
+
}
|
|
2953
|
+
onFieldKeyChange(props.selectedField, foundSelectedFieldKey);
|
|
2954
|
+
}
|
|
2955
|
+
function fieldMapperKeyDropdownDisabled() {
|
|
2956
|
+
var hasAvailableFields;
|
|
2957
|
+
hasAvailableFields = (availableFields === null || availableFields === void 0 ? void 0 : availableFields.length) > 0;
|
|
2958
|
+
return !hasAvailableFields;
|
|
2959
|
+
}
|
|
2960
|
+
});
|
|
2961
|
+
|
|
2962
|
+
var css_248z = ".field-mapper-value {\n border-left: 1px solid #E5E5E5;\n padding-top: 8px;\n padding-right: 12px;\n padding-bottom: 8px;\n padding-left: 12px;\n height: 100%; }\n";
|
|
2963
|
+
styleInject(css_248z);
|
|
2964
|
+
|
|
2965
|
+
var FieldMapperValue = React__default["default"].forwardRef(function FieldMapperValue(props, ref) {
|
|
2966
|
+
var _a, _b;
|
|
2967
|
+
return (React__default["default"].createElement("div", { className: "field-mapper-value" }, (React__default["default"].Children.count(props.children) > 0)
|
|
2968
|
+
? props.children
|
|
2969
|
+
: (React__default["default"].createElement("div", { className: "piped-text-input-value-container" },
|
|
2970
|
+
React__default["default"].createElement(PipedTextInput, { items: (_a = props.pipedTextItems) !== null && _a !== void 0 ? _a : [], onChange: (_b = props.onChange) !== null && _b !== void 0 ? _b : (function () { return undefined; }) })))));
|
|
2971
|
+
});
|
|
2972
|
+
|
|
2973
|
+
var FieldMapperRow = React__default["default"].forwardRef(function FieldMapperRow(props, ref) {
|
|
2974
|
+
return (React__default["default"].createElement("div", { className: "field-mapper-row", ref: ref },
|
|
2975
|
+
React__default["default"].createElement("div", { className: "field-mapper-row-content" },
|
|
2976
|
+
React__default["default"].Children.map(props.children, function (child) {
|
|
2977
|
+
return getWrappedKeyValue(child);
|
|
2978
|
+
}),
|
|
2979
|
+
React__default["default"].createElement("div", { className: 'remove-row-container' + ((props.showRemove === false) ? ' hide-remove-button' : '') }, (props.showRemove === false)
|
|
2980
|
+
? (React__default["default"].createElement("div", { className: "empty-remove-button" }))
|
|
2981
|
+
: (React__default["default"].createElement(uiReact.IconButton
|
|
2982
|
+
/*
|
|
2983
|
+
TODO: Require an i18n string to be passed in for a11y labels
|
|
2984
|
+
*/
|
|
2985
|
+
, { "aria-label": "Remove", onClick: function ($e) { return handleRemoveClick(); } },
|
|
2986
|
+
React__default["default"].createElement(icons.RemoveItemIcon, null)))))));
|
|
2987
|
+
function handleRemoveClick(evt) {
|
|
2988
|
+
var _a;
|
|
2989
|
+
(_a = props.onFieldRemove) === null || _a === void 0 ? void 0 : _a.call(props, props.selectedField);
|
|
2990
|
+
}
|
|
2991
|
+
function getWrappedKeyValue(child) {
|
|
2992
|
+
var _a, _b, _c, _d;
|
|
2993
|
+
var wrappedEl;
|
|
2994
|
+
var fieldMapperKeyProps, fieldMapperValueProps;
|
|
2995
|
+
var includeAvailableFields, includeSelectedField;
|
|
2996
|
+
var includePipedTextItems, includeOnChange;
|
|
2997
|
+
fieldMapperKeyProps = {};
|
|
2998
|
+
fieldMapperValueProps = {};
|
|
2999
|
+
switch (child.type) {
|
|
3000
|
+
case FieldMapperKey:
|
|
3001
|
+
includeAvailableFields = (!Array.isArray(child.props.availableFields)
|
|
3002
|
+
&& (((_a = props.availableFields) === null || _a === void 0 ? void 0 : _a.length) > 0));
|
|
3003
|
+
includeSelectedField = (((typeof child.props.selectedField) !== 'object')
|
|
3004
|
+
&& (props.selectedField !== undefined));
|
|
3005
|
+
if (includeAvailableFields) {
|
|
3006
|
+
fieldMapperKeyProps.availableFields = (_c = (_b = props.availableFields) === null || _b === void 0 ? void 0 : _b.slice()) !== null && _c !== void 0 ? _c : [];
|
|
3007
|
+
}
|
|
3008
|
+
if (includeSelectedField) {
|
|
3009
|
+
fieldMapperKeyProps.selectedField = Object.assign({}, props.selectedField);
|
|
3010
|
+
}
|
|
3011
|
+
if (React__default["default"].isValidElement(child)
|
|
3012
|
+
&& (includeAvailableFields
|
|
3013
|
+
|| includeSelectedField)) {
|
|
3014
|
+
child = React__default["default"].cloneElement(child, fieldMapperKeyProps);
|
|
3015
|
+
}
|
|
3016
|
+
wrappedEl = (React__default["default"].createElement("div", { className: "field-mapper-key-container" }, child));
|
|
3017
|
+
break;
|
|
3018
|
+
case FieldMapperValue:
|
|
3019
|
+
includePipedTextItems = (!Array.isArray(child.props.pipedTextItems)
|
|
3020
|
+
&& (((_d = props.pipedTextItems) === null || _d === void 0 ? void 0 : _d.length) > 0));
|
|
3021
|
+
includeOnChange = (((typeof child.props.onChange) !== 'function')
|
|
3022
|
+
&& ((typeof props.onChange) === 'function'));
|
|
3023
|
+
if (includePipedTextItems) {
|
|
3024
|
+
fieldMapperValueProps.pipedTextItems = props.pipedTextItems;
|
|
3025
|
+
}
|
|
3026
|
+
if (includeOnChange) {
|
|
3027
|
+
fieldMapperValueProps.onChange = function (value) {
|
|
3028
|
+
props.onChange(props.selectedField, value);
|
|
3029
|
+
};
|
|
3030
|
+
}
|
|
3031
|
+
if (React__default["default"].isValidElement(child)
|
|
3032
|
+
&& includePipedTextItems) {
|
|
3033
|
+
child = React__default["default"].cloneElement(child, fieldMapperValueProps);
|
|
3034
|
+
}
|
|
3035
|
+
wrappedEl = (React__default["default"].createElement("div", { className: "field-mapper-value-container" }, child));
|
|
3036
|
+
break;
|
|
3037
|
+
default:
|
|
3038
|
+
wrappedEl = child;
|
|
3039
|
+
}
|
|
3040
|
+
return wrappedEl;
|
|
3041
|
+
}
|
|
3042
|
+
});
|
|
3043
|
+
|
|
3044
|
+
var MISSING_TRANSLATION_WARNING = '{{MISSING_I18N_STRING}}';
|
|
3045
|
+
var FieldMapper = React__default["default"].forwardRef(function FieldMapper(props, ref) {
|
|
3046
|
+
var _a, _b, _c, _d, _e, _f;
|
|
3047
|
+
return (React__default["default"].createElement("div", { className: 'field-mapper ' + ((_a = props.className) !== null && _a !== void 0 ? _a : ''), ref: ref },
|
|
3048
|
+
hasHeaderRow() && (React__default["default"].createElement("div", { className: "field-mapper-row-container field-mapper-header-row" },
|
|
3049
|
+
React__default["default"].createElement(FieldMapperRow, { showRemove: false },
|
|
3050
|
+
React__default["default"].createElement(FieldMapperKey, null,
|
|
3051
|
+
React__default["default"].createElement("div", { className: "field-mapper-header-cell field-mapper-key-header" }, (_b = props.fieldKeysHeaderText) !== null && _b !== void 0 ? _b : '')),
|
|
3052
|
+
React__default["default"].createElement(FieldMapperValue, null,
|
|
3053
|
+
React__default["default"].createElement("div", { className: "field-mapper-header-cell field-mapper-value-header" }, (_c = props.fieldValuesHeaderText) !== null && _c !== void 0 ? _c : ''))))),
|
|
3054
|
+
React__default["default"].createElement("div", { className: "field-mapper-row-container" }, React__default["default"].Children.map(props.children, function (child) {
|
|
3055
|
+
return getWrappedFieldRow(child);
|
|
3056
|
+
})),
|
|
3057
|
+
React__default["default"].createElement("div", { className: "add-field-button-container" }, isAddFieldDisabled()
|
|
3058
|
+
? (React__default["default"].createElement(uiReact.Button, { disabled: true, kind: "secondary", className: "add-field-button" },
|
|
3059
|
+
React__default["default"].createElement("div", { className: "add-field-icon" },
|
|
3060
|
+
React__default["default"].createElement(icons.AddIcon, null)),
|
|
3061
|
+
React__default["default"].createElement("div", { className: "add-field-button-label" }, (_d = props.addFieldLabel) !== null && _d !== void 0 ? _d : MISSING_TRANSLATION_WARNING)))
|
|
3062
|
+
: (React__default["default"].createElement(uiReact.Dropdown, null,
|
|
3063
|
+
React__default["default"].createElement(uiReact.DropdownButton, null,
|
|
3064
|
+
React__default["default"].createElement(uiReact.Button, { className: "add-field-button", kind: "secondary" },
|
|
3065
|
+
React__default["default"].createElement("div", { className: "add-field-icon" },
|
|
3066
|
+
React__default["default"].createElement(icons.AddIcon, null)),
|
|
3067
|
+
React__default["default"].createElement("div", { className: "add-field-button-label" }, (_e = props.addFieldLabel) !== null && _e !== void 0 ? _e : MISSING_TRANSLATION_WARNING))),
|
|
3068
|
+
React__default["default"].createElement(uiReact.DropdownList, null, (_f = props.availableFields) === null || _f === void 0 ? void 0 : _f.map(function (fieldItem) {
|
|
3069
|
+
return (React__default["default"].createElement(uiReact.DropdownOption, { key: fieldItem.key, value: fieldItem.value, label: fieldItem.label, onSelect: function ($e) {
|
|
3070
|
+
handleDropdownSelect(fieldItem.value);
|
|
3071
|
+
} }));
|
|
3072
|
+
})))))));
|
|
3073
|
+
function hasHeaderRow() {
|
|
3074
|
+
return (isString(props.fieldKeysHeaderText)
|
|
3075
|
+
|| isString(props.fieldValuesHeaderText));
|
|
3076
|
+
}
|
|
3077
|
+
function getWrappedFieldRow(child) {
|
|
3078
|
+
var _a, _b, _c;
|
|
3079
|
+
var wrappedEl;
|
|
3080
|
+
var fieldMapperRowProps;
|
|
3081
|
+
var includeAvailableFields, includeOnFieldRemove, includePipedTextItems, includeOnFieldValueChange, includeShowRemove;
|
|
3082
|
+
fieldMapperRowProps = {};
|
|
3083
|
+
switch (child.type) {
|
|
3084
|
+
case FieldMapperRow:
|
|
3085
|
+
wrappedEl = child;
|
|
3086
|
+
break;
|
|
3087
|
+
default:
|
|
3088
|
+
wrappedEl = (React__default["default"].createElement(FieldMapperRow, null, child));
|
|
3089
|
+
}
|
|
3090
|
+
includeAvailableFields = (!Array.isArray(wrappedEl.props.availableFields)
|
|
3091
|
+
&& (((_a = props.availableFields) === null || _a === void 0 ? void 0 : _a.length) > 0));
|
|
3092
|
+
includeOnFieldRemove = (((typeof wrappedEl.props.onFieldRemove) !== 'function')
|
|
3093
|
+
&& ((typeof props.onFieldRemove) === 'function'));
|
|
3094
|
+
includePipedTextItems = (!Array.isArray(wrappedEl.props.pipedTextItems)
|
|
3095
|
+
&& (((_b = props.pipedTextItems) === null || _b === void 0 ? void 0 : _b.length) > 0));
|
|
3096
|
+
includeOnFieldValueChange = (((typeof wrappedEl.props.onChange) !== 'function')
|
|
3097
|
+
&& (typeof props.onFieldValueChange === 'function'));
|
|
3098
|
+
includeShowRemove = (((typeof wrappedEl.props.showRemove !== 'boolean'))
|
|
3099
|
+
&& ((typeof ((_c = child.props.selectedField) === null || _c === void 0 ? void 0 : _c.required)) === 'boolean'));
|
|
3100
|
+
if (includeAvailableFields) {
|
|
3101
|
+
fieldMapperRowProps.availableFields = props.availableFields.slice();
|
|
3102
|
+
}
|
|
3103
|
+
if (includeOnFieldRemove) {
|
|
3104
|
+
fieldMapperRowProps.onFieldRemove = function (fieldItem) {
|
|
3105
|
+
return props.onFieldRemove(fieldItem);
|
|
3106
|
+
};
|
|
3107
|
+
}
|
|
3108
|
+
if (includePipedTextItems) {
|
|
3109
|
+
fieldMapperRowProps.pipedTextItems = props.pipedTextItems;
|
|
3110
|
+
}
|
|
3111
|
+
if (includeOnFieldValueChange) {
|
|
3112
|
+
fieldMapperRowProps.onChange = function (fieldItem, inputValue) {
|
|
3113
|
+
return props.onFieldValueChange(fieldItem, inputValue);
|
|
3114
|
+
};
|
|
3115
|
+
}
|
|
3116
|
+
if (includeShowRemove) {
|
|
3117
|
+
fieldMapperRowProps.showRemove = !child.props.selectedField.required;
|
|
3118
|
+
}
|
|
3119
|
+
wrappedEl = React__default["default"].cloneElement(wrappedEl, fieldMapperRowProps);
|
|
3120
|
+
return wrappedEl;
|
|
3121
|
+
}
|
|
3122
|
+
function handleDropdownSelect(value) {
|
|
3123
|
+
var foundFieldMapperItem;
|
|
3124
|
+
foundFieldMapperItem = props.availableFields.find(function (availableField) {
|
|
3125
|
+
return availableField.value === value;
|
|
3126
|
+
});
|
|
3127
|
+
if (foundFieldMapperItem) {
|
|
3128
|
+
props.onFieldAdd(foundFieldMapperItem);
|
|
3129
|
+
}
|
|
3130
|
+
}
|
|
3131
|
+
function isAddFieldDisabled() {
|
|
3132
|
+
var hasAvailableFields;
|
|
3133
|
+
hasAvailableFields = ((Array.isArray(props.availableFields))
|
|
3134
|
+
&& (props.availableFields.length > 0));
|
|
3135
|
+
return !hasAvailableFields;
|
|
3136
|
+
}
|
|
3137
|
+
});
|
|
3138
|
+
|
|
3139
|
+
exports.CaptureEvent = CaptureEvent;
|
|
3140
|
+
exports.CopyText = CopyText;
|
|
2352
3141
|
exports.DynamicSearchInput = DynamicSearchInput;
|
|
2353
3142
|
exports.FieldItem = FieldItem;
|
|
3143
|
+
exports.FieldMapper = FieldMapper;
|
|
3144
|
+
exports.FieldMapperKey = FieldMapperKey;
|
|
3145
|
+
exports.FieldMapperRow = FieldMapperRow;
|
|
3146
|
+
exports.FieldMapperValue = FieldMapperValue;
|
|
2354
3147
|
exports.MultiselectDropdown = MultiselectDropdown;
|
|
2355
3148
|
exports.PipedTextInput = PipedTextInput;
|
|
2356
3149
|
exports.PipedTextSelect = PipedTextSelect;
|