@eui/components 17.0.1-snapshot-1700923341677 → 17.0.1-snapshot-1701096824737
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/docs/components/EuiTimelineComponent.html +59 -4
- package/docs/components/EuiTimelineItemComponent.html +1 -43
- package/docs/dependencies.html +2 -2
- package/docs/js/search/search_index.js +2 -2
- package/docs/miscellaneous/variables.html +2 -2
- package/esm2022/eui-menu/eui-menu.component.mjs +26 -25
- package/esm2022/eui-timeline/eui-timeline-item.component.mjs +10 -27
- package/esm2022/eui-timeline/eui-timeline.component.mjs +23 -16
- package/esm2022/externals/eui-editor/validators/eui-editor.validators.mjs +3 -3
- package/eui-menu/eui-menu.component.d.ts.map +1 -1
- package/eui-timeline/eui-timeline-item.component.d.ts +5 -7
- package/eui-timeline/eui-timeline-item.component.d.ts.map +1 -1
- package/eui-timeline/eui-timeline.component.d.ts +8 -2
- package/eui-timeline/eui-timeline.component.d.ts.map +1 -1
- package/fesm2022/eui-components-eui-menu.mjs +25 -24
- package/fesm2022/eui-components-eui-menu.mjs.map +1 -1
- package/fesm2022/eui-components-eui-timeline.mjs +53 -60
- package/fesm2022/eui-components-eui-timeline.mjs.map +1 -1
- package/fesm2022/eui-components-externals-eui-editor.mjs +2 -2
- package/fesm2022/eui-components-externals-eui-editor.mjs.map +1 -1
- package/package.json +1 -1
@@ -115,7 +115,7 @@ export const euiEditorMinWords = (minWords) => (control) => {
|
|
115
115
|
const content = JSON.parse(control.value)
|
116
116
|
.ops.filter((c) => typeof c.insert === 'string')
|
117
117
|
.map((c) => c.insert.replace(/\n/g, ' '));
|
118
|
-
const jsonStrippedContent = content.join('
|
118
|
+
const jsonStrippedContent = content.join('');
|
119
119
|
actual = jsonStrippedContent.trim().split(/\s+/).length;
|
120
120
|
}
|
121
121
|
else {
|
@@ -150,7 +150,7 @@ export const euiEditorMaxWords = (maxWords) => (control) => {
|
|
150
150
|
const content = JSON.parse(control.value)
|
151
151
|
.ops.filter((c) => typeof c.insert === 'string')
|
152
152
|
.map((c) => c.insert.replace(/\n/g, ' '));
|
153
|
-
const jsonStrippedContent = content.join('
|
153
|
+
const jsonStrippedContent = content.join('');
|
154
154
|
actual = jsonStrippedContent.trim().split(/\s+/).length;
|
155
155
|
}
|
156
156
|
else {
|
@@ -215,4 +215,4 @@ export const euiEditorMaxBytes = (maxBytes) => (control) => {
|
|
215
215
|
return actual > maxBytes ? { maxBytes: { maxBytes, actual } } : null;
|
216
216
|
}
|
217
217
|
};
|
218
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWVkaXRvci52YWxpZGF0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vZXh0ZXJuYWxzL2V1aS1lZGl0b3IvdmFsaWRhdG9ycy9ldWktZWRpdG9yLnZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxNQUFNLEdBQUcsQ0FBQyxLQUFhLEVBQVcsRUFBRTtJQUN0QyxJQUFJO1FBQ0EsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUNyQjtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1IsT0FBTyxLQUFLLENBQUM7S0FDaEI7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDLENBQUM7QUFFRixNQUFNLFVBQVUsR0FBRyxDQUFDLEtBQWEsRUFBVSxFQUFFO0lBQ3pDLDRDQUE0QztJQUM1QyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQ3JCLEtBQUssSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUN4QyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksS0FBSyxFQUFFO1lBQzlCLENBQUMsRUFBRSxDQUFDO1NBQ1A7YUFBTSxJQUFJLElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxJQUFJLE1BQU0sRUFBRTtZQUN2QyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ1Y7UUFDRCxJQUFJLElBQUksSUFBSSxNQUFNLElBQUksSUFBSSxJQUFJLE1BQU0sRUFBRTtZQUNsQyxDQUFDLEVBQUUsQ0FBQztTQUNQO0tBQ0o7SUFDRCxPQUFPLENBQUMsQ0FBQztBQUNiLENBQUMsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILE1BQU0s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SSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3RDO2FBQU07WUFDSCxNQUFNLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ2hFLE1BQU0sR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdEQ7UUFFRCxPQUFPLE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztLQUN4RTtBQUNMLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmNvbnN0IGlzSnNvbiA9ICh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgICAgSlNPTi5wYXJzZSh2YWx1ZSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufTtcblxuY29uc3QgYnl0ZUxlbmd0aCA9ICh2YWx1ZTogc3RyaW5nKTogbnVtYmVyID0+IHtcbiAgICAvLyByZXR1cm5zIHRoZSBieXRlIGxlbmd0aCBvZiBhbiB1dGY4IHN0cmluZ1xuICAgIGxldCBzID0gdmFsdWUubGVuZ3RoO1xuICAgIGZvciAobGV0IGkgPSB2YWx1ZS5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICBjb25zdCBjb2RlID0gdmFsdWUuY2hhckNvZGVBdChpKTtcbiAgICAgICAgaWYgKGNvZGUgPiAweDdmICYmIGNvZGUgPD0gMHg3ZmYpIHtcbiAgICAgICAgICAgIHMrKztcbiAgICAgICAgfSBlbHNlIGlmIChjb2RlID4gMHg3ZmYgJiYgY29kZSA8PSAweGZmZmYpIHtcbiAgICAgICAgICAgIHMgKz0gMjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29kZSA+PSAweGRjMDAgJiYgY29kZSA8PSAweGRmZmYpIHtcbiAgICAgICAgICAgIGktLTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcztcbn07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKiBWYWxpZGF0b3IgdGhhdCByZXF1aXJlcyB0aGUgbGVuZ3RoIG9mIHRoZSBlZGl0b3IncyBjb250ZW50LCBvdXQgb2YgSFRNTCB0YWdzIG9yIEpTT04gc3RydWN0dXJlLCB0byBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWxcbiAqIHRvIHRoZSBwcm92aWRlZCBtaW5pbXVtIGxlbmd0aC5cbiAqXG4gKiBAdXNhZ2VOb3Rlc1xuICogVmFsaWRhdGUgdGhhdCB0aGUgZWRpdG9yIGhhcyBhIG1pbmltdW0gb2YgNSBjaGFyYWN0ZXJzOlxuICpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGVkaXRvciA9IG5ldyBGb3JtQ29udHJvbCgnbmcnLCBldWlFZGl0b3JNaW5MZW5ndGgoNSkpO1xuICogY29uc29sZS5sb2coZWRpdG9yLmVycm9ycyk7IC8vIHsgbWlubGVuZ3RoOiB7IG1pbkxlbmd0aDogNSwgYWN0dWFsOiAyIH0gfVxuICogYGBgXG4gKlxuICogQHJldHVybnMgQSB2YWxpZGF0b3IgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIGVycm9yIG1hcCB3aXRoIHRoZVxuICogYG1pbmxlbmd0aGAgaWYgdGhlIHZhbGlkYXRpb24gY2hlY2sgZmFpbHMsIG90aGVyd2lzZSBgbnVsbGAuXG4gKi9cbmV4cG9ydCBjb25zdCBldWlFZGl0b3JNaW5MZW5ndGggPVxuICAgIChtaW5MZW5ndGg6IG51bWJlcik6IFZhbGlkYXRvckZuID0+XG4gICAgKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgbWluTGVuZ3RoOiB7IG1pbkxlbmd0aDogbnVtYmVyOyBhY3R1YWw6IG51bWJlciB9IH0gfCBudWxsID0+IHtcbiAgICAgICAgaWYgKGNvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgICAgIGxldCBhY3R1YWwgPSAwO1xuICAgICAgICAgICAgaWYgKGlzSnNvbihjb250cm9sLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBKU09OLnBhcnNlKGNvbnRyb2wudmFsdWUpXG4gICAgICAgICAgICAgICAgICAgIC5vcHMuZmlsdGVyKChjOiB7IGF0dHJpYnV0ZXM6IHN0cmluZzsgaW5zZXJ0OiBzdHJpbmcgfSkgPT4gdHlwZW9mIGMuaW5zZXJ0ID09PSAnc3RyaW5nJylcbiAgICAgICAgICAgICAgICAgICAgLm1hcCgoYzogeyBhdHRyaWJ1dGVzOiBzdHJpbmc7IGluc2VydDogc3RyaW5nIH0pID0+IGMuaW5zZXJ0LnJlcGxhY2UoL1xcbi9nLCAnJykpO1xuXG4gICAgICAgICAgICAgICAgY29uc3QganNvblN0cmlwcGVkQ29udGVudCA9IGNvbnRlbnQuam9pbignJyk7XG4gICAgICAgICAgICAgICAgYWN0dWFsID0ganNvblN0cmlwcGVkQ29udGVudC5sZW5ndGg7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlZ2V4ID0gLyg8KFtePl0rKT4pL2dpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRhZ3NTdHJpcHBlZENvbnRlbnQgPSBjb250cm9sLnZhbHVlLnJlcGxhY2UocmVnZXgsICcnKTtcbiAgICAgICAgICAgICAgICBhY3R1YWwgPSB0YWdzU3RyaXBwZWRDb250ZW50Lmxlbmd0aDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGFjdHVhbCA8IG1pbkxlbmd0aCA/IHsgbWluTGVuZ3RoOiB7IG1pbkxlbmd0aCwgYWN0dWFsIH0gfSA6IG51bGw7XG4gICAgICAgIH1cbiAgICB9O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogVmFsaWRhdG9yIHRoYXQgcmVxdWlyZXMgdGhlIGxlbmd0aCBvZiB0aGUgZWRpdG9yJ3MgY29udGVudCwgb3V0IG9mIEhUTUwgdGFncyBvciBKU09OIHN0cnVjdHVyZSwgdG8gYmUgbGVzcyB0aGFuIG9yIGVxdWFsXG4gKiB0byB0aGUgcHJvdmlkZWQgbWF4aW11bSBsZW5ndGguXG4gKlxuICogQHVzYWdlTm90ZXNcbiAqIFZhbGlkYXRlIHRoYXQgdGhlIGVkaXRvciBoYXMgYSBtYXhpbXVtIG9mIDEwIGNoYXJhY3RlcnM6XG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZWRpdG9yID0gbmV3IEZvcm1Db250cm9sKCduZyBhbmd1bGFyIHJlYWN0aXZlJywgZXVpRWRpdG9yTWF4TGVuZ3RoKDEwKSk7XG4gKiBjb25zb2xlLmxvZyhlZGl0b3IuZXJyb3JzKTsgLy8geyBtYXhMZW5ndGg6IHsgbWF4TGVuZ3RoOiAxMCwgYWN0dWFsOiAxOSB9IH1cbiAqIGBgYFxuICpcbiAqIEByZXR1cm5zIEEgdmFsaWRhdG9yIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBlcnJvciBtYXAgd2l0aCB0aGVcbiAqIGBtYXhsZW5ndGhgIGlmIHRoZSB2YWxpZGF0aW9uIGNoZWNrIGZhaWxzLCBvdGhlcndpc2UgYG51bGxgLlxuICovXG5leHBvcnQgY29uc3QgZXVpRWRpdG9yTWF4TGVuZ3RoID1cbiAgICAobWF4TGVuZ3RoOiBudW1iZXIpOiBWYWxpZGF0b3JGbiA9PlxuICAgIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IG1heExlbmd0aDogeyBtYXhMZW5ndGg6IG51bWJlcjsgYWN0dWFsOiBudW1iZXIgfSB9IHwgbnVsbCA9PiB7XG4gICAgICAgIGlmIChjb250cm9sLnZhbHVlKSB7XG4gICAgICAgICAgICBsZXQgYWN0dWFsID0gMDtcbiAgICAgICAgICAgIGlmIChpc0pzb24oY29udHJvbC52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gSlNPTi5wYXJzZShjb250cm9sLnZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAub3BzLmZpbHRlcigoYzogeyBhdHRyaWJ1dGVzOiBzdHJpbmc7IGluc2VydDogc3RyaW5nIH0pID0+IHR5cGVvZiBjLmluc2VydCA9PT0gJ3N0cmluZycpXG4gICAgICAgICAgICAgICAgICAgIC5tYXAoKGM6IHsgYXR0cmlidXRlczogc3RyaW5nOyBpbnNlcnQ6IHN0cmluZyB9KSA9PiBjLmluc2VydC5yZXBsYWNlKC9cXG4vZywgJycpKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGpzb25TdHJpcHBlZENvbnRlbnQgPSBjb250ZW50LmpvaW4oJycpO1xuICAgICAgICAgICAgICAgIGFjdHVhbCA9IGpzb25TdHJpcHBlZENvbnRlbnQubGVuZ3RoO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZWdleCA9IC8oPChbXj5dKyk+KS9naTtcbiAgICAgICAgICAgICAgICBjb25zdCB0YWdzU3RyaXBwZWRDb250ZW50ID0gY29udHJvbC52YWx1ZS5yZXBsYWNlKHJlZ2V4LCAnJyk7XG4gICAgICAgICAgICAgICAgYWN0dWFsID0gdGFnc1N0cmlwcGVkQ29udGVudC5sZW5ndGg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBhY3R1YWwgPiBtYXhMZW5ndGggPyB7IG1heExlbmd0aDogeyBtYXhMZW5ndGgsIGFjdHVhbCB9IH0gOiBudWxsO1xuICAgICAgICB9XG4gICAgfTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFZhbGlkYXRvciB0aGF0IHJlcXVpcmVzIHRoZSBudW1iZXIgb2Ygd29yZHMgaW4gdGhlIGVkaXRvciwgb3V0IG9mIEhUTUwgdGFncyBvciBKU09OIHN0cnVjdHVyZSwgdG8gYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsXG4gKiB0byB0aGUgcHJvdmlkZWQgbWluaW11bSBudW1iZXIuXG4gKlxuICogQHVzYWdlTm90ZXNcbiAqIFZhbGlkYXRlIHRoYXQgdGhlIGVkaXRvciBoYXMgYSBtaW5pbXVtIG9mIDUgd29yZHM6XG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZWRpdG9yID0gbmV3IEZvcm1Db250cm9sKCduZyBhbmd1bGFyJywgZXVpRWRpdG9yTWluV29yZHMoNSkpO1xuICogY29uc29sZS5sb2coZWRpdG9yLmVycm9ycyk7IC8vIHsgbWluV29yZHM6IHsgbWluV29yZHM6IDUsIGFjdHVhbDogMiB9IH1cbiAqIGBgYFxuICpcbiAqIEByZXR1cm5zIEEgdmFsaWRhdG9yIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBlcnJvciBtYXAgd2l0aCB0aGVcbiAqIGBtaW5Xb3Jkc2AgaWYgdGhlIHZhbGlkYXRpb24gY2hlY2sgZmFpbHMsIG90aGVyd2lzZSBgbnVsbGAuXG4gKi9cbmV4cG9ydCBjb25zdCBldWlFZGl0b3JNaW5Xb3JkcyA9XG4gICAgKG1pbldvcmRzOiBudW1iZXIpOiBWYWxpZGF0b3JGbiA9PlxuICAgIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IG1pbldvcmRzOiB7IG1pbldvcmRzOiBudW1iZXI7IGFjdHVhbDogbnVtYmVyIH0gfSB8IG51bGwgPT4ge1xuICAgICAgICBpZiAoY29udHJvbC52YWx1ZSkge1xuICAgICAgICAgICAgbGV0IGFjdHVhbCA9IDA7XG4gICAgICAgICAgICBpZiAoaXNKc29uKGNvbnRyb2wudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udGVudCA9IEpTT04ucGFyc2UoY29udHJvbC52YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgLm9wcy5maWx0ZXIoKGM6IHsgYXR0cmlidXRlczogc3RyaW5nOyBpbnNlcnQ6IHN0cmluZyB9KSA9PiB0eXBlb2YgYy5pbnNlcnQgPT09ICdzdHJpbmcnKVxuICAgICAgICAgICAgICAgICAgICAubWFwKChjOiB7IGF0dHJpYnV0ZXM6IHN0cmluZzsgaW5zZXJ0OiBzdHJpbmcgfSkgPT4gYy5pbnNlcnQucmVwbGFjZSgvXFxuL2csICcgJykpO1xuXG4gICAgICAgICAgICAgICAgY29uc3QganNvblN0cmlwcGVkQ29udGVudCA9IGNvbnRlbnQuam9pbignICcpO1xuICAgICAgICAgICAgICAgIGFjdHVhbCA9IGpzb25TdHJpcHBlZENvbnRlbnQudHJpbSgpLnNwbGl0KC9cXHMrLykubGVuZ3RoO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBleGNlcHRUYWdzID0gLzxzdHJvbmc+fDxcXC9zdHJvbmc+fDxiPnw8XFwvYj58PGk+fDxcXC9pPnw8ZW0+fDxcXC9lbT58PHM+fDxcXC9zPnw8c3RyaWtlPnw8XFwvc3RyaWtlPnw8dT58PFxcL3U+L2dtO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlZ2V4ID0gLyg8KFtePl0rKT4pL2dpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRhZ3NTdHJpcHBlZENvbnRlbnQ6IHN0cmluZyA9IGNvbnRyb2wudmFsdWUucmVwbGFjZShleGNlcHRUYWdzLCAnJykucmVwbGFjZShyZWdleCwgJyAnKS5yZXBsYWNlKCcgICcsICcgJyk7XG4gICAgICAgICAgICAgICAgYWN0dWFsID0gdGFnc1N0cmlwcGVkQ29udGVudC50cmltKCkuc3BsaXQoL1xccysvKS5maWx0ZXIodCA9PiB0ICE9PSAnJykubGVuZ3RoO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gYWN0dWFsIDwgbWluV29yZHMgPyB7IG1pbldvcmRzOiB7IG1pbldvcmRzLCBhY3R1YWwgfSB9IDogbnVsbDtcbiAgICAgICAgfVxuICAgIH07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKiBWYWxpZGF0b3IgdGhhdCByZXF1aXJlcyB0aGUgbnVtYmVyIG9mIHdvcmRzIGluIHRoZSBlZGl0b3IsIG91dCBvZiBIVE1MIHRhZ3Mgb3IgSlNPTiBzdHJ1Y3R1cmUsIHRvIGJlIGxlc3MgdGhhbiBvciBlcXVhbFxuICogdG8gdGhlIHByb3ZpZGVkIG1heGltdW0gbnVtYmVyLlxuICpcbiAqIEB1c2FnZU5vdGVzXG4gKiBWYWxpZGF0ZSB0aGF0IHRoZSBlZGl0b3IgaGFzIGEgbWF4aW11bSBvZiAxMCB3b3JkczpcbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBlZGl0b3IgPSBuZXcgRm9ybUNvbnRyb2woJ25nIGFuZ3VsYXIgcmVhY3RpdmUgZm9ybXMgZWRpdG9yIHd5c2l3eWcgZXVpIGVjIGV1cm9wYSBucG0gbm9kZScsIGV1aUVkaXRvck1heFdvcmRzKDEwKSk7XG4gKiBjb25zb2xlLmxvZyhlZGl0b3IuZXJyb3JzKTsgLy8geyBtYXhXb3JkczogeyBtYXhXb3JkczogMTAsIGFjdHVhbDogMTEgfSB9XG4gKiBgYGBcbiAqXG4gKiBAcmV0dXJucyBBIHZhbGlkYXRvciBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gZXJyb3IgbWFwIHdpdGggdGhlXG4gKiBgbWF4V29yZHNgIGlmIHRoZSB2YWxpZGF0aW9uIGNoZWNrIGZhaWxzLCBvdGhlcndpc2UgYG51bGxgLlxuICovXG5leHBvcnQgY29uc3QgZXVpRWRpdG9yTWF4V29yZHMgPVxuICAgIChtYXhXb3JkczogbnVtYmVyKTogVmFsaWRhdG9yRm4gPT5cbiAgICAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBtYXhXb3JkczogeyBtYXhXb3JkczogbnVtYmVyOyBhY3R1YWw6IG51bWJlciB9IH0gfCBudWxsID0+IHtcbiAgICAgICAgaWYgKGNvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgICAgIGxldCBhY3R1YWwgPSAwO1xuICAgICAgICAgICAgaWYgKGlzSnNvbihjb250cm9sLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBKU09OLnBhcnNlKGNvbnRyb2wudmFsdWUpXG4gICAgICAgICAgICAgICAgICAgIC5vcHMuZmlsdGVyKChjOiB7IGF0dHJpYnV0ZXM6IHN0cmluZzsgaW5zZXJ0OiBzdHJpbmcgfSkgPT4gdHlwZW9mIGMuaW5zZXJ0ID09PSAnc3RyaW5nJylcbiAgICAgICAgICAgICAgICAgICAgLm1hcCgoYzogeyBhdHRyaWJ1dGVzOiBzdHJpbmc7IGluc2VydDogc3RyaW5nIH0pID0+IGMuaW5zZXJ0LnJlcGxhY2UoL1xcbi9nLCAnICcpKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGpzb25TdHJpcHBlZENvbnRlbnQgPSBjb250ZW50LmpvaW4oJyAnKTtcbiAgICAgICAgICAgICAgICBhY3R1YWwgPSBqc29uU3RyaXBwZWRDb250ZW50LnRyaW0oKS5zcGxpdCgvXFxzKy8pLmxlbmd0aDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXhjZXB0VGFncyA9IC88c3Ryb25nPnw8XFwvc3Ryb25nPnw8Yj58PFxcL2I+fDxpPnw8XFwvaT58PGVtPnw8XFwvZW0+fDxzPnw8XFwvcz58PHN0cmlrZT58PFxcL3N0cmlrZT58PHU+fDxcXC91Pi9nbTtcbiAgICAgICAgICAgICAgICBjb25zdCByZWdleCA9IC8oPChbXj5dKyk+KS9naTtcbiAgICAgICAgICAgICAgICBjb25zdCB0YWdzU3RyaXBwZWRDb250ZW50OiBzdHJpbmcgPSBjb250cm9sLnZhbHVlLnJlcGxhY2UoZXhjZXB0VGFncywgJycpLnJlcGxhY2UocmVnZXgsICcgJykucmVwbGFjZSgnICAnLCAnICcpO1xuICAgICAgICAgICAgICAgIGFjdHVhbCA9IHRhZ3NTdHJpcHBlZENvbnRlbnQudHJpbSgpLnNwbGl0KC9cXHMrLykuZmlsdGVyKHQgPT4gdCAhPT0gJycpLmxlbmd0aDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGFjdHVhbCA+IG1heFdvcmRzID8geyBtYXhXb3JkczogeyBtYXhXb3JkcywgYWN0dWFsIH0gfSA6IG51bGw7XG4gICAgICAgIH1cbiAgICB9O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogVmFsaWRhdG9yIHRoYXQgcmVxdWlyZXMgdGhlIG51bWJlciBvZiBieXRlcyBpbiB0aGUgZWRpdG9yLCB3aXRoIEhUTUwgdGFncyBvciBKU09OIHN0cnVjdHVyZSwgdG8gYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsXG4gKiB0byB0aGUgcHJvdmlkZWQgbWluaW11bSBudW1iZXIuXG4gKlxuICogQHVzYWdlTm90ZXNcbiAqIFZhbGlkYXRlIHRoYXQgdGhlIGVkaXRvciBoYXMgYSBtaW5pbXVtIG9mIDIwIGJ5dGVzOlxuICpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGVkaXRvciA9IG5ldyBGb3JtQ29udHJvbCgnPHA+ZXVyb3BhLmV1PC9wPicsIGV1aUVkaXRvck1pbkJ5dGVzKDIwKSk7XG4gKiBjb25zb2xlLmxvZyhlZGl0b3IuZXJyb3JzKTsgLy8geyBtaW5CeXRlczogeyBtaW5CeXRlczogMjAsIGFjdHVhbDogMTYgfSB9XG4gKiBgYGBcbiAqXG4gKiBAcmV0dXJucyBBIHZhbGlkYXRvciBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gZXJyb3IgbWFwIHdpdGggdGhlXG4gKiBgbWluQnl0ZXNgIGlmIHRoZSB2YWxpZGF0aW9uIGNoZWNrIGZhaWxzLCBvdGhlcndpc2UgYG51bGxgLlxuICovXG5leHBvcnQgY29uc3QgZXVpRWRpdG9yTWluQnl0ZXMgPVxuICAgIChtaW5CeXRlczogbnVtYmVyKTogVmFsaWRhdG9yRm4gPT5cbiAgICAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBtaW5CeXRlczogeyBtaW5CeXRlczogbnVtYmVyOyBhY3R1YWw6IG51bWJlciB9IH0gfCBudWxsID0+IHtcbiAgICAgICAgaWYgKGNvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgICAgIGxldCBhY3R1YWwgPSAwO1xuICAgICAgICAgICAgY29uc3QgbSA9IGVuY29kZVVSSUNvbXBvbmVudChjb250cm9sLnZhbHVlKS5tYXRjaCgvJVs4OUFCYWJdL2cpO1xuICAgICAgICAgICAgYWN0dWFsID0gY29udHJvbC52YWx1ZS5sZW5ndGggKyAobSA/IG0ubGVuZ3RoIDogMCk7XG5cbiAgICAgICAgICAgIHJldHVybiBhY3R1YWwgPCBtaW5CeXRlcyA/IHsgbWluQnl0ZXM6IHsgbWluQnl0ZXMsIGFjdHVhbCB9IH0gOiBudWxsO1xuICAgICAgICB9XG4gICAgfTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFZhbGlkYXRvciB0aGF0IHJlcXVpcmVzIHRoZSBudW1iZXIgb2YgYnl0ZXMgaW4gdGhlIGVkaXRvciwgd2l0aCBIVE1MIHRhZ3Mgb3IgSlNPTiBzdHJ1Y3R1cmUsIHRvIGJlIGxlc3MgdGhhbiBvciBlcXVhbFxuICogdG8gdGhlIHByb3ZpZGVkIG1pbmltdW0gbnVtYmVyLlxuICpcbiAqIEB1c2FnZU5vdGVzXG4gKiBWYWxpZGF0ZSB0aGF0IHRoZSBlZGl0b3IgaGFzIGEgbWF4aW11bSBvZiAyMCBieXRlczpcbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBlZGl0b3IgPSBuZXcgRm9ybUNvbnRyb2woJzxwPmV1cm9wYS5ldSBzaXRlPC9wPicsIGV1aUVkaXRvck1pbkJ5dGVzKDIwKSk7XG4gKiBjb25zb2xlLmxvZyhlZGl0b3IuZXJyb3JzKTsgLy8geyBtYXhCeXRlczogeyBtYXhCeXRlczogMjAsIGFjdHVhbDogMjEgfSB9XG4gKiBgYGBcbiAqXG4gKiBAcmV0dXJucyBBIHZhbGlkYXRvciBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gZXJyb3IgbWFwIHdpdGggdGhlXG4gKiBgbWF4Qnl0ZXNgIGlmIHRoZSB2YWxpZGF0aW9uIGNoZWNrIGZhaWxzLCBvdGhlcndpc2UgYG51bGxgLlxuICovXG5leHBvcnQgY29uc3QgZXVpRWRpdG9yTWF4Qnl0ZXMgPVxuICAgIChtYXhCeXRlczogbnVtYmVyKTogVmFsaWRhdG9yRm4gPT5cbiAgICAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBtYXhCeXRlczogeyBtYXhCeXRlczogbnVtYmVyOyBhY3R1YWw6IG51bWJlciB9IH0gfCBudWxsID0+IHtcbiAgICAgICAgaWYgKGNvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgICAgIGxldCBhY3R1YWwgPSAwO1xuICAgICAgICAgICAgaWYgKGlzSnNvbihjb250cm9sLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGFjdHVhbCA9IGJ5dGVMZW5ndGgoY29udHJvbC52YWx1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IG0gPSBlbmNvZGVVUklDb21wb25lbnQoY29udHJvbC52YWx1ZSkubWF0Y2goLyVbODlBQmFiXS9nKTtcbiAgICAgICAgICAgICAgICBhY3R1YWwgPSBjb250cm9sLnZhbHVlLmxlbmd0aCArIChtID8gbS5sZW5ndGggOiAwKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGFjdHVhbCA+IG1heEJ5dGVzID8geyBtYXhCeXRlczogeyBtYXhCeXRlcywgYWN0dWFsIH0gfSA6IG51bGw7XG4gICAgICAgIH1cbiAgICB9O1xuIl19
|
218
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWVkaXRvci52YWxpZGF0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vZXh0ZXJuYWxzL2V1aS1lZGl0b3IvdmFsaWRhdG9ycy9ldWktZWRpdG9yLnZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxNQUFNLEdBQUcsQ0FBQyxLQUFhLEVBQVcsRUFBRTtJQUN0QyxJQUFJO1FBQ0EsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUNyQjtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1IsT0FBTyxLQUFLLENBQUM7S0FDaEI7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDLENBQUM7QUFFRixNQUFNLFVBQVUsR0FBRyxDQUFDLEtBQWEsRUFBVSxFQUFFO0lBQ3pDLDRDQUE0QztJQUM1QyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQ3JCLEtBQUssSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUN4QyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksS0FBSyxFQUFFO1lBQzlCLENBQUMsRUFBRSxDQUFDO1NBQ1A7YUFBTSxJQUFJLElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxJQUFJLE1BQU0sRUFBRTtZQUN2QyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ1Y7UUFDRCxJQUFJLElBQUksSUFBSSxNQUFNLElBQUksSUFBSSxJQUFJLE1BQU0sRUFBRTtZQUNsQyxDQUFDLEVBQUUsQ0FBQztTQUNQO0tBQ0o7SUFDRCxPQUFPLENBQUMsQ0FBQztBQUNiLENBQUMsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILE1BQU0s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SSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3RDO2FBQU07WUFDSCxNQUFNLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ2hFLE1BQU0sR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdEQ7UUFFRCxPQUFPLE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztLQUN4RTtBQUNMLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmNvbnN0IGlzSnNvbiA9ICh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgICAgSlNPTi5wYXJzZSh2YWx1ZSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufTtcblxuY29uc3QgYnl0ZUxlbmd0aCA9ICh2YWx1ZTogc3RyaW5nKTogbnVtYmVyID0+IHtcbiAgICAvLyByZXR1cm5zIHRoZSBieXRlIGxlbmd0aCBvZiBhbiB1dGY4IHN0cmluZ1xuICAgIGxldCBzID0gdmFsdWUubGVuZ3RoO1xuICAgIGZvciAobGV0IGkgPSB2YWx1ZS5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICBjb25zdCBjb2RlID0gdmFsdWUuY2hhckNvZGVBdChpKTtcbiAgICAgICAgaWYgKGNvZGUgPiAweDdmICYmIGNvZGUgPD0gMHg3ZmYpIHtcbiAgICAgICAgICAgIHMrKztcbiAgICAgICAgfSBlbHNlIGlmIChjb2RlID4gMHg3ZmYgJiYgY29kZSA8PSAweGZmZmYpIHtcbiAgICAgICAgICAgIHMgKz0gMjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29kZSA+PSAweGRjMDAgJiYgY29kZSA8PSAweGRmZmYpIHtcbiAgICAgICAgICAgIGktLTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcztcbn07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKiBWYWxpZGF0b3IgdGhhdCByZXF1aXJlcyB0aGUgbGVuZ3RoIG9mIHRoZSBlZGl0b3IncyBjb250ZW50LCBvdXQgb2YgSFRNTCB0YWdzIG9yIEpTT04gc3RydWN0dXJlLCB0byBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWxcbiAqIHRvIHRoZSBwcm92aWRlZCBtaW5pbXVtIGxlbmd0aC5cbiAqXG4gKiBAdXNhZ2VOb3Rlc1xuICogVmFsaWRhdGUgdGhhdCB0aGUgZWRpdG9yIGhhcyBhIG1pbmltdW0gb2YgNSBjaGFyYWN0ZXJzOlxuICpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGVkaXRvciA9IG5ldyBGb3JtQ29udHJvbCgnbmcnLCBldWlFZGl0b3JNaW5MZW5ndGgoNSkpO1xuICogY29uc29sZS5sb2coZWRpdG9yLmVycm9ycyk7IC8vIHsgbWlubGVuZ3RoOiB7IG1pbkxlbmd0aDogNSwgYWN0dWFsOiAyIH0gfVxuICogYGBgXG4gKlxuICogQHJldHVybnMgQSB2YWxpZGF0b3IgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIGVycm9yIG1hcCB3aXRoIHRoZVxuICogYG1pbmxlbmd0aGAgaWYgdGhlIHZhbGlkYXRpb24gY2hlY2sgZmFpbHMsIG90aGVyd2lzZSBgbnVsbGAuXG4gKi9cbmV4cG9ydCBjb25zdCBldWlFZGl0b3JNaW5MZW5ndGggPVxuICAgIChtaW5MZW5ndGg6IG51bWJlcik6IFZhbGlkYXRvckZuID0+XG4gICAgKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgbWluTGVuZ3RoOiB7IG1pbkxlbmd0aDogbnVtYmVyOyBhY3R1YWw6IG51bWJlciB9IH0gfCBudWxsID0+IHtcbiAgICAgICAgaWYgKGNvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgICAgIGxldCBhY3R1YWwgPSAwO1xuICAgICAgICAgICAgaWYgKGlzSnNvbihjb250cm9sLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBKU09OLnBhcnNlKGNvbnRyb2wudmFsdWUpXG4gICAgICAgICAgICAgICAgICAgIC5vcHMuZmlsdGVyKChjOiB7IGF0dHJpYnV0ZXM6IHN0cmluZzsgaW5zZXJ0OiBzdHJpbmcgfSkgPT4gdHlwZW9mIGMuaW5zZXJ0ID09PSAnc3RyaW5nJylcbiAgICAgICAgICAgICAgICAgICAgLm1hcCgoYzogeyBhdHRyaWJ1dGVzOiBzdHJpbmc7IGluc2VydDogc3RyaW5nIH0pID0+IGMuaW5zZXJ0LnJlcGxhY2UoL1xcbi9nLCAnJykpO1xuXG4gICAgICAgICAgICAgICAgY29uc3QganNvblN0cmlwcGVkQ29udGVudCA9IGNvbnRlbnQuam9pbignJyk7XG4gICAgICAgICAgICAgICAgYWN0dWFsID0ganNvblN0cmlwcGVkQ29udGVudC5sZW5ndGg7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlZ2V4ID0gLyg8KFtePl0rKT4pL2dpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRhZ3NTdHJpcHBlZENvbnRlbnQgPSBjb250cm9sLnZhbHVlLnJlcGxhY2UocmVnZXgsICcnKTtcbiAgICAgICAgICAgICAgICBhY3R1YWwgPSB0YWdzU3RyaXBwZWRDb250ZW50Lmxlbmd0aDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGFjdHVhbCA8IG1pbkxlbmd0aCA/IHsgbWluTGVuZ3RoOiB7IG1pbkxlbmd0aCwgYWN0dWFsIH0gfSA6IG51bGw7XG4gICAgICAgIH1cbiAgICB9O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogVmFsaWRhdG9yIHRoYXQgcmVxdWlyZXMgdGhlIGxlbmd0aCBvZiB0aGUgZWRpdG9yJ3MgY29udGVudCwgb3V0IG9mIEhUTUwgdGFncyBvciBKU09OIHN0cnVjdHVyZSwgdG8gYmUgbGVzcyB0aGFuIG9yIGVxdWFsXG4gKiB0byB0aGUgcHJvdmlkZWQgbWF4aW11bSBsZW5ndGguXG4gKlxuICogQHVzYWdlTm90ZXNcbiAqIFZhbGlkYXRlIHRoYXQgdGhlIGVkaXRvciBoYXMgYSBtYXhpbXVtIG9mIDEwIGNoYXJhY3RlcnM6XG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZWRpdG9yID0gbmV3IEZvcm1Db250cm9sKCduZyBhbmd1bGFyIHJlYWN0aXZlJywgZXVpRWRpdG9yTWF4TGVuZ3RoKDEwKSk7XG4gKiBjb25zb2xlLmxvZyhlZGl0b3IuZXJyb3JzKTsgLy8geyBtYXhMZW5ndGg6IHsgbWF4TGVuZ3RoOiAxMCwgYWN0dWFsOiAxOSB9IH1cbiAqIGBgYFxuICpcbiAqIEByZXR1cm5zIEEgdmFsaWRhdG9yIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBlcnJvciBtYXAgd2l0aCB0aGVcbiAqIGBtYXhsZW5ndGhgIGlmIHRoZSB2YWxpZGF0aW9uIGNoZWNrIGZhaWxzLCBvdGhlcndpc2UgYG51bGxgLlxuICovXG5leHBvcnQgY29uc3QgZXVpRWRpdG9yTWF4TGVuZ3RoID1cbiAgICAobWF4TGVuZ3RoOiBudW1iZXIpOiBWYWxpZGF0b3JGbiA9PlxuICAgIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IG1heExlbmd0aDogeyBtYXhMZW5ndGg6IG51bWJlcjsgYWN0dWFsOiBudW1iZXIgfSB9IHwgbnVsbCA9PiB7XG4gICAgICAgIGlmIChjb250cm9sLnZhbHVlKSB7XG4gICAgICAgICAgICBsZXQgYWN0dWFsID0gMDtcbiAgICAgICAgICAgIGlmIChpc0pzb24oY29udHJvbC52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gSlNPTi5wYXJzZShjb250cm9sLnZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAub3BzLmZpbHRlcigoYzogeyBhdHRyaWJ1dGVzOiBzdHJpbmc7IGluc2VydDogc3RyaW5nIH0pID0+IHR5cGVvZiBjLmluc2VydCA9PT0gJ3N0cmluZycpXG4gICAgICAgICAgICAgICAgICAgIC5tYXAoKGM6IHsgYXR0cmlidXRlczogc3RyaW5nOyBpbnNlcnQ6IHN0cmluZyB9KSA9PiBjLmluc2VydC5yZXBsYWNlKC9cXG4vZywgJycpKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGpzb25TdHJpcHBlZENvbnRlbnQgPSBjb250ZW50LmpvaW4oJycpO1xuICAgICAgICAgICAgICAgIGFjdHVhbCA9IGpzb25TdHJpcHBlZENvbnRlbnQubGVuZ3RoO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZWdleCA9IC8oPChbXj5dKyk+KS9naTtcbiAgICAgICAgICAgICAgICBjb25zdCB0YWdzU3RyaXBwZWRDb250ZW50ID0gY29udHJvbC52YWx1ZS5yZXBsYWNlKHJlZ2V4LCAnJyk7XG4gICAgICAgICAgICAgICAgYWN0dWFsID0gdGFnc1N0cmlwcGVkQ29udGVudC5sZW5ndGg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBhY3R1YWwgPiBtYXhMZW5ndGggPyB7IG1heExlbmd0aDogeyBtYXhMZW5ndGgsIGFjdHVhbCB9IH0gOiBudWxsO1xuICAgICAgICB9XG4gICAgfTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFZhbGlkYXRvciB0aGF0IHJlcXVpcmVzIHRoZSBudW1iZXIgb2Ygd29yZHMgaW4gdGhlIGVkaXRvciwgb3V0IG9mIEhUTUwgdGFncyBvciBKU09OIHN0cnVjdHVyZSwgdG8gYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsXG4gKiB0byB0aGUgcHJvdmlkZWQgbWluaW11bSBudW1iZXIuXG4gKlxuICogQHVzYWdlTm90ZXNcbiAqIFZhbGlkYXRlIHRoYXQgdGhlIGVkaXRvciBoYXMgYSBtaW5pbXVtIG9mIDUgd29yZHM6XG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZWRpdG9yID0gbmV3IEZvcm1Db250cm9sKCduZyBhbmd1bGFyJywgZXVpRWRpdG9yTWluV29yZHMoNSkpO1xuICogY29uc29sZS5sb2coZWRpdG9yLmVycm9ycyk7IC8vIHsgbWluV29yZHM6IHsgbWluV29yZHM6IDUsIGFjdHVhbDogMiB9IH1cbiAqIGBgYFxuICpcbiAqIEByZXR1cm5zIEEgdmFsaWRhdG9yIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBlcnJvciBtYXAgd2l0aCB0aGVcbiAqIGBtaW5Xb3Jkc2AgaWYgdGhlIHZhbGlkYXRpb24gY2hlY2sgZmFpbHMsIG90aGVyd2lzZSBgbnVsbGAuXG4gKi9cbmV4cG9ydCBjb25zdCBldWlFZGl0b3JNaW5Xb3JkcyA9XG4gICAgKG1pbldvcmRzOiBudW1iZXIpOiBWYWxpZGF0b3JGbiA9PlxuICAgIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IG1pbldvcmRzOiB7IG1pbldvcmRzOiBudW1iZXI7IGFjdHVhbDogbnVtYmVyIH0gfSB8IG51bGwgPT4ge1xuICAgICAgICBpZiAoY29udHJvbC52YWx1ZSkge1xuICAgICAgICAgICAgbGV0IGFjdHVhbCA9IDA7XG4gICAgICAgICAgICBpZiAoaXNKc29uKGNvbnRyb2wudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udGVudCA9IEpTT04ucGFyc2UoY29udHJvbC52YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgLm9wcy5maWx0ZXIoKGM6IHsgYXR0cmlidXRlczogc3RyaW5nOyBpbnNlcnQ6IHN0cmluZyB9KSA9PiB0eXBlb2YgYy5pbnNlcnQgPT09ICdzdHJpbmcnKVxuICAgICAgICAgICAgICAgICAgICAubWFwKChjOiB7IGF0dHJpYnV0ZXM6IHN0cmluZzsgaW5zZXJ0OiBzdHJpbmcgfSkgPT4gYy5pbnNlcnQucmVwbGFjZSgvXFxuL2csICcgJykpO1xuXG4gICAgICAgICAgICAgICAgY29uc3QganNvblN0cmlwcGVkQ29udGVudCA9IGNvbnRlbnQuam9pbignJyk7XG4gICAgICAgICAgICAgICAgYWN0dWFsID0ganNvblN0cmlwcGVkQ29udGVudC50cmltKCkuc3BsaXQoL1xccysvKS5sZW5ndGg7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGV4Y2VwdFRhZ3MgPSAvPHN0cm9uZz58PFxcL3N0cm9uZz58PGI+fDxcXC9iPnw8aT58PFxcL2k+fDxlbT58PFxcL2VtPnw8cz58PFxcL3M+fDxzdHJpa2U+fDxcXC9zdHJpa2U+fDx1Pnw8XFwvdT4vZ207XG4gICAgICAgICAgICAgICAgY29uc3QgcmVnZXggPSAvKDwoW14+XSspPikvZ2k7XG4gICAgICAgICAgICAgICAgY29uc3QgdGFnc1N0cmlwcGVkQ29udGVudDogc3RyaW5nID0gY29udHJvbC52YWx1ZS5yZXBsYWNlKGV4Y2VwdFRhZ3MsICcnKS5yZXBsYWNlKHJlZ2V4LCAnICcpLnJlcGxhY2UoJyAgJywgJyAnKTtcbiAgICAgICAgICAgICAgICBhY3R1YWwgPSB0YWdzU3RyaXBwZWRDb250ZW50LnRyaW0oKS5zcGxpdCgvXFxzKy8pLmZpbHRlcih0ID0+IHQgIT09ICcnKS5sZW5ndGg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBhY3R1YWwgPCBtaW5Xb3JkcyA/IHsgbWluV29yZHM6IHsgbWluV29yZHMsIGFjdHVhbCB9IH0gOiBudWxsO1xuICAgICAgICB9XG4gICAgfTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFZhbGlkYXRvciB0aGF0IHJlcXVpcmVzIHRoZSBudW1iZXIgb2Ygd29yZHMgaW4gdGhlIGVkaXRvciwgb3V0IG9mIEhUTUwgdGFncyBvciBKU09OIHN0cnVjdHVyZSwgdG8gYmUgbGVzcyB0aGFuIG9yIGVxdWFsXG4gKiB0byB0aGUgcHJvdmlkZWQgbWF4aW11bSBudW1iZXIuXG4gKlxuICogQHVzYWdlTm90ZXNcbiAqIFZhbGlkYXRlIHRoYXQgdGhlIGVkaXRvciBoYXMgYSBtYXhpbXVtIG9mIDEwIHdvcmRzOlxuICpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGVkaXRvciA9IG5ldyBGb3JtQ29udHJvbCgnbmcgYW5ndWxhciByZWFjdGl2ZSBmb3JtcyBlZGl0b3Igd3lzaXd5ZyBldWkgZWMgZXVyb3BhIG5wbSBub2RlJywgZXVpRWRpdG9yTWF4V29yZHMoMTApKTtcbiAqIGNvbnNvbGUubG9nKGVkaXRvci5lcnJvcnMpOyAvLyB7IG1heFdvcmRzOiB7IG1heFdvcmRzOiAxMCwgYWN0dWFsOiAxMSB9IH1cbiAqIGBgYFxuICpcbiAqIEByZXR1cm5zIEEgdmFsaWRhdG9yIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBlcnJvciBtYXAgd2l0aCB0aGVcbiAqIGBtYXhXb3Jkc2AgaWYgdGhlIHZhbGlkYXRpb24gY2hlY2sgZmFpbHMsIG90aGVyd2lzZSBgbnVsbGAuXG4gKi9cbmV4cG9ydCBjb25zdCBldWlFZGl0b3JNYXhXb3JkcyA9XG4gICAgKG1heFdvcmRzOiBudW1iZXIpOiBWYWxpZGF0b3JGbiA9PlxuICAgIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IG1heFdvcmRzOiB7IG1heFdvcmRzOiBudW1iZXI7IGFjdHVhbDogbnVtYmVyIH0gfSB8IG51bGwgPT4ge1xuICAgICAgICBpZiAoY29udHJvbC52YWx1ZSkge1xuICAgICAgICAgICAgbGV0IGFjdHVhbCA9IDA7XG4gICAgICAgICAgICBpZiAoaXNKc29uKGNvbnRyb2wudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udGVudCA9IEpTT04ucGFyc2UoY29udHJvbC52YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgLm9wcy5maWx0ZXIoKGM6IHsgYXR0cmlidXRlczogc3RyaW5nOyBpbnNlcnQ6IHN0cmluZyB9KSA9PiB0eXBlb2YgYy5pbnNlcnQgPT09ICdzdHJpbmcnKVxuICAgICAgICAgICAgICAgICAgICAubWFwKChjOiB7IGF0dHJpYnV0ZXM6IHN0cmluZzsgaW5zZXJ0OiBzdHJpbmcgfSkgPT4gYy5pbnNlcnQucmVwbGFjZSgvXFxuL2csICcgJykpO1xuXG4gICAgICAgICAgICAgICAgY29uc3QganNvblN0cmlwcGVkQ29udGVudCA9IGNvbnRlbnQuam9pbignJyk7XG4gICAgICAgICAgICAgICAgYWN0dWFsID0ganNvblN0cmlwcGVkQ29udGVudC50cmltKCkuc3BsaXQoL1xccysvKS5sZW5ndGg7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGV4Y2VwdFRhZ3MgPSAvPHN0cm9uZz58PFxcL3N0cm9uZz58PGI+fDxcXC9iPnw8aT58PFxcL2k+fDxlbT58PFxcL2VtPnw8cz58PFxcL3M+fDxzdHJpa2U+fDxcXC9zdHJpa2U+fDx1Pnw8XFwvdT4vZ207XG4gICAgICAgICAgICAgICAgY29uc3QgcmVnZXggPSAvKDwoW14+XSspPikvZ2k7XG4gICAgICAgICAgICAgICAgY29uc3QgdGFnc1N0cmlwcGVkQ29udGVudDogc3RyaW5nID0gY29udHJvbC52YWx1ZS5yZXBsYWNlKGV4Y2VwdFRhZ3MsICcnKS5yZXBsYWNlKHJlZ2V4LCAnICcpLnJlcGxhY2UoJyAgJywgJyAnKTtcbiAgICAgICAgICAgICAgICBhY3R1YWwgPSB0YWdzU3RyaXBwZWRDb250ZW50LnRyaW0oKS5zcGxpdCgvXFxzKy8pLmZpbHRlcih0ID0+IHQgIT09ICcnKS5sZW5ndGg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBhY3R1YWwgPiBtYXhXb3JkcyA/IHsgbWF4V29yZHM6IHsgbWF4V29yZHMsIGFjdHVhbCB9IH0gOiBudWxsO1xuICAgICAgICB9XG4gICAgfTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFZhbGlkYXRvciB0aGF0IHJlcXVpcmVzIHRoZSBudW1iZXIgb2YgYnl0ZXMgaW4gdGhlIGVkaXRvciwgd2l0aCBIVE1MIHRhZ3Mgb3IgSlNPTiBzdHJ1Y3R1cmUsIHRvIGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbFxuICogdG8gdGhlIHByb3ZpZGVkIG1pbmltdW0gbnVtYmVyLlxuICpcbiAqIEB1c2FnZU5vdGVzXG4gKiBWYWxpZGF0ZSB0aGF0IHRoZSBlZGl0b3IgaGFzIGEgbWluaW11bSBvZiAyMCBieXRlczpcbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBlZGl0b3IgPSBuZXcgRm9ybUNvbnRyb2woJzxwPmV1cm9wYS5ldTwvcD4nLCBldWlFZGl0b3JNaW5CeXRlcygyMCkpO1xuICogY29uc29sZS5sb2coZWRpdG9yLmVycm9ycyk7IC8vIHsgbWluQnl0ZXM6IHsgbWluQnl0ZXM6IDIwLCBhY3R1YWw6IDE2IH0gfVxuICogYGBgXG4gKlxuICogQHJldHVybnMgQSB2YWxpZGF0b3IgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIGVycm9yIG1hcCB3aXRoIHRoZVxuICogYG1pbkJ5dGVzYCBpZiB0aGUgdmFsaWRhdGlvbiBjaGVjayBmYWlscywgb3RoZXJ3aXNlIGBudWxsYC5cbiAqL1xuZXhwb3J0IGNvbnN0IGV1aUVkaXRvck1pbkJ5dGVzID1cbiAgICAobWluQnl0ZXM6IG51bWJlcik6IFZhbGlkYXRvckZuID0+XG4gICAgKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgbWluQnl0ZXM6IHsgbWluQnl0ZXM6IG51bWJlcjsgYWN0dWFsOiBudW1iZXIgfSB9IHwgbnVsbCA9PiB7XG4gICAgICAgIGlmIChjb250cm9sLnZhbHVlKSB7XG4gICAgICAgICAgICBsZXQgYWN0dWFsID0gMDtcbiAgICAgICAgICAgIGNvbnN0IG0gPSBlbmNvZGVVUklDb21wb25lbnQoY29udHJvbC52YWx1ZSkubWF0Y2goLyVbODlBQmFiXS9nKTtcbiAgICAgICAgICAgIGFjdHVhbCA9IGNvbnRyb2wudmFsdWUubGVuZ3RoICsgKG0gPyBtLmxlbmd0aCA6IDApO1xuXG4gICAgICAgICAgICByZXR1cm4gYWN0dWFsIDwgbWluQnl0ZXMgPyB7IG1pbkJ5dGVzOiB7IG1pbkJ5dGVzLCBhY3R1YWwgfSB9IDogbnVsbDtcbiAgICAgICAgfVxuICAgIH07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKiBWYWxpZGF0b3IgdGhhdCByZXF1aXJlcyB0aGUgbnVtYmVyIG9mIGJ5dGVzIGluIHRoZSBlZGl0b3IsIHdpdGggSFRNTCB0YWdzIG9yIEpTT04gc3RydWN0dXJlLCB0byBiZSBsZXNzIHRoYW4gb3IgZXF1YWxcbiAqIHRvIHRoZSBwcm92aWRlZCBtaW5pbXVtIG51bWJlci5cbiAqXG4gKiBAdXNhZ2VOb3Rlc1xuICogVmFsaWRhdGUgdGhhdCB0aGUgZWRpdG9yIGhhcyBhIG1heGltdW0gb2YgMjAgYnl0ZXM6XG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZWRpdG9yID0gbmV3IEZvcm1Db250cm9sKCc8cD5ldXJvcGEuZXUgc2l0ZTwvcD4nLCBldWlFZGl0b3JNaW5CeXRlcygyMCkpO1xuICogY29uc29sZS5sb2coZWRpdG9yLmVycm9ycyk7IC8vIHsgbWF4Qnl0ZXM6IHsgbWF4Qnl0ZXM6IDIwLCBhY3R1YWw6IDIxIH0gfVxuICogYGBgXG4gKlxuICogQHJldHVybnMgQSB2YWxpZGF0b3IgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIGVycm9yIG1hcCB3aXRoIHRoZVxuICogYG1heEJ5dGVzYCBpZiB0aGUgdmFsaWRhdGlvbiBjaGVjayBmYWlscywgb3RoZXJ3aXNlIGBudWxsYC5cbiAqL1xuZXhwb3J0IGNvbnN0IGV1aUVkaXRvck1heEJ5dGVzID1cbiAgICAobWF4Qnl0ZXM6IG51bWJlcik6IFZhbGlkYXRvckZuID0+XG4gICAgKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgbWF4Qnl0ZXM6IHsgbWF4Qnl0ZXM6IG51bWJlcjsgYWN0dWFsOiBudW1iZXIgfSB9IHwgbnVsbCA9PiB7XG4gICAgICAgIGlmIChjb250cm9sLnZhbHVlKSB7XG4gICAgICAgICAgICBsZXQgYWN0dWFsID0gMDtcbiAgICAgICAgICAgIGlmIChpc0pzb24oY29udHJvbC52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBhY3R1YWwgPSBieXRlTGVuZ3RoKGNvbnRyb2wudmFsdWUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtID0gZW5jb2RlVVJJQ29tcG9uZW50KGNvbnRyb2wudmFsdWUpLm1hdGNoKC8lWzg5QUJhYl0vZyk7XG4gICAgICAgICAgICAgICAgYWN0dWFsID0gY29udHJvbC52YWx1ZS5sZW5ndGggKyAobSA/IG0ubGVuZ3RoIDogMCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBhY3R1YWwgPiBtYXhCeXRlcyA/IHsgbWF4Qnl0ZXM6IHsgbWF4Qnl0ZXMsIGFjdHVhbCB9IH0gOiBudWxsO1xuICAgICAgICB9XG4gICAgfTtcbiJdfQ==
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"eui-menu.component.d.ts","sourceRoot":"","sources":["../../eui-menu/eui-menu.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAKH,MAAM,EAEN,YAAY,EACZ,SAAS,EACT,aAAa,EAGb,SAAS,EACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,MAAM,EAAE,cAAc,EAAuC,MAAM,iBAAiB,CAAC;AAI9F,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;;;AAK3D,qBAWa,gBAAiB,YAAW,MAAM,EAAE,SAAS,EAAE,SAAS;IAgC7D,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,KAAK;IACN,mBAAmB,EAAE,mBAAmB;IAjCnD,IACW,UAAU,IAAI,MAAM,CAM9B;IAEQ,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IAEY,WAAW,UAAS;IACpB,SAAS,UAAS;IAClB,QAAQ,UAAS;IACjB,UAAU,UAAS;IACnB,cAAc,UAAS;IACvB,MAAM,UAAS;IACf,eAAe,UAAS;IAEtD,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,CAAsB;IACpD,SAAS,EAAE,YAAY,CAAC,WAAW,CAAC,CAAmC;IAIjF,UAAU,EAAE,GAAG,EAAE,CAAC;IAClB,OAAO,CAAC,YAAY,CAAe;gBAGvB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,cAAc,EACtB,mBAAmB,EAAE,mBAAmB;
|
1
|
+
{"version":3,"file":"eui-menu.component.d.ts","sourceRoot":"","sources":["../../eui-menu/eui-menu.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAKH,MAAM,EAEN,YAAY,EACZ,SAAS,EACT,aAAa,EAGb,SAAS,EACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,MAAM,EAAE,cAAc,EAAuC,MAAM,iBAAiB,CAAC;AAI9F,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;;;AAK3D,qBAWa,gBAAiB,YAAW,MAAM,EAAE,SAAS,EAAE,SAAS;IAgC7D,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,KAAK;IACN,mBAAmB,EAAE,mBAAmB;IAjCnD,IACW,UAAU,IAAI,MAAM,CAM9B;IAEQ,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IAEY,WAAW,UAAS;IACpB,SAAS,UAAS;IAClB,QAAQ,UAAS;IACjB,UAAU,UAAS;IACnB,cAAc,UAAS;IACvB,MAAM,UAAS;IACf,eAAe,UAAS;IAEtD,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,CAAsB;IACpD,SAAS,EAAE,YAAY,CAAC,WAAW,CAAC,CAAmC;IAIjF,UAAU,EAAE,GAAG,EAAE,CAAC;IAClB,OAAO,CAAC,YAAY,CAAe;gBAGvB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,cAAc,EACtB,mBAAmB,EAAE,mBAAmB;IAInD,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAInC,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAmBzC,QAAQ,IAAI,IAAI;IAkChB,WAAW,IAAG,IAAI;IAMX,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IA6BhC,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAKvC,iBAAiB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAI1C,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAOnC,OAAO,CAAC,uBAAuB;IAI/B;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAevB;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;IAU7B;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAavB;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IAuBtB;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;IAkB5B;;;;;;;OAOG;IACH,OAAO,CAAC,mBAAmB;IAO3B;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;yCA9RhB,gBAAgB;2CAAhB,gBAAgB;0CAqS0hhB,OAAQ;wCAAR,OAAQ;uCAAR,OAAQ;yCAAR,OAAQ;6CAAR,OAAQ;qCAAR,OAAQ;8CAAR,OAAQ;CAD9jhB"}
|
@@ -1,10 +1,8 @@
|
|
1
|
-
import { AfterContentInit } from '@angular/core';
|
2
|
-
import { EuiTimelineComponent } from './eui-timeline.component';
|
3
1
|
import { BooleanInput } from '@angular/cdk/coercion';
|
4
2
|
import { BaseStatesDirective } from '@eui/components/shared';
|
5
3
|
import * as i0 from "@angular/core";
|
6
4
|
import * as i1 from "@eui/components/shared";
|
7
|
-
export declare class EuiTimelineItemComponent
|
5
|
+
export declare class EuiTimelineItemComponent {
|
8
6
|
baseStatesDirective: BaseStatesDirective;
|
9
7
|
get cssClasses(): string;
|
10
8
|
e2eAttr: string;
|
@@ -16,11 +14,11 @@ export declare class EuiTimelineItemComponent implements AfterContentInit {
|
|
16
14
|
timeStyleClass: string;
|
17
15
|
isLeftAligned: BooleanInput;
|
18
16
|
isGroup: BooleanInput;
|
19
|
-
|
20
|
-
constructor(uxTimelineItemsComponent: EuiTimelineComponent, baseStatesDirective: BaseStatesDirective);
|
21
|
-
ngAfterContentInit(): void;
|
17
|
+
constructor(baseStatesDirective: BaseStatesDirective);
|
22
18
|
private getCssClasses;
|
23
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<EuiTimelineItemComponent,
|
19
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<EuiTimelineItemComponent, never>;
|
24
20
|
static ɵcmp: i0.ɵɵComponentDeclaration<EuiTimelineItemComponent, "eui-timeline-item", never, { "e2eAttr": { "alias": "e2eAttr"; "required": false; }; "label": { "alias": "label"; "required": false; }; "subLabel": { "alias": "subLabel"; "required": false; }; "date": { "alias": "date"; "required": false; }; "dateStyleClass": { "alias": "dateStyleClass"; "required": false; }; "time": { "alias": "time"; "required": false; }; "timeStyleClass": { "alias": "timeStyleClass"; "required": false; }; "isLeftAligned": { "alias": "isLeftAligned"; "required": false; }; "isGroup": { "alias": "isGroup"; "required": false; }; }, {}, never, ["*"], false, [{ directive: typeof i1.BaseStatesDirective; inputs: { "euiSecondary": "euiSecondary"; "euiPrimary": "euiPrimary"; "euiSuccess": "euiSuccess"; "euiInfo": "euiInfo"; "euiWarning": "euiWarning"; "euiDanger": "euiDanger"; "euiAccent": "euiAccent"; "euiVariant": "euiVariant"; }; outputs: {}; }]>;
|
21
|
+
static ngAcceptInputType_isLeftAligned: unknown;
|
22
|
+
static ngAcceptInputType_isGroup: unknown;
|
25
23
|
}
|
26
24
|
//# sourceMappingURL=eui-timeline-item.component.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"eui-timeline-item.component.d.ts","sourceRoot":"","sources":["../../eui-timeline/eui-timeline-item.component.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"eui-timeline-item.component.d.ts","sourceRoot":"","sources":["../../eui-timeline/eui-timeline-item.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;;;AAE7D,qBAYa,wBAAwB;IAsBd,mBAAmB,EAAE,mBAAmB;IArB3D,IACW,UAAU,IAAI,MAAM,CAE9B;IAGD,OAAO,SAAuB;IAErB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,SAAM;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,SAAM;IAG7B,aAAa,EAAE,YAAY,CAAS;IAGpC,OAAO,EAAE,YAAY,CAAS;gBAEX,mBAAmB,EAAE,mBAAmB;IAE3D,OAAO,CAAC,aAAa;yCAxBZ,wBAAwB;2CAAxB,wBAAwB;4CA8Bun0B,OAAQ;sCAAR,OAAQ;CADnq0B"}
|
@@ -1,11 +1,17 @@
|
|
1
|
+
import { AfterContentInit, OnChanges, QueryList, SimpleChanges } from '@angular/core';
|
1
2
|
import { BooleanInput } from '@angular/cdk/coercion';
|
3
|
+
import { EuiTimelineItemComponent } from './eui-timeline-item.component';
|
2
4
|
import * as i0 from "@angular/core";
|
3
|
-
export declare class EuiTimelineComponent {
|
5
|
+
export declare class EuiTimelineComponent implements OnChanges, AfterContentInit {
|
4
6
|
get cssClasses(): string;
|
5
7
|
e2eAttr: string;
|
6
8
|
isLeftAligned: BooleanInput;
|
9
|
+
timelineItems: QueryList<EuiTimelineItemComponent>;
|
10
|
+
ngOnChanges(changes: SimpleChanges): void;
|
11
|
+
ngAfterContentInit(): void;
|
7
12
|
private getCssClasses;
|
8
13
|
static ɵfac: i0.ɵɵFactoryDeclaration<EuiTimelineComponent, never>;
|
9
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<EuiTimelineComponent, "eui-timeline", never, { "e2eAttr": { "alias": "e2eAttr"; "required": false; }; "isLeftAligned": { "alias": "isLeftAligned"; "required": false; }; }, {},
|
14
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<EuiTimelineComponent, "eui-timeline", never, { "e2eAttr": { "alias": "e2eAttr"; "required": false; }; "isLeftAligned": { "alias": "isLeftAligned"; "required": false; }; }, {}, ["timelineItems"], ["*"], false, never>;
|
15
|
+
static ngAcceptInputType_isLeftAligned: unknown;
|
10
16
|
}
|
11
17
|
//# sourceMappingURL=eui-timeline.component.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"eui-timeline.component.d.ts","sourceRoot":"","sources":["../../eui-timeline/eui-timeline.component.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"eui-timeline.component.d.ts","sourceRoot":"","sources":["../../eui-timeline/eui-timeline.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAMhB,SAAS,EACT,SAAS,EACT,aAAa,EAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;;AAEzE,qBAKa,oBAAqB,YAAW,SAAS,EAAE,gBAAgB;IACpE,IACW,UAAU,IAAI,MAAM,CAE9B;IAGD,OAAO,SAAkB;IAGzB,aAAa,EAAE,YAAY,CAAS;IAEO,aAAa,EAAE,SAAS,CAAC,wBAAwB,CAAC,CAAC;IAE9F,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAQzC,kBAAkB,IAAI,IAAI;IAM1B,OAAO,CAAC,aAAa;yCA5BZ,oBAAoB;2CAApB,oBAAoB;4CAgCsr0B,OAAQ;CAD9t0B"}
|
@@ -177,30 +177,6 @@ class EuiMenuComponent {
|
|
177
177
|
this.hasScrollToItem = false;
|
178
178
|
this.isClick = new EventEmitter();
|
179
179
|
this.itemClick = new EventEmitter();
|
180
|
-
const elementIsVisibleInViewport = (el, partiallyVisible = false) => {
|
181
|
-
const { top, left, bottom, right } = el.getBoundingClientRect();
|
182
|
-
const { innerHeight, innerWidth } = window;
|
183
|
-
return partiallyVisible
|
184
|
-
? ((top > 0 && top < innerHeight) ||
|
185
|
-
(bottom > 0 && bottom < innerHeight)) &&
|
186
|
-
((left > 0 && left < innerWidth) || (right > 0 && right < innerWidth))
|
187
|
-
: top >= 0 && left >= 0 && bottom <= innerHeight && right <= innerWidth;
|
188
|
-
};
|
189
|
-
this.subscription = this.router.events.subscribe((event) => {
|
190
|
-
if (event instanceof NavigationEnd) {
|
191
|
-
console.log(event.url);
|
192
|
-
const item = this.findMostRelevantItem(event.url, this.items);
|
193
|
-
console.log(item);
|
194
|
-
if (item && this.hasScrollToItem) {
|
195
|
-
setTimeout(_ => {
|
196
|
-
const element = document.getElementById(item.id);
|
197
|
-
if (!elementIsVisibleInViewport(element)) {
|
198
|
-
element.scrollIntoView({ behavior: 'smooth' });
|
199
|
-
}
|
200
|
-
}, 1);
|
201
|
-
}
|
202
|
-
}
|
203
|
-
});
|
204
180
|
}
|
205
181
|
stopPropagation(event) {
|
206
182
|
event.stopPropagation();
|
@@ -227,6 +203,31 @@ class EuiMenuComponent {
|
|
227
203
|
if (!this.searchFilterLabel) {
|
228
204
|
this.searchFilterLabel = 'Search filter';
|
229
205
|
}
|
206
|
+
const elementIsVisibleInViewport = (el, partiallyVisible = false) => {
|
207
|
+
const { top, left, bottom, right } = el.getBoundingClientRect();
|
208
|
+
const { innerHeight, innerWidth } = window;
|
209
|
+
return partiallyVisible
|
210
|
+
? ((top > 0 && top < innerHeight) ||
|
211
|
+
(bottom > 0 && bottom < innerHeight)) &&
|
212
|
+
((left > 0 && left < innerWidth) || (right > 0 && right < innerWidth))
|
213
|
+
: top >= 0 && left >= 0 && bottom <= innerHeight && right <= innerWidth;
|
214
|
+
};
|
215
|
+
// subscription to routes url changes for activating the scrollIntoView (optional)
|
216
|
+
if (this.hasScrollToItem) {
|
217
|
+
this.subscription = this.router.events.subscribe((event) => {
|
218
|
+
if (event instanceof NavigationEnd) {
|
219
|
+
const item = this.findMostRelevantItem(event.url, this.items);
|
220
|
+
if (item) {
|
221
|
+
setTimeout(_ => {
|
222
|
+
const element = document.getElementById(item.id);
|
223
|
+
if (!elementIsVisibleInViewport(element)) {
|
224
|
+
element.scrollIntoView({ behavior: 'smooth' });
|
225
|
+
}
|
226
|
+
}, 1);
|
227
|
+
}
|
228
|
+
}
|
229
|
+
});
|
230
|
+
}
|
230
231
|
}
|
231
232
|
ngOnDestroy() {
|
232
233
|
if (this.subscription) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"eui-components-eui-menu.mjs","sources":["../../eui-menu/eui-menu-item.component.ts","../../eui-menu/eui-menu-item.component.html","../../eui-menu/eui-menu.component.ts","../../eui-menu/eui-menu.component.html","../../eui-menu/eui-menu.module.ts","../../eui-menu/eui-components-eui-menu.ts"],"sourcesContent":["import {\n Component,\n HostBinding,\n ViewEncapsulation,\n Input,\n Output,\n EventEmitter,\n HostListener,\n OnInit,\n} from '@angular/core';\nimport { consumeEvent } from '@eui/core';\n\nimport { BaseStatesDirective } from '@eui/components/shared';\nimport { EuiMenuItem } from './models/eui-menu-item.model';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { coerceBoolean } from '@eui/base';\n\n@Component({\n selector: 'eui-menu-item',\n templateUrl: './eui-menu-item.component.html',\n hostDirectives: [\n {\n directive: BaseStatesDirective,\n },\n ],\n styleUrls: ['./styles/_index.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiMenuItemComponent implements OnInit {\n\n @HostBinding('attr.role') role = 'menuitem';\n @HostBinding('attr.aria-label') ariaLabel = '';\n\n @HostBinding('class')\n public get cssClasses(): string {\n return this.getCssClasses();\n }\n\n @Input() item: EuiMenuItem;\n @Output() expandToggle = new EventEmitter<EuiMenuItem>();\n @Output() itemClick = new EventEmitter<EuiMenuItem>();\n\n expandMenuLabel = 'Expand';\n collapseMenuLabel = 'Collapse';\n\n isUrlItem = false;\n isLinkItem = false;\n isLabelItem = false;\n\n @Input()\n @coerceBoolean\n hasIcon:BooleanInput = false;\n @Input()\n @coerceBoolean\n hasTooltip:BooleanInput = false;\n @Input()\n @coerceBoolean\n isCollapsed:BooleanInput = false;\n\n constructor(public baseStatesDirective: BaseStatesDirective) {}\n\n ngOnInit(): void {\n this.isUrlItem = (this.item.url || this.item.urlExternal || this.item.children || this.item.command) && !this.item.link;\n\n this.isLabelItem = !this.item.url && !this.item.urlExternal && !this.item.command && !this.item.children && !this.item.link;\n\n this.isLinkItem = !this.isUrlItem && !this.isLabelItem;\n this.ariaLabel = this.getAriaLabel();\n }\n\n @HostListener('click', ['$event'])\n public stopPropagation(event: Event): void {\n this.itemClick.emit(this.item);\n consumeEvent(event);\n }\n\n get menuItemTooltip(): string {\n if (this.hasTooltip && this.isCollapsed) {\n if (this.item.tooltip) {\n return this.item.tooltip;\n } else {\n return this.getTooltipFromItem(this.item);\n }\n } else {\n return null;\n }\n }\n\n public onClick(event: Event): void {\n this.itemClick.emit(this.item);\n consumeEvent(event);\n }\n\n public onExpandToggle(event: Event): void {\n this.expandToggle.emit(this.item);\n consumeEvent(event);\n }\n\n public onActionIconClick($event: MouseEvent): void {\n this.item.actionIcon?.action($event);\n consumeEvent(event);\n }\n\n private getTooltipFromItem(item: EuiMenuItem): string {\n if (item.tagLabel && item.label) {\n return item.label + ' (' + item.tagLabel + ')';\n } else if (item.label) {\n return item.label;\n } else if (item.tagLabel) {\n return item.tagLabel;\n }\n return null;\n }\n\n private getAriaLabel(): string {\n if (this.item.label) {\n return this.item.label;\n } else if (this.item.tagLabel) {\n return this.item.tagLabel;\n } else if (this.item.actionIcon && this.item.actionIcon.label) {\n return this.item.actionIcon.label;\n } else if (this.item.iconLabel) {\n return this.item.iconLabel;\n }\n return 'Eui menu item';\n }\n\n /**\n * Returns the default eui-menu-item class on the HostBinding function\n * @private\n */\n private getCssClasses(): string {\n return [this.baseStatesDirective.getCssClasses('eui-menu-item')].join(' ').trim();\n }\n}\n","<li\n *ngIf=\"isLabelItem && item.visible && item.filtered\"\n role=\"none\"\n id=\"{{item.id}}\"\n class=\"eui-menu-item eui-menu-item__category\"\n [attr.data-e2e]=\"item.e2eAttr\"\n [class.eui-menu-item--disabled]=\"item.disabled\"\n [attr.aria-disabled]=\"item.disabled\"\n [euiTooltip]=\"menuItemTooltip\"\n position=\"after\">\n <ng-template *ngTemplateOutlet=\"itemIconContent\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n\n <span class=\"eui-menu-item__category-label\">\n <span class=\"eui-menu-item__label\">{{ item.label }}</span>\n </span>\n</li>\n\n<li\n *ngIf=\"isUrlItem && item.visible && item.filtered\"\n role=\"none\"\n id=\"{{item.id}}\"\n [attr.data-e2e]=\"item.e2eAttr\"\n class=\"eui-menu-item\"\n [class.eui-menu-item--expanded]=\"item.expanded\">\n <a\n (click)=\"onClick($event)\"\n [tabindex]=\"item.disabled ? '-1' : '0'\"\n [routerLink]=\"item.url ? item.url : null\"\n class=\"eui-menu-item__link\"\n [class.eui-menu-item--disabled]=\"item.disabled\"\n [attr.aria-haspopup]=\"item?.children?.length > 0\"\n [attr.aria-disabled]=\"item.disabled\"\n [routerLinkActive]=\"item.url ? 'eui-menu-item__link--active' : ''\"\n [class.eui-menu-item__link--active]=\"item.active\"\n [euiTooltip]=\"menuItemTooltip\"\n position=\"after\">\n <ng-template *ngTemplateOutlet=\"linkContent\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </a>\n\n <ng-template *ngTemplateOutlet=\"content\"></ng-template>\n</li>\n\n<li\n *ngIf=\"isLinkItem && item.visible && item.filtered\"\n role=\"none\"\n id=\"{{item.id}}\"\n [attr.data-e2e]=\"item.e2eAttr\"\n class=\"eui-menu-item\"\n [class.eui-menu-item--expanded]=\"item.expanded\">\n <a\n (click)=\"onClick($event)\"\n [tabindex]=\"item.disabled ? '-1' : '0'\"\n class=\"eui-menu-item__link\"\n [class.eui-menu-item--disabled]=\"item.disabled\"\n [attr.aria-haspopup]=\"item?.children?.length > 0\"\n [attr.aria-disabled]=\"item.disabled\"\n [class.eui-menu-item__link--active]=\"item.active\"\n href=\"javascript:void(0)\"\n [euiTooltip]=\"menuItemTooltip\"\n position=\"after\">\n <ng-template *ngTemplateOutlet=\"linkContent\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </a>\n\n <ng-template *ngTemplateOutlet=\"content\"></ng-template>\n</li>\n\n<ng-template #linkContent>\n <ng-template *ngTemplateOutlet=\"itemIconContent\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n\n <eui-icon-svg\n *ngIf=\"item.hasMarker\"\n class=\"eui-menu-item__link-marker eui-menu-item__link-marker--default\"\n fillColor=\"{{ item?.markerTypeClass }}-100\"\n icon=\"eui-ellipse\"\n size=\"xs\"\n [attr.aria-label]=\"item.markerTypeClass + ' ' + 'marker'\">\n </eui-icon-svg>\n\n <span class=\"eui-menu-item__link-label\" [class.eui-menu-item--disabled]=\"item.disabled\" [attr.aria-disabled]=\"item.disabled\">\n <span class=\"eui-menu-item__label\">{{ item.label }}</span>\n\n <eui-icon-svg\n *ngIf=\"item.urlExternal && item.urlExternalTarget === '_blank'\"\n class=\"eui-menu-item__label-external\"\n icon=\"eui-ecl-external\"\n size=\"xs\">\n </eui-icon-svg>\n </span>\n\n <div class=\"eui-menu-item__link-right-content\">\n <eui-chip *ngIf=\"item.tagLabel\" euiSizeXS euiOutline styleClass=\"eui-menu-item__link-tag-label eui-chip--{{ item.tagTypeClass }}\">\n <span euiLabel class=\"eui-label\">{{ item.tagLabel }}</span>\n </eui-chip>\n\n <button\n *ngIf=\"item.actionIcon\"\n euiButton\n euiRounded\n euiIconButton\n euiSizeS\n euiBasicButton\n type=\"button\"\n class=\"eui-menu-item__link-action-icon eui-button--secondary\"\n [euiDisabled]=\"item.disabled\"\n [attr.aria-label]=\"item.actionIcon?.label\"\n (click)=\"onActionIconClick($event)\">\n <eui-icon-svg [icon]=\"item.actionIcon?.icon\" [fillColor]=\"item.actionIcon?.color\"></eui-icon-svg>\n </button>\n\n <button\n *ngIf=\"item.children?.length > 0\"\n euiButton\n euiRounded\n euiIconButton\n euiSizeS\n euiBasicButton\n euiSecondary\n type=\"button\"\n [euiDisabled]=\"item.disabled\"\n class=\"eui-menu-item__link-toggle\"\n [attr.aria-label]=\"item.expanded ? expandMenuLabel : collapseMenuLabel\"\n (click)=\"onExpandToggle($event)\">\n <eui-icon-svg *ngIf=\"item.expanded\" icon=\"eui-chevron-up\"></eui-icon-svg>\n <eui-icon-svg *ngIf=\"!item.expanded\" icon=\"eui-chevron-down\"></eui-icon-svg>\n </button>\n </div>\n</ng-template>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n\n<ng-template #itemIconContent>\n <eui-icon-svg\n *ngIf=\"hasIcon && item.iconSvgName; else svgNoIconDefault\"\n icon=\"{{ item.iconSvgName }}\"\n fillColor=\"{{ item.iconTypeClass }}\"\n size=\"s\">\n </eui-icon-svg>\n <ng-template #svgNoIconDefault>\n <eui-icon-svg\n *ngIf=\"isCollapsed && !item.hasMarker && !item.iconClass\"\n class=\"eui-menu-item__link-icon--default\"\n icon=\"ellipse\"\n set=\"sharp\"\n size=\"2xs\"\n [attr.aria-label]=\"item.iconLabel\">\n </eui-icon-svg>\n </ng-template>\n\n <span\n class=\"eui-menu-item__link-icon eui-icon\"\n [ngClass]=\"\n hasIcon && item.iconClass\n ? item.iconClass\n : isCollapsed && !item.hasMarker && !item.iconSvgName\n ? 'eui-menu-item__link-icon--none'\n : ''\n \"\n [attr.aria-label]=\"item.iconLabel\">\n </span>\n</ng-template>\n","import {\n Component,\n HostBinding,\n ViewEncapsulation,\n Input,\n OnInit,\n Output,\n EventEmitter,\n OnChanges,\n SimpleChanges,\n HostListener,\n booleanAttribute,\n OnDestroy,\n} from '@angular/core';\nimport { Router, ActivatedRoute, NavigationEnd, Event as RouterEvent } from '@angular/router';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\n\nimport { consumeEvent } from '@eui/core';\nimport { BaseStatesDirective } from '@eui/components/shared';\n\nimport { EuiMenuItem } from './models/eui-menu-item.model';\nimport { Subscription } from 'rxjs';\n\nimport * as uuid from 'uuid';\n\n@Component({\n selector: 'eui-menu',\n templateUrl: './eui-menu.component.html',\n styleUrls: ['./styles/_index.scss'],\n hostDirectives: [\n {\n directive: BaseStatesDirective,\n },\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiMenuComponent implements OnInit, OnChanges, OnDestroy {\n @HostBinding('class')\n public get cssClasses(): string {\n return [this.baseStatesDirective.getCssClasses('eui-menu-wrapper'),\n this.isCollapsed ? 'eui-menu--collapsed' : '',\n !this.hasIcons ? 'eui-menu--no-icons' : '',\n this.isFlat ? 'eui-menu--flat': '',\n ].join(' ').trim();\n }\n\n @Input() items: EuiMenuItem[];\n @Input() searchFilterLabel: string;\n @Input() externalLinkLabel: string;\n @Input() fragmentId: string;\n\n @Input({ transform: booleanAttribute }) isCollapsed = false;\n @Input({ transform: booleanAttribute }) hasFilter = false;\n @Input({ transform: booleanAttribute }) hasIcons = false;\n @Input({ transform: booleanAttribute }) hasTooltip = false;\n @Input({ transform: booleanAttribute }) expandAllItems = false;\n @Input({ transform: booleanAttribute }) isFlat = false;\n @Input({ transform: booleanAttribute }) hasScrollToItem = false;\n\n @Output() isClick: EventEmitter<boolean> = new EventEmitter();\n @Output() itemClick: EventEmitter<EuiMenuItem> = new EventEmitter<EuiMenuItem>();\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n itemsState: any[];\n private subscription: Subscription;\n\n constructor(\n private router: Router,\n private route: ActivatedRoute,\n public baseStatesDirective: BaseStatesDirective,\n ) {\n\n const elementIsVisibleInViewport = (el, partiallyVisible = false): boolean => {\n const { top, left, bottom, right } = el.getBoundingClientRect();\n const { innerHeight, innerWidth } = window;\n return partiallyVisible\n ? ((top > 0 && top < innerHeight) ||\n (bottom > 0 && bottom < innerHeight)) &&\n ((left > 0 && left < innerWidth) || (right > 0 && right < innerWidth))\n : top >= 0 && left >= 0 && bottom <= innerHeight && right <= innerWidth;\n };\n\n this.subscription = this.router.events.subscribe((event: RouterEvent) => {\n if (event instanceof NavigationEnd) {\n console.log(event.url);\n const item = this.findMostRelevantItem(event.url, this.items);\n console.log(item);\n if (item && this.hasScrollToItem) {\n setTimeout(_ => {\n const element = document.getElementById(item.id);\n if (!elementIsVisibleInViewport(element)) {\n element.scrollIntoView({ behavior: 'smooth' });\n }\n }, 1);\n }\n }\n });\n }\n\n @HostListener('click', ['$event'])\n stopPropagation(event: Event): void {\n event.stopPropagation();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.items) {\n this.items = this.configureItems(this.items);\n // get current url\n const currentUrl = this.router.url;\n // find an item that matches the current url or the most relevant one\n const item = this.findMostRelevantItem(currentUrl, this.items);\n // expand to that item\n if (item) {\n this.expandToGivenItem(item);\n }\n }\n\n // Expand / Collapse All items\n if (changes.expandAllItems) {\n this.items = this.setExpandedToAllItems(coerceBooleanProperty(changes.expandAllItems.currentValue), this.items);\n }\n }\n\n ngOnInit(): void {\n // Labels default values - TODO : translations\n if (!this.searchFilterLabel) {\n this.searchFilterLabel = 'Search filter';\n }\n }\n\n ngOnDestroy():void {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n public onClick(item: EuiMenuItem): void {\n if (!item.disabled) {\n if (item.urlExternal) {\n window.open(item.urlExternal, item.urlExternalTarget);\n } else if (item.url) {\n this.router.navigate([item.url], { relativeTo: this.route, fragment: this.fragmentId });\n } else {\n if (typeof item.command === 'function') {\n item.command();\n } else {\n this.onExpandToggle(item);\n }\n }\n\n if (item.link) {\n this.items = this.items?.map((it) => {\n it.active = false;\n if (it.id === item.id) {\n it.active = true;\n }\n return it;\n });\n }\n }\n\n this.isClick.emit(true);\n this.itemClick.emit(item);\n }\n\n public onExpandToggle(item: EuiMenuItem): void {\n this.onExpandToggled(item, this.items);\n // TODO: investigate why the above is needed. Can it be simply \"item.expanded = !item.expanded;\" ?\n }\n\n public onMenuFilterClick(event: MouseEvent): void {\n consumeEvent(event);\n }\n\n public onFilter(event: Event): void {\n const value = (event.target as HTMLInputElement).value;\n this._onToggleExpandAllItems(value ? true : false);\n\n this.items = this.filterMenuItems(this.items, value);\n }\n\n private _onToggleExpandAllItems(state: boolean): void {\n this.items = this.setExpandedToAllItems(state, this.items);\n }\n\n /**\n * filter all menu items given a value\n *\n * @param menuItems an array of menu items\n * @param filterValue the value to filter menu items\n * @private\n */\n private filterMenuItems(menuItems: EuiMenuItem[], filterValue: string): EuiMenuItem[] {\n return menuItems.map((item: EuiMenuItem) => {\n const found = item.label.toLowerCase().indexOf(filterValue.toLowerCase()) !== -1;\n if (item.children) {\n item.children = this.filterMenuItems(item.children, filterValue);\n item.filtered = item.children.filter((l) => l['filtered'] === true).length > 0;\n } else if (found) {\n item.filtered = found;\n } else {\n item.filtered = false;\n }\n return item;\n });\n }\n\n /**\n * expand / collapse all items\n *\n * @param isExpanded\n * @param items\n * @private\n */\n private setExpandedToAllItems(isExpanded, items: EuiMenuItem[]): EuiMenuItem[] {\n return items?.map((item) => {\n if (item.children) {\n item.expanded = isExpanded;\n item.children = this.setExpandedToAllItems(isExpanded, item.children);\n }\n return Object.assign(item, { visible: item.visible === undefined ? true : item.visible });\n });\n }\n\n /**\n * expand / collapse a menu item\n *\n * @param item The item where the \"expand\" had been toggled\n * @param items The items list (used for recursion)\n * @private\n */\n private onExpandToggled(item: EuiMenuItem, items: EuiMenuItem[]): void {\n const itemIdx = items?.indexOf(item);\n if (itemIdx > -1) {\n items[itemIdx].expanded = !items[itemIdx].expanded;\n } else {\n items.forEach((i) => {\n if (i.children) {\n this.onExpandToggled(item, i.children);\n }\n });\n }\n }\n\n /**\n * configure an array of items with visible, filtered and expand (in case of expandAllItems flag enabled) properties\n *\n * @param items An array of EuiMenuItem\n * @param parent the parent item of items if exists\n * @private\n */\n private configureItems(items: EuiMenuItem[], parent?: EuiMenuItem): EuiMenuItem[] {\n return items?.map((item) => {\n // recursion in case there are children\n if (item.children) {\n item.children = this.configureItems(item.children, item);\n // expand all parents with children\n if (this.expandAllItems) {\n item.expanded = true;\n }\n }\n // point to the parent\n if (parent) {\n item.parent = parent;\n }\n\n if (!item.id && this.hasScrollToItem) {\n item.id = uuid.v4();\n }\n\n return Object.assign(item, { visible: item.visible === undefined ? true : item.visible, filtered: true });\n });\n }\n\n /**\n * Given a URL and a list of items, it will expand the item that matches the URL. If not item matches exactly the url, then it will\n * match the item that is most relevant to that url.\n *\n * @param items\n * @param value\n * @private\n */\n private findMostRelevantItem(url: string, items: EuiMenuItem[], relevantItem?: EuiMenuItem): EuiMenuItem {\n if (!items) {\n return null;\n }\n\n items.forEach((item) => {\n if (item.url && url.indexOf(item.url.substr(1)) > -1) {\n relevantItem = this.getMostRelevantItem(url, relevantItem, item);\n }\n\n if (item.children) {\n relevantItem = this.findMostRelevantItem(url, item.children, relevantItem);\n }\n });\n\n return relevantItem;\n }\n\n /**\n * Given two items with url return the one with the most relevant url that matches given url\n *\n * @param url A URL to be matched with the one of given items\n * @param item1\n * @param item2\n * @private\n */\n private getMostRelevantItem(url: string, item1: EuiMenuItem, item2: EuiMenuItem): EuiMenuItem {\n const remainder1 = url.replace(item1?.url || '', '');\n const remainder2 = url.replace(item2?.url || '', '');\n\n return remainder1.length < remainder2.length ? item1 : item2;\n }\n\n /**\n * Given an item, if there's a parent expand it until you reach the root item\n *\n * @param item Given menu item\n * @private\n */\n private expandToGivenItem(item: EuiMenuItem): void {\n if (item.parent) {\n setTimeout(() => (item.parent.expanded = true));\n this.expandToGivenItem(item.parent);\n }\n }\n}\n","<div *ngIf=\"hasFilter && !isCollapsed\" class=\"eui-menu-filter\" (click)=\"onMenuFilterClick($event)\">\n <div class=\"eui-menu-filter__input-wrapper\">\n <input\n euiInputText\n [euiClearable]=\"true\"\n (input)=\"onFilter($event)\"\n class=\"eui-menu-filter__input\"\n [placeholder]=\"searchFilterLabel\"\n [attr.aria-label]=\"searchFilterLabel\" />\n <eui-icon-svg icon=\"eui-search\" class=\"eui-menu-filter__input-search\" fillColor=\"grey-50\" aria-label=\"Search Icon\"></eui-icon-svg>\n </div>\n</div>\n<ul euiList class=\"eui-menu\" role=\"menubar\" aria-orientation=\"vertical\">\n <span *ngIf=\"!items\" class=\"eui-menu--no-items\">No menu items defined</span>\n <ng-template ngFor let-item let-index [ngForOf]=\"items\">\n <ng-template [ngTemplateOutlet]=\"menuItemTemplateRef\" [ngTemplateOutletContext]=\"{ menuItem: item, index: index }\"> </ng-template>\n </ng-template>\n</ul>\n\n<!-- describe the recursive template of the menu item -->\n<ng-template #menuItemTemplateRef let-item=\"menuItem\" let-i=\"index\">\n <!-- render the menu item-->\n <eui-menu-item\n *ngIf=\"item.filtered\"\n [item]=\"item\"\n [hasIcon]=\"hasIcons\"\n [hasTooltip]=\"hasTooltip\"\n [isCollapsed]=\"isCollapsed\"\n (expandToggle)=\"onExpandToggle($event)\"\n (itemClick)=\"onClick($event)\">\n <!-- if the menu item has children, render the children -->\n <ul euiList *ngIf=\"item.children && item.expanded\" class=\"eui-menu eui-menu-sub\" role=\"menu\" [attr.aria-label]=\"item.label\">\n <ng-container *ngFor=\"let child of item.children; let childIndex = index\">\n <ng-template [ngTemplateOutlet]=\"menuItemTemplateRef\" [ngTemplateOutletContext]=\"{ menuItem: child, index: childIndex }\">\n </ng-template>\n </ng-container>\n </ul>\n </eui-menu-item>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { NgModule } from '@angular/core';\n\nimport { EuiIconModule } from '@eui/components/eui-icon';\nimport { EuiChipModule } from '@eui/components/eui-chip';\nimport { EuiButtonModule } from '@eui/components/eui-button';\nimport { EuiInputTextModule } from '@eui/components/eui-input-text';\n\nimport { EuiMenuComponent } from './eui-menu.component';\nimport { EuiMenuItemComponent } from './eui-menu-item.component';\nimport { EuiTooltipDirectiveModule } from '@eui/components/directives';\n\n@NgModule({\n imports: [CommonModule, RouterModule, EuiIconModule, EuiChipModule, EuiButtonModule, EuiInputTextModule, EuiTooltipDirectiveModule],\n declarations: [EuiMenuComponent, EuiMenuItemComponent],\n exports: [EuiMenuComponent],\n})\nexport class EuiMenuModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3","i1","i2","i5","i6.EuiMenuItemComponent"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"eui-components-eui-menu.mjs","sources":["../../eui-menu/eui-menu-item.component.ts","../../eui-menu/eui-menu-item.component.html","../../eui-menu/eui-menu.component.ts","../../eui-menu/eui-menu.component.html","../../eui-menu/eui-menu.module.ts","../../eui-menu/eui-components-eui-menu.ts"],"sourcesContent":["import {\n Component,\n HostBinding,\n ViewEncapsulation,\n Input,\n Output,\n EventEmitter,\n HostListener,\n OnInit,\n} from '@angular/core';\nimport { consumeEvent } from '@eui/core';\n\nimport { BaseStatesDirective } from '@eui/components/shared';\nimport { EuiMenuItem } from './models/eui-menu-item.model';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { coerceBoolean } from '@eui/base';\n\n@Component({\n selector: 'eui-menu-item',\n templateUrl: './eui-menu-item.component.html',\n hostDirectives: [\n {\n directive: BaseStatesDirective,\n },\n ],\n styleUrls: ['./styles/_index.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiMenuItemComponent implements OnInit {\n\n @HostBinding('attr.role') role = 'menuitem';\n @HostBinding('attr.aria-label') ariaLabel = '';\n\n @HostBinding('class')\n public get cssClasses(): string {\n return this.getCssClasses();\n }\n\n @Input() item: EuiMenuItem;\n @Output() expandToggle = new EventEmitter<EuiMenuItem>();\n @Output() itemClick = new EventEmitter<EuiMenuItem>();\n\n expandMenuLabel = 'Expand';\n collapseMenuLabel = 'Collapse';\n\n isUrlItem = false;\n isLinkItem = false;\n isLabelItem = false;\n\n @Input()\n @coerceBoolean\n hasIcon:BooleanInput = false;\n @Input()\n @coerceBoolean\n hasTooltip:BooleanInput = false;\n @Input()\n @coerceBoolean\n isCollapsed:BooleanInput = false;\n\n constructor(public baseStatesDirective: BaseStatesDirective) {}\n\n ngOnInit(): void {\n this.isUrlItem = (this.item.url || this.item.urlExternal || this.item.children || this.item.command) && !this.item.link;\n\n this.isLabelItem = !this.item.url && !this.item.urlExternal && !this.item.command && !this.item.children && !this.item.link;\n\n this.isLinkItem = !this.isUrlItem && !this.isLabelItem;\n this.ariaLabel = this.getAriaLabel();\n }\n\n @HostListener('click', ['$event'])\n public stopPropagation(event: Event): void {\n this.itemClick.emit(this.item);\n consumeEvent(event);\n }\n\n get menuItemTooltip(): string {\n if (this.hasTooltip && this.isCollapsed) {\n if (this.item.tooltip) {\n return this.item.tooltip;\n } else {\n return this.getTooltipFromItem(this.item);\n }\n } else {\n return null;\n }\n }\n\n public onClick(event: Event): void {\n this.itemClick.emit(this.item);\n consumeEvent(event);\n }\n\n public onExpandToggle(event: Event): void {\n this.expandToggle.emit(this.item);\n consumeEvent(event);\n }\n\n public onActionIconClick($event: MouseEvent): void {\n this.item.actionIcon?.action($event);\n consumeEvent(event);\n }\n\n private getTooltipFromItem(item: EuiMenuItem): string {\n if (item.tagLabel && item.label) {\n return item.label + ' (' + item.tagLabel + ')';\n } else if (item.label) {\n return item.label;\n } else if (item.tagLabel) {\n return item.tagLabel;\n }\n return null;\n }\n\n private getAriaLabel(): string {\n if (this.item.label) {\n return this.item.label;\n } else if (this.item.tagLabel) {\n return this.item.tagLabel;\n } else if (this.item.actionIcon && this.item.actionIcon.label) {\n return this.item.actionIcon.label;\n } else if (this.item.iconLabel) {\n return this.item.iconLabel;\n }\n return 'Eui menu item';\n }\n\n /**\n * Returns the default eui-menu-item class on the HostBinding function\n * @private\n */\n private getCssClasses(): string {\n return [this.baseStatesDirective.getCssClasses('eui-menu-item')].join(' ').trim();\n }\n}\n","<li\n *ngIf=\"isLabelItem && item.visible && item.filtered\"\n role=\"none\"\n id=\"{{item.id}}\"\n class=\"eui-menu-item eui-menu-item__category\"\n [attr.data-e2e]=\"item.e2eAttr\"\n [class.eui-menu-item--disabled]=\"item.disabled\"\n [attr.aria-disabled]=\"item.disabled\"\n [euiTooltip]=\"menuItemTooltip\"\n position=\"after\">\n <ng-template *ngTemplateOutlet=\"itemIconContent\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n\n <span class=\"eui-menu-item__category-label\">\n <span class=\"eui-menu-item__label\">{{ item.label }}</span>\n </span>\n</li>\n\n<li\n *ngIf=\"isUrlItem && item.visible && item.filtered\"\n role=\"none\"\n id=\"{{item.id}}\"\n [attr.data-e2e]=\"item.e2eAttr\"\n class=\"eui-menu-item\"\n [class.eui-menu-item--expanded]=\"item.expanded\">\n <a\n (click)=\"onClick($event)\"\n [tabindex]=\"item.disabled ? '-1' : '0'\"\n [routerLink]=\"item.url ? item.url : null\"\n class=\"eui-menu-item__link\"\n [class.eui-menu-item--disabled]=\"item.disabled\"\n [attr.aria-haspopup]=\"item?.children?.length > 0\"\n [attr.aria-disabled]=\"item.disabled\"\n [routerLinkActive]=\"item.url ? 'eui-menu-item__link--active' : ''\"\n [class.eui-menu-item__link--active]=\"item.active\"\n [euiTooltip]=\"menuItemTooltip\"\n position=\"after\">\n <ng-template *ngTemplateOutlet=\"linkContent\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </a>\n\n <ng-template *ngTemplateOutlet=\"content\"></ng-template>\n</li>\n\n<li\n *ngIf=\"isLinkItem && item.visible && item.filtered\"\n role=\"none\"\n id=\"{{item.id}}\"\n [attr.data-e2e]=\"item.e2eAttr\"\n class=\"eui-menu-item\"\n [class.eui-menu-item--expanded]=\"item.expanded\">\n <a\n (click)=\"onClick($event)\"\n [tabindex]=\"item.disabled ? '-1' : '0'\"\n class=\"eui-menu-item__link\"\n [class.eui-menu-item--disabled]=\"item.disabled\"\n [attr.aria-haspopup]=\"item?.children?.length > 0\"\n [attr.aria-disabled]=\"item.disabled\"\n [class.eui-menu-item__link--active]=\"item.active\"\n href=\"javascript:void(0)\"\n [euiTooltip]=\"menuItemTooltip\"\n position=\"after\">\n <ng-template *ngTemplateOutlet=\"linkContent\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </a>\n\n <ng-template *ngTemplateOutlet=\"content\"></ng-template>\n</li>\n\n<ng-template #linkContent>\n <ng-template *ngTemplateOutlet=\"itemIconContent\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n\n <eui-icon-svg\n *ngIf=\"item.hasMarker\"\n class=\"eui-menu-item__link-marker eui-menu-item__link-marker--default\"\n fillColor=\"{{ item?.markerTypeClass }}-100\"\n icon=\"eui-ellipse\"\n size=\"xs\"\n [attr.aria-label]=\"item.markerTypeClass + ' ' + 'marker'\">\n </eui-icon-svg>\n\n <span class=\"eui-menu-item__link-label\" [class.eui-menu-item--disabled]=\"item.disabled\" [attr.aria-disabled]=\"item.disabled\">\n <span class=\"eui-menu-item__label\">{{ item.label }}</span>\n\n <eui-icon-svg\n *ngIf=\"item.urlExternal && item.urlExternalTarget === '_blank'\"\n class=\"eui-menu-item__label-external\"\n icon=\"eui-ecl-external\"\n size=\"xs\">\n </eui-icon-svg>\n </span>\n\n <div class=\"eui-menu-item__link-right-content\">\n <eui-chip *ngIf=\"item.tagLabel\" euiSizeXS euiOutline styleClass=\"eui-menu-item__link-tag-label eui-chip--{{ item.tagTypeClass }}\">\n <span euiLabel class=\"eui-label\">{{ item.tagLabel }}</span>\n </eui-chip>\n\n <button\n *ngIf=\"item.actionIcon\"\n euiButton\n euiRounded\n euiIconButton\n euiSizeS\n euiBasicButton\n type=\"button\"\n class=\"eui-menu-item__link-action-icon eui-button--secondary\"\n [euiDisabled]=\"item.disabled\"\n [attr.aria-label]=\"item.actionIcon?.label\"\n (click)=\"onActionIconClick($event)\">\n <eui-icon-svg [icon]=\"item.actionIcon?.icon\" [fillColor]=\"item.actionIcon?.color\"></eui-icon-svg>\n </button>\n\n <button\n *ngIf=\"item.children?.length > 0\"\n euiButton\n euiRounded\n euiIconButton\n euiSizeS\n euiBasicButton\n euiSecondary\n type=\"button\"\n [euiDisabled]=\"item.disabled\"\n class=\"eui-menu-item__link-toggle\"\n [attr.aria-label]=\"item.expanded ? expandMenuLabel : collapseMenuLabel\"\n (click)=\"onExpandToggle($event)\">\n <eui-icon-svg *ngIf=\"item.expanded\" icon=\"eui-chevron-up\"></eui-icon-svg>\n <eui-icon-svg *ngIf=\"!item.expanded\" icon=\"eui-chevron-down\"></eui-icon-svg>\n </button>\n </div>\n</ng-template>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n\n<ng-template #itemIconContent>\n <eui-icon-svg\n *ngIf=\"hasIcon && item.iconSvgName; else svgNoIconDefault\"\n icon=\"{{ item.iconSvgName }}\"\n fillColor=\"{{ item.iconTypeClass }}\"\n size=\"s\">\n </eui-icon-svg>\n <ng-template #svgNoIconDefault>\n <eui-icon-svg\n *ngIf=\"isCollapsed && !item.hasMarker && !item.iconClass\"\n class=\"eui-menu-item__link-icon--default\"\n icon=\"ellipse\"\n set=\"sharp\"\n size=\"2xs\"\n [attr.aria-label]=\"item.iconLabel\">\n </eui-icon-svg>\n </ng-template>\n\n <span\n class=\"eui-menu-item__link-icon eui-icon\"\n [ngClass]=\"\n hasIcon && item.iconClass\n ? item.iconClass\n : isCollapsed && !item.hasMarker && !item.iconSvgName\n ? 'eui-menu-item__link-icon--none'\n : ''\n \"\n [attr.aria-label]=\"item.iconLabel\">\n </span>\n</ng-template>\n","import {\n Component,\n HostBinding,\n ViewEncapsulation,\n Input,\n OnInit,\n Output,\n EventEmitter,\n OnChanges,\n SimpleChanges,\n HostListener,\n booleanAttribute,\n OnDestroy,\n} from '@angular/core';\nimport { Router, ActivatedRoute, NavigationEnd, Event as RouterEvent } from '@angular/router';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\n\nimport { consumeEvent } from '@eui/core';\nimport { BaseStatesDirective } from '@eui/components/shared';\n\nimport { EuiMenuItem } from './models/eui-menu-item.model';\nimport { Subscription } from 'rxjs';\n\nimport * as uuid from 'uuid';\n\n@Component({\n selector: 'eui-menu',\n templateUrl: './eui-menu.component.html',\n styleUrls: ['./styles/_index.scss'],\n hostDirectives: [\n {\n directive: BaseStatesDirective,\n },\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiMenuComponent implements OnInit, OnChanges, OnDestroy {\n @HostBinding('class')\n public get cssClasses(): string {\n return [this.baseStatesDirective.getCssClasses('eui-menu-wrapper'),\n this.isCollapsed ? 'eui-menu--collapsed' : '',\n !this.hasIcons ? 'eui-menu--no-icons' : '',\n this.isFlat ? 'eui-menu--flat': '',\n ].join(' ').trim();\n }\n\n @Input() items: EuiMenuItem[];\n @Input() searchFilterLabel: string;\n @Input() externalLinkLabel: string;\n @Input() fragmentId: string;\n\n @Input({ transform: booleanAttribute }) isCollapsed = false;\n @Input({ transform: booleanAttribute }) hasFilter = false;\n @Input({ transform: booleanAttribute }) hasIcons = false;\n @Input({ transform: booleanAttribute }) hasTooltip = false;\n @Input({ transform: booleanAttribute }) expandAllItems = false;\n @Input({ transform: booleanAttribute }) isFlat = false;\n @Input({ transform: booleanAttribute }) hasScrollToItem = false;\n\n @Output() isClick: EventEmitter<boolean> = new EventEmitter();\n @Output() itemClick: EventEmitter<EuiMenuItem> = new EventEmitter<EuiMenuItem>();\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n itemsState: any[];\n private subscription: Subscription;\n\n constructor(\n private router: Router,\n private route: ActivatedRoute,\n public baseStatesDirective: BaseStatesDirective,\n ) {}\n\n @HostListener('click', ['$event'])\n stopPropagation(event: Event): void {\n event.stopPropagation();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.items) {\n this.items = this.configureItems(this.items);\n // get current url\n const currentUrl = this.router.url;\n // find an item that matches the current url or the most relevant one\n const item = this.findMostRelevantItem(currentUrl, this.items);\n // expand to that item\n if (item) {\n this.expandToGivenItem(item);\n }\n }\n\n // Expand / Collapse All items\n if (changes.expandAllItems) {\n this.items = this.setExpandedToAllItems(coerceBooleanProperty(changes.expandAllItems.currentValue), this.items);\n }\n }\n\n ngOnInit(): void {\n // Labels default values - TODO : translations\n if (!this.searchFilterLabel) {\n this.searchFilterLabel = 'Search filter';\n }\n\n const elementIsVisibleInViewport = (el, partiallyVisible = false): boolean => {\n const { top, left, bottom, right } = el.getBoundingClientRect();\n const { innerHeight, innerWidth } = window;\n return partiallyVisible\n ? ((top > 0 && top < innerHeight) ||\n (bottom > 0 && bottom < innerHeight)) &&\n ((left > 0 && left < innerWidth) || (right > 0 && right < innerWidth))\n : top >= 0 && left >= 0 && bottom <= innerHeight && right <= innerWidth;\n };\n\n // subscription to routes url changes for activating the scrollIntoView (optional)\n if (this.hasScrollToItem) {\n this.subscription = this.router.events.subscribe((event: RouterEvent) => {\n if (event instanceof NavigationEnd) {\n const item = this.findMostRelevantItem(event.url, this.items);\n if (item) {\n setTimeout(_ => {\n const element = document.getElementById(item.id);\n if (!elementIsVisibleInViewport(element)) {\n element.scrollIntoView({ behavior: 'smooth' });\n }\n }, 1);\n }\n }\n });\n }\n }\n\n ngOnDestroy():void {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n public onClick(item: EuiMenuItem): void {\n if (!item.disabled) {\n if (item.urlExternal) {\n window.open(item.urlExternal, item.urlExternalTarget);\n } else if (item.url) {\n this.router.navigate([item.url], { relativeTo: this.route, fragment: this.fragmentId });\n } else {\n if (typeof item.command === 'function') {\n item.command();\n } else {\n this.onExpandToggle(item);\n }\n }\n\n if (item.link) {\n this.items = this.items?.map((it) => {\n it.active = false;\n if (it.id === item.id) {\n it.active = true;\n }\n return it;\n });\n }\n }\n\n this.isClick.emit(true);\n this.itemClick.emit(item);\n }\n\n public onExpandToggle(item: EuiMenuItem): void {\n this.onExpandToggled(item, this.items);\n // TODO: investigate why the above is needed. Can it be simply \"item.expanded = !item.expanded;\" ?\n }\n\n public onMenuFilterClick(event: MouseEvent): void {\n consumeEvent(event);\n }\n\n public onFilter(event: Event): void {\n const value = (event.target as HTMLInputElement).value;\n this._onToggleExpandAllItems(value ? true : false);\n\n this.items = this.filterMenuItems(this.items, value);\n }\n\n private _onToggleExpandAllItems(state: boolean): void {\n this.items = this.setExpandedToAllItems(state, this.items);\n }\n\n /**\n * filter all menu items given a value\n *\n * @param menuItems an array of menu items\n * @param filterValue the value to filter menu items\n * @private\n */\n private filterMenuItems(menuItems: EuiMenuItem[], filterValue: string): EuiMenuItem[] {\n return menuItems.map((item: EuiMenuItem) => {\n const found = item.label.toLowerCase().indexOf(filterValue.toLowerCase()) !== -1;\n if (item.children) {\n item.children = this.filterMenuItems(item.children, filterValue);\n item.filtered = item.children.filter((l) => l['filtered'] === true).length > 0;\n } else if (found) {\n item.filtered = found;\n } else {\n item.filtered = false;\n }\n return item;\n });\n }\n\n /**\n * expand / collapse all items\n *\n * @param isExpanded\n * @param items\n * @private\n */\n private setExpandedToAllItems(isExpanded, items: EuiMenuItem[]): EuiMenuItem[] {\n return items?.map((item) => {\n if (item.children) {\n item.expanded = isExpanded;\n item.children = this.setExpandedToAllItems(isExpanded, item.children);\n }\n return Object.assign(item, { visible: item.visible === undefined ? true : item.visible });\n });\n }\n\n /**\n * expand / collapse a menu item\n *\n * @param item The item where the \"expand\" had been toggled\n * @param items The items list (used for recursion)\n * @private\n */\n private onExpandToggled(item: EuiMenuItem, items: EuiMenuItem[]): void {\n const itemIdx = items?.indexOf(item);\n if (itemIdx > -1) {\n items[itemIdx].expanded = !items[itemIdx].expanded;\n } else {\n items.forEach((i) => {\n if (i.children) {\n this.onExpandToggled(item, i.children);\n }\n });\n }\n }\n\n /**\n * configure an array of items with visible, filtered and expand (in case of expandAllItems flag enabled) properties\n *\n * @param items An array of EuiMenuItem\n * @param parent the parent item of items if exists\n * @private\n */\n private configureItems(items: EuiMenuItem[], parent?: EuiMenuItem): EuiMenuItem[] {\n return items?.map((item) => {\n // recursion in case there are children\n if (item.children) {\n item.children = this.configureItems(item.children, item);\n // expand all parents with children\n if (this.expandAllItems) {\n item.expanded = true;\n }\n }\n // point to the parent\n if (parent) {\n item.parent = parent;\n }\n\n if (!item.id && this.hasScrollToItem) {\n item.id = uuid.v4();\n }\n\n return Object.assign(item, { visible: item.visible === undefined ? true : item.visible, filtered: true });\n });\n }\n\n /**\n * Given a URL and a list of items, it will expand the item that matches the URL. If not item matches exactly the url, then it will\n * match the item that is most relevant to that url.\n *\n * @param items\n * @param value\n * @private\n */\n private findMostRelevantItem(url: string, items: EuiMenuItem[], relevantItem?: EuiMenuItem): EuiMenuItem {\n if (!items) {\n return null;\n }\n\n items.forEach((item) => {\n if (item.url && url.indexOf(item.url.substr(1)) > -1) {\n relevantItem = this.getMostRelevantItem(url, relevantItem, item);\n }\n\n if (item.children) {\n relevantItem = this.findMostRelevantItem(url, item.children, relevantItem);\n }\n });\n\n return relevantItem;\n }\n\n /**\n * Given two items with url return the one with the most relevant url that matches given url\n *\n * @param url A URL to be matched with the one of given items\n * @param item1\n * @param item2\n * @private\n */\n private getMostRelevantItem(url: string, item1: EuiMenuItem, item2: EuiMenuItem): EuiMenuItem {\n const remainder1 = url.replace(item1?.url || '', '');\n const remainder2 = url.replace(item2?.url || '', '');\n\n return remainder1.length < remainder2.length ? item1 : item2;\n }\n\n /**\n * Given an item, if there's a parent expand it until you reach the root item\n *\n * @param item Given menu item\n * @private\n */\n private expandToGivenItem(item: EuiMenuItem): void {\n if (item.parent) {\n setTimeout(() => (item.parent.expanded = true));\n this.expandToGivenItem(item.parent);\n }\n }\n}\n","<div *ngIf=\"hasFilter && !isCollapsed\" class=\"eui-menu-filter\" (click)=\"onMenuFilterClick($event)\">\n <div class=\"eui-menu-filter__input-wrapper\">\n <input\n euiInputText\n [euiClearable]=\"true\"\n (input)=\"onFilter($event)\"\n class=\"eui-menu-filter__input\"\n [placeholder]=\"searchFilterLabel\"\n [attr.aria-label]=\"searchFilterLabel\" />\n <eui-icon-svg icon=\"eui-search\" class=\"eui-menu-filter__input-search\" fillColor=\"grey-50\" aria-label=\"Search Icon\"></eui-icon-svg>\n </div>\n</div>\n<ul euiList class=\"eui-menu\" role=\"menubar\" aria-orientation=\"vertical\">\n <span *ngIf=\"!items\" class=\"eui-menu--no-items\">No menu items defined</span>\n <ng-template ngFor let-item let-index [ngForOf]=\"items\">\n <ng-template [ngTemplateOutlet]=\"menuItemTemplateRef\" [ngTemplateOutletContext]=\"{ menuItem: item, index: index }\"> </ng-template>\n </ng-template>\n</ul>\n\n<!-- describe the recursive template of the menu item -->\n<ng-template #menuItemTemplateRef let-item=\"menuItem\" let-i=\"index\">\n <!-- render the menu item-->\n <eui-menu-item\n *ngIf=\"item.filtered\"\n [item]=\"item\"\n [hasIcon]=\"hasIcons\"\n [hasTooltip]=\"hasTooltip\"\n [isCollapsed]=\"isCollapsed\"\n (expandToggle)=\"onExpandToggle($event)\"\n (itemClick)=\"onClick($event)\">\n <!-- if the menu item has children, render the children -->\n <ul euiList *ngIf=\"item.children && item.expanded\" class=\"eui-menu eui-menu-sub\" role=\"menu\" [attr.aria-label]=\"item.label\">\n <ng-container *ngFor=\"let child of item.children; let childIndex = index\">\n <ng-template [ngTemplateOutlet]=\"menuItemTemplateRef\" [ngTemplateOutletContext]=\"{ menuItem: child, index: childIndex }\">\n </ng-template>\n </ng-container>\n </ul>\n </eui-menu-item>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { NgModule } from '@angular/core';\n\nimport { EuiIconModule } from '@eui/components/eui-icon';\nimport { EuiChipModule } from '@eui/components/eui-chip';\nimport { EuiButtonModule } from '@eui/components/eui-button';\nimport { EuiInputTextModule } from '@eui/components/eui-input-text';\n\nimport { EuiMenuComponent } from './eui-menu.component';\nimport { EuiMenuItemComponent } from './eui-menu-item.component';\nimport { EuiTooltipDirectiveModule } from '@eui/components/directives';\n\n@NgModule({\n imports: [CommonModule, RouterModule, EuiIconModule, EuiChipModule, EuiButtonModule, EuiInputTextModule, EuiTooltipDirectiveModule],\n declarations: [EuiMenuComponent, EuiMenuItemComponent],\n exports: [EuiMenuComponent],\n})\nexport class EuiMenuModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3","i1","i2","i5","i6.EuiMenuItemComponent"],"mappings":"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"}
|