@ai-table/grid 0.0.54 → 0.0.56
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/components/cell-editors/cell-editor.scss +1 -2
- package/components/drag/drag.component.d.ts +1 -0
- package/components/drag/drag.component.d.ts.map +1 -1
- package/components/index.d.ts +0 -1
- package/components/index.d.ts.map +1 -1
- package/constants/editor.d.ts.map +1 -1
- package/constants/grid.d.ts.map +1 -1
- package/constants/icon.d.ts +1 -0
- package/constants/icon.d.ts.map +1 -1
- package/constants/table.d.ts +4 -1
- package/constants/table.d.ts.map +1 -1
- package/core/types/core.d.ts +4 -0
- package/core/types/core.d.ts.map +1 -1
- package/esm2022/components/drag/drag.component.mjs +42 -2
- package/esm2022/components/index.mjs +1 -2
- package/esm2022/constants/editor.mjs +2 -3
- package/esm2022/constants/grid.mjs +2 -2
- package/esm2022/constants/icon.mjs +2 -1
- package/esm2022/constants/table.mjs +5 -2
- package/esm2022/core/types/core.mjs +1 -1
- package/esm2022/grid-base.component.mjs +6 -4
- package/esm2022/grid.component.mjs +40 -4
- package/esm2022/renderer/components/cells/index.mjs +2 -1
- package/esm2022/renderer/components/cells/rate.component.mjs +150 -0
- package/esm2022/renderer/components/frozen-heads.component.mjs +17 -5
- package/esm2022/renderer/components/hover-cell.component.mjs +6 -5
- package/esm2022/renderer/components/hover-row-heads.component.mjs +20 -3
- package/esm2022/renderer/components/icon.component.mjs +6 -2
- package/esm2022/renderer/creations/create-active-cell-border.mjs +3 -3
- package/esm2022/renderer/creations/create-cells.mjs +2 -2
- package/esm2022/renderer/drawers/add-row-layout-drawer.mjs +5 -5
- package/esm2022/renderer/drawers/cell-drawer.mjs +30 -32
- package/esm2022/renderer/drawers/record-row-layout-drawer.mjs +5 -5
- package/esm2022/renderer/interfaces/hover-cell.mjs +1 -1
- package/esm2022/renderer/renderer.component.mjs +6 -6
- package/esm2022/types/cell.mjs +1 -1
- package/esm2022/types/component-config.mjs +1 -1
- package/esm2022/types/grid.mjs +1 -1
- package/esm2022/utils/cell.mjs +5 -3
- package/esm2022/utils/style.mjs +9 -3
- package/fesm2022/ai-table-grid.mjs +2917 -2674
- package/fesm2022/ai-table-grid.mjs.map +1 -1
- package/grid-base.component.d.ts +5 -3
- package/grid-base.component.d.ts.map +1 -1
- package/grid.component.d.ts +1 -0
- package/grid.component.d.ts.map +1 -1
- package/package.json +1 -1
- package/renderer/components/cells/index.d.ts +1 -0
- package/renderer/components/cells/index.d.ts.map +1 -1
- package/renderer/components/cells/rate.component.d.ts +38 -0
- package/renderer/components/cells/rate.component.d.ts.map +1 -0
- package/renderer/components/frozen-heads.component.d.ts +1 -0
- package/renderer/components/frozen-heads.component.d.ts.map +1 -1
- package/renderer/components/hover-cell.component.d.ts +2 -2
- package/renderer/components/hover-cell.component.d.ts.map +1 -1
- package/renderer/components/hover-row-heads.component.d.ts.map +1 -1
- package/renderer/components/icon.component.d.ts.map +1 -1
- package/renderer/creations/create-cells.d.ts +2 -1
- package/renderer/creations/create-cells.d.ts.map +1 -1
- package/renderer/drawers/add-row-layout-drawer.d.ts.map +1 -1
- package/renderer/drawers/cell-drawer.d.ts.map +1 -1
- package/renderer/drawers/record-row-layout-drawer.d.ts.map +1 -1
- package/renderer/interfaces/hover-cell.d.ts.map +1 -1
- package/renderer/renderer.component.d.ts +4 -12
- package/renderer/renderer.component.d.ts.map +1 -1
- package/types/cell.d.ts +5 -2
- package/types/cell.d.ts.map +1 -1
- package/types/component-config.d.ts +5 -2
- package/types/component-config.d.ts.map +1 -1
- package/types/grid.d.ts +4 -1
- package/types/grid.d.ts.map +1 -1
- package/utils/cell.d.ts +1 -1
- package/utils/cell.d.ts.map +1 -1
- package/utils/style.d.ts +1 -1
- package/utils/style.d.ts.map +1 -1
- package/components/cell-editors/rating/rating-editor.component.d.ts +0 -7
- package/components/cell-editors/rating/rating-editor.component.d.ts.map +0 -1
- package/components/cell-editors/rating/rating-editor.component.scss +0 -10
- package/esm2022/components/cell-editors/rating/rating-editor.component.mjs +0 -24
@@ -155,7 +155,7 @@ const getCellBackground = (cell, isHover, targetName, aiTable) => {
|
|
155
155
|
}
|
156
156
|
return background;
|
157
157
|
};
|
158
|
-
const isActiveCell = (cell, aiTable) => {
|
158
|
+
export const isActiveCell = (cell, aiTable) => {
|
159
159
|
const [recordId, fieldId] = cell;
|
160
160
|
const [activeRecordId, activeFieldId] = AITable.getActiveCell(aiTable) || [];
|
161
161
|
return recordId === activeRecordId && fieldId === activeFieldId;
|
@@ -182,4 +182,4 @@ const isSelectedRecord = (recordId, aiTable) => {
|
|
182
182
|
const isHoverRecord = (isHover, targetName) => {
|
183
183
|
return isHover && targetName !== AI_TABLE_FIELD_HEAD;
|
184
184
|
};
|
185
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWNlbGxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ3JpZC9zcmMvcmVuZGVyZXIvY3JlYXRpb25zL2NyZWF0ZS1jZWxscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsbUJBQW1CLEVBQ25CLDBCQUEwQixFQUMxQixlQUFlLEVBQ2YsdUJBQXVCLEVBQ3ZCLGtCQUFrQixFQUNyQixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBdUIsT0FBTyxFQUFFLGNBQWMsRUFBbUIsTUFBTSxZQUFZLENBQUM7QUFDM0YsT0FBTyxFQUEyQyxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUV0RTs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsTUFBZ0MsRUFBRSxFQUFFO0lBQzVELE1BQU0sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFDeEgsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQTBCLENBQUM7SUFDbkQsTUFBTSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLEdBQUcsVUFBVSxDQUFDO0lBQ3hELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQyxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMs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QUksQ0FBQztJQUNqQyxPQUFPLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsUUFBUSxJQUFJLE9BQU8sRUFBRSxDQUFDLENBQUM7QUFDM0UsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsT0FBZSxFQUFFLE9BQWdCLEVBQVcsRUFBRTtJQUMxRSxPQUFPLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzNELENBQUMsQ0FBQztBQUVGLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxRQUFnQixFQUFFLE9BQWdCLEVBQVcsRUFBRTtJQUNyRSxPQUFPLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQzdELENBQUMsQ0FBQztBQUVGLE1BQU0sYUFBYSxHQUFHLENBQUMsT0FBZ0IsRUFBRSxVQUFrQixFQUFXLEVBQUU7SUFDcEUsT0FBTyxPQUFPLElBQUksVUFBVSxLQUFLLG1CQUFtQixDQUFDO0FBQ3pELENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQUlfVEFCTEVfRklFTERfSEVBRCxcbiAgICBBSV9UQUJMRV9GSUVMRF9IRUFEX0hFSUdIVCxcbiAgICBBSV9UQUJMRV9PRkZTRVQsXG4gICAgQUlfVEFCTEVfUk9XX0FERF9CVVRUT04sXG4gICAgREVGQVVMVF9GT05UX1NUWUxFXG59IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBBSVJlY29yZEZpZWxkSWRQYXRoLCBBSVRhYmxlLCBBSVRhYmxlUXVlcmllcywgUmVuZGVyZXJDb250ZXh0IH0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBBSVRhYmxlQ2VsbHNEcmF3ZXJDb25maWcsIEFJVGFibGVSZW5kZXIsIEFJVGFibGVSb3dUeXBlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgZ2V0Q2VsbEhvcml6b250YWxQb3NpdGlvbiwgZ2V0SG92ZXJDZWxsLCB0cmFuc2Zvcm1DZWxsVmFsdWUgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBhZGRSb3dMYXlvdXQgfSBmcm9tICcuLi9kcmF3ZXJzL2FkZC1yb3ctbGF5b3V0LWRyYXdlcic7XG5pbXBvcnQgeyBjZWxsRHJhd2VyIH0gZnJvbSAnLi4vZHJhd2Vycy9jZWxsLWRyYXdlcic7XG5pbXBvcnQgeyByZWNvcmRSb3dMYXlvdXQgfSBmcm9tICcuLi9kcmF3ZXJzL3JlY29yZC1yb3ctbGF5b3V0LWRyYXdlcic7XG5cbi8qKlxuICog57uY5Yi25Y2V5YWD5qC85YaF5a6555qE5Ye95pWwXG4gKiDliKnnlKggQ2FudmFzIEFQSSDnu5jliLbmr4/kuKrljZXlhYPmoLznmoTog4zmma/popzoibLjgIHmlofmnKzku6Xlj4rlhbbku5blj6/og73nmoTmoLflvI/jgILov5nkuKrlh73mlbDpgJrluLjnlKjkuo7oh6rlrprkuYnooajmoLzmuLLmn5PvvIzlsKTlhbbmmK/lnKjlpITnkIblpKfph4/mlbDmja7ml7bvvIzpgJrov4fnm7TmjqXmk43kvZwgQ2FudmFzIOadpeaPkOmrmOa4suafk+aAp+iDvVxuICogQHBhcmFtIGNvbmZpZ1xuICovXG5leHBvcnQgY29uc3QgY3JlYXRlQ2VsbHMgPSAoY29uZmlnOiBBSVRhYmxlQ2VsbHNEcmF3ZXJDb25maWcpID0+IHtcbiAgICBjb25zdCB7IGFpVGFibGUsIGNvb3JkaW5hdGUsIHJlZmVyZW5jZXMsIGN0eCwgcm93U3RhcnRJbmRleCwgcm93U3RvcEluZGV4LCBjb2x1bW5TdGFydEluZGV4LCBjb2x1bW5TdG9wSW5kZXggfSA9IGNvbmZpZztcbiAgICBjb25zdCBjb250ZXh0ID0gYWlUYWJsZS5jb250ZXh0IGFzIFJlbmRlcmVyQ29udGV4dDtcbiAgICBjb25zdCB7IHJvd0hlaWdodCwgY29sdW1uQ291bnQsIHJvd0NvdW50IH0gPSBjb29yZGluYXRlO1xuICAgIGNvbnN0IGNvbG9ycyA9IEFJVGFibGUuZ2V0Q29sb3JzKCk7XG4gICAgY29uc3QgdmlzaWJsZUNvbHVtbnMgPSBBSVRhYmxlLmdldFZpc2libGVGaWVsZHMoYWlUYWJsZSk7XG5cbiAgICAvLyDliJ3lp4vljJbnu5jlm77kuIrkuIvmlocsIOS4uuWQjue7reeahOe7mOWItuaTjeS9nOWBmuWHhuWkh1xuICAgIGNlbGxEcmF3ZXIuaW5pdEN0eChjdHggYXMgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKTtcbiAgICBhZGRSb3dMYXlvdXQuaW5pdEN0eChjdHggYXMgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKTtcbiAgICByZWNvcmRSb3dMYXlvdXQuaW5pdEN0eChjdHggYXMgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKTtcblxuICAgIGNvbnN0IGhvdmVyQ2VsbCA9IGdldEhvdmVyQ2VsbChhaVRhYmxlKTtcblxuICAgIC8vIOmBjeWOhuWIlywg56Gu5a6a5Zyo5ZOq5Lqb5YiX5LiK57uY5Yi25Y2V5YWD5qC8XG4gICAgZm9yIChsZXQgY29sdW1uSW5kZXggPSBjb2x1bW5TdGFydEluZGV4OyBjb2x1bW5JbmRleCA8PSBjb2x1bW5TdG9wSW5kZXg7IGNvbHVtbkluZGV4KyspIHtcbiAgICAgICAgaWYgKGNvbHVtbkluZGV4ID4gY29sdW1uQ291bnQgLSAxKSBicmVhaztcblxuICAgICAgICAvLyDojrflj5bor6XliJflr7nlupTnmoQgZmllbGTvvIzlpoLmnpwgZmllbGQg5LiN5YaN5bGV56S66IyD5Zu077yM5YiZ6Lez6L+H6K+l5YiXXG4gICAgICAgIGNvbnN0IGZpZWxkID0gdmlzaWJsZUNvbHVtbnNbY29sdW1uSW5kZXhdO1xuICAgICAgICBpZiAoZmllbGQgPT0gbnVsbCkgY29udGludWU7XG5cbiAgICAgICAgLy8g6I635Y+W6K+l5YiX5a+55bqU55qE5a695bqmXG4gICAgICAgIGNvbnN0IGNvbHVtbldpZHRoID0gY29vcmRpbmF0ZS5nZXRDb2x1bW5XaWR0aChjb2x1bW5JbmRleCk7XG4gICAgICAgIGNvbnN0IHggPSBjb29yZGluYXRlLmdldENvbHVtbk9mZnNldChjb2x1bW5JbmRleCkgKyBBSV9UQUJMRV9PRkZTRVQ7XG4gICAgICAgIGNvbnN0IGlzTGFzdENvbHVtbiA9IGNvbHVtbkluZGV4ID09PSBhaVRhYmxlLmdyaWREYXRhKCkuZmllbGRzPy5sZW5ndGggLSAxO1xuXG4gICAgICAgIGlmIChjb2x1bW5JbmRleCA9PT0gMSkge1xuICAgICAgICAgICAgY2VsbERyYXdlci5pbml0U3R5bGUoZmllbGQsIHsgZm9udFdlaWdodDogREVGQVVMVF9GT05UX1NUWUxFIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8g6YGN5Y6G6KGMLCDku44gcm93U3RhcnRJbmRleCDliLAgcm93U3RvcEluZGV4IOeahOaJgOacieihjO+8jOWGs+WumuWwhuWcqOWTquS6m+ihjOS4iue7mOWItuWNleWFg+agvFxuICAgICAgICBmb3IgKGxldCByb3dJbmRleCA9IHJvd1N0YXJ0SW5kZXg7IHJvd0luZGV4IDw9IHJvd1N0b3BJbmRleDsgcm93SW5kZXgrKykge1xuICAgICAgICAgICAgaWYgKHJvd0luZGV4ID4gcm93Q291bnQgLSAxKSBicmVhaztcbiAgICAgICAgICAgIGNvbnN0IHJvdyA9IGNvbnRleHQubGluZWFyUm93cygpW3Jvd0luZGV4XTtcbiAgICAgICAgICAgIGNvbnN0IHsgX2lkOiByZWNvcmRJZCwgdHlwZSB9ID0gcm93O1xuICAgICAgICAgICAgY29uc3QgeSA9IGNvb3JkaW5hdGUuZ2V0Um93T2Zmc2V0KHJvd0luZGV4KSArIEFJX1RBQkxFX09GRlNFVDtcbiAgICAgICAgICAgIGNvbnN0IHsgcm93SW5kZXg6IHBvaW50Um93SW5kZXgsIHRhcmdldE5hbWUgfSA9IGNvbnRleHQucG9pbnRQb3NpdGlvbigpO1xuICAgICAgICAgICAgY29uc3QgaXNIb3ZlciA9IHBvaW50Um93SW5kZXggPT09IHJvd0luZGV4O1xuXG4gICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIEFJVGFibGVSb3dUeXBlLmFkZDoge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0hvdmVyUm93ID0gaXNIb3ZlciAmJiB0YXJnZXROYW1lID09PSBBSV9UQUJMRV9ST1dfQUREX0JVVFRPTjtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNDaGVja2VkUm93ID0gYWlUYWJsZS5zZWxlY3Rpb24oKS5zZWxlY3RlZFJlY29yZHMuaGFzKHJvdy5faWQpO1xuICAgICAgICAgICAgICAgICAgICBhZGRSb3dMYXlvdXQuaW5pdCh7XG4gICAgICAgICAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgICAgICAgICAgeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvd0luZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uSW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5XaWR0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvd0hlaWdodDogQUlfVEFCTEVfRklFTERfSEVBRF9IRUlHSFQsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5Db3VudCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcldpZHRoOiBjb29yZGluYXRlLmNvbnRhaW5lcldpZHRoXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBhZGRSb3dMYXlvdXQucmVuZGVyKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzSG92ZXJSb3csXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0NoZWNrZWRSb3dcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlIEFJVGFibGVSb3dUeXBlLnJlY29yZDoge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWVsZElkID0gZmllbGQuX2lkO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjZWxsOiBBSVJlY29yZEZpZWxkSWRQYXRoID0gW3JlY29yZElkLCBmaWVsZElkXTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGJhY2tncm91bmQgPSBnZXRDZWxsQmFja2dyb3VuZChjZWxsLCBpc0hvdmVyLCB0YXJnZXROYW1lLCBhaVRhYmxlKTtcblxuICAgICAgICAgICAgICAgICAgICByZWNvcmRSb3dMYXlvdXQuaW5pdCh7XG4gICAgICAgICAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgICAgICAgICAgeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvd0luZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uSW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5XaWR0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvd0hlaWdodCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbkNvdW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyV2lkdGg6IGNvb3JkaW5hdGUuY29udGFpbmVyV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHJlY29yZFJvd0xheW91dC5yZW5kZXIoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcm93LFxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHsgZmlsbDogYmFja2dyb3VuZCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNIb3ZlclJvdzogaXNIb3ZlclJlY29yZChpc0hvdmVyLCB0YXJnZXROYW1lKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzQ2hlY2tlZFJvdzogaXNTZWxlY3RlZFJlY29yZChyZWNvcmRJZCwgYWlUYWJsZSlcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgd2lkdGgsIG9mZnNldCB9ID0gZ2V0Q2VsbEhvcml6b250YWxQb3NpdGlvbih7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5JbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbldpZHRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uQ291bnRcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlYWxYID0geCArIG9mZnNldCArIEFJX1RBQkxFX09GRlNFVDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVhbFkgPSB5ICsgQUlfVEFCTEVfT0ZGU0VUO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHlsZSA9IHsgZm9udFdlaWdodDogREVGQVVMVF9GT05UX1NUWUxFIH07XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNlbGxWYWx1ZSA9IEFJVGFibGVRdWVyaWVzLmdldEZpZWxkVmFsdWUoYWlUYWJsZSwgW3JlY29yZElkLCBmaWVsZElkXSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybVZhbHVlID0gdHJhbnNmb3JtQ2VsbFZhbHVlKGFpVGFibGUsIGZpZWxkLCBjZWxsVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZW5kZXIgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhaVRhYmxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgeDogcmVhbFgsXG4gICAgICAgICAgICAgICAgICAgICAgICB5OiByZWFsWSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbldpZHRoOiB3aWR0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvd0hlaWdodCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlY29yZElkOiByZWNvcmRJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2VsbFZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtVmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2VzLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNBY3RpdmU6IGlzU2VsZWN0ZWRGaWVsZChmaWVsZElkLCBhaVRhYmxlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3JzXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIC8vIGhvdmVyIOe7hOS7tua4suafk+aXtu+8jOW6leWxgueahCBjZWxsIOa4suafk+S4uuepulxuICAgICAgICAgICAgICAgICAgICBpZiAoaG92ZXJDZWxsICYmIGhvdmVyQ2VsbC5yZWNvcmRJZCA9PT0gcmVjb3JkSWQgJiYgaG92ZXJDZWxsLmZpZWxkSWQgPT09IGZpZWxkSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlci5jZWxsVmFsdWUgPSAnJztcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlci50cmFuc2Zvcm1WYWx1ZSA9ICcnO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgY2VsbERyYXdlci5pbml0U3R5bGUoZmllbGQsIHN0eWxlKTtcbiAgICAgICAgICAgICAgICAgICAgLy8g5pyA5ZCO5LiA5YiX77yM5LiU5Y2V5YWD5qC85YaF5a655a2Y5Zyo77yM6ZyA6KaB6KOB5Ymq5YaF5a6577yM5Lul6Ziy5q2i5paH5pys5rqi5Ye65Y2V5YWD5qC86L6555WMXG4gICAgICAgICAgICAgICAgICAgIC8vIOeEtuWQju+8jOagueaNruiuoeeul+WlveeahOagt+W8j+WSjOW4g+WxgOe7mOWItuWNleWFg+agvOWGheWuuVxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNMYXN0Q29sdW1uICYmIGNlbGxWYWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjdHguc2F2ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY3R4LnJlY3QocmVhbFgsIHJlYWxZLCB3aWR0aCwgcm93SGVpZ2h0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGN0eC5jbGlwKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjZWxsRHJhd2VyLnJlbmRlckNlbGwocmVuZGVyIGFzIEFJVGFibGVSZW5kZXIsIGN0eCBhcyBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY3R4LnJlc3RvcmUoKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGxEcmF3ZXIucmVuZGVyQ2VsbChyZW5kZXIgYXMgQUlUYWJsZVJlbmRlciwgY3R4IGFzIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG5jb25zdCBnZXRDZWxsQmFja2dyb3VuZCA9IChjZWxsOiBBSVJlY29yZEZpZWxkSWRQYXRoLCBpc0hvdmVyOiBib29sZWFuLCB0YXJnZXROYW1lOiBzdHJpbmcsIGFpVGFibGU6IEFJVGFibGUpOiBzdHJpbmcgPT4ge1xuICAgIGNvbnN0IGNvbG9ycyA9IEFJVGFibGUuZ2V0Q29sb3JzKCk7XG4gICAgY29uc3QgW3JlY29yZElkLCBmaWVsZElkXSA9IGNlbGw7XG4gICAgbGV0IGJhY2tncm91bmQgPSBjb2xvcnMud2hpdGU7XG5cbiAgICBjb25zdCBfaXNIb3ZlclJlY29yZCA9IGlzSG92ZXJSZWNvcmQoaXNIb3ZlciwgdGFyZ2V0TmFtZSk7XG4gICAgY29uc3QgX2lzU2VsZWN0ZWRSZWNvcmQgPSBpc1NlbGVjdGVkUmVjb3JkKHJlY29yZElkLCBhaVRhYmxlKTtcbiAgICBjb25zdCBfaXNTZWxlY3RlZEZpZWxkID0gaXNTZWxlY3RlZEZpZWxkKGZpZWxkSWQsIGFpVGFibGUpO1xuICAgIGNvbnN0IF9pc1NpYmxpbmdDZWxsID0gaXNTaWJsaW5nQ2VsbChjZWxsLCBhaVRhYmxlKTtcbiAgICBjb25zdCBfaXNBY3RpdmVDZWxsID0gaXNBY3RpdmVDZWxsKGNlbGwsIGFpVGFibGUpO1xuICAgIGNvbnN0IF9pc1NlbGVjdGVkQ2VsbCA9IGlzU2VsZWN0ZWRDZWxsKGNlbGwsIGFpVGFibGUpO1xuICAgIGNvbnN0IF9pc0tleXdvcmRzTWF0Y2hlZENlbGwgPSBpc0tleXdvcmRzTWF0Y2hlZENlbGwoY2VsbCwgYWlUYWJsZSk7XG5cbiAgICBpZiAoX2lzS2V5d29yZHNNYXRjaGVkQ2VsbCkge1xuICAgICAgICBiYWNrZ3JvdW5kID0gY29sb3JzLml0ZW1NYXRjaEJnQ29sb3I7XG4gICAgfSBlbHNlIGlmIChfaXNTZWxlY3RlZFJlY29yZCB8fCBfaXNTZWxlY3RlZEZpZWxkIHx8IF9pc1NpYmxpbmdDZWxsIHx8IChfaXNTZWxlY3RlZENlbGwgJiYgIV9pc0FjdGl2ZUNlbGwpKSB7XG4gICAgICAgIGJhY2tncm91bmQgPSBjb2xvcnMuaXRlbUFjdGl2ZUJnQ29sb3I7XG4gICAgfSBlbHNlIGlmIChfaXNIb3ZlclJlY29yZCAmJiAhX2lzQWN0aXZlQ2VsbCkge1xuICAgICAgICBiYWNrZ3JvdW5kID0gY29sb3JzLmdyYXk4MDtcbiAgICB9XG5cbiAgICByZXR1cm4gYmFja2dyb3VuZDtcbn07XG5cbmNvbnN0IGlzQWN0aXZlQ2VsbCA9IChjZWxsOiBBSVJlY29yZEZpZWxkSWRQYXRoLCBhaVRhYmxlOiBBSVRhYmxlKTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgW3JlY29yZElkLCBmaWVsZElkXSA9IGNlbGw7XG4gICAgY29uc3QgW2FjdGl2ZVJlY29yZElkLCBhY3RpdmVGaWVsZElkXSA9IEFJVGFibGUuZ2V0QWN0aXZlQ2VsbChhaVRhYmxlKSB8fCBbXTtcbiAgICByZXR1cm4gcmVjb3JkSWQgPT09IGFjdGl2ZVJlY29yZElkICYmIGZpZWxkSWQgPT09IGFjdGl2ZUZpZWxkSWQ7XG59O1xuXG5jb25zdCBpc1NpYmxpbmdDZWxsID0gKGNlbGw6IEFJUmVjb3JkRmllbGRJZFBhdGgsIGFpVGFibGU6IEFJVGFibGUpOiBib29sZWFuID0+IHtcbiAgICBjb25zdCBbcmVjb3JkSWQsIGZpZWxkSWRdID0gY2VsbDtcbiAgICBjb25zdCBbYWN0aXZlUmVjb3JkSWQsIGFjdGl2ZUZpZWxkSWRdID0gQUlUYWJsZS5nZXRBY3RpdmVDZWxsKGFpVGFibGUpIHx8IFtdO1xuICAgIHJldHVybiBBSVRhYmxlLmdldEFjdGl2ZVJlY29yZElkcyhhaVRhYmxlKS5sZW5ndGggPT09IDEgJiYgcmVjb3JkSWQgPT09IGFjdGl2ZVJlY29yZElkICYmIGZpZWxkSWQgIT09IGFjdGl2ZUZpZWxkSWQ7XG59O1xuXG5jb25zdCBpc0tleXdvcmRzTWF0Y2hlZENlbGwgPSAoY2VsbDogQUlSZWNvcmRGaWVsZElkUGF0aCwgYWlUYWJsZTogQUlUYWJsZSk6IGJvb2xlYW4gPT4ge1xuICAgIGNvbnN0IFtyZWNvcmRJZCwgZmllbGRJZF0gPSBjZWxsO1xuICAgIHJldHVybiBhaVRhYmxlLmtleXdvcmRzTWF0Y2hlZENlbGxzKCkuaGFzKGAke3JlY29yZElkfToke2ZpZWxkSWR9YCk7XG59O1xuXG5jb25zdCBpc1NlbGVjdGVkQ2VsbCA9IChjZWxsOiBBSVJlY29yZEZpZWxkSWRQYXRoLCBhaVRhYmxlOiBBSVRhYmxlKTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgW3JlY29yZElkLCBmaWVsZElkXSA9IGNlbGw7XG4gICAgcmV0dXJuIGFpVGFibGUuc2VsZWN0aW9uKCkuc2VsZWN0ZWRDZWxscy5oYXMoYCR7cmVjb3JkSWR9OiR7ZmllbGRJZH1gKTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1NlbGVjdGVkRmllbGQgPSAoZmllbGRJZDogc3RyaW5nLCBhaVRhYmxlOiBBSVRhYmxlKTogYm9vbGVhbiA9PiB7XG4gICAgcmV0dXJuIGFpVGFibGUuc2VsZWN0aW9uKCkuc2VsZWN0ZWRGaWVsZHMuaGFzKGZpZWxkSWQpO1xufTtcblxuY29uc3QgaXNTZWxlY3RlZFJlY29yZCA9IChyZWNvcmRJZDogc3RyaW5nLCBhaVRhYmxlOiBBSVRhYmxlKTogYm9vbGVhbiA9PiB7XG4gICAgcmV0dXJuIGFpVGFibGUuc2VsZWN0aW9uKCkuc2VsZWN0ZWRSZWNvcmRzLmhhcyhyZWNvcmRJZCk7XG59O1xuXG5jb25zdCBpc0hvdmVyUmVjb3JkID0gKGlzSG92ZXI6IGJvb2xlYW4sIHRhcmdldE5hbWU6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICAgIHJldHVybiBpc0hvdmVyICYmIHRhcmdldE5hbWUgIT09IEFJX1RBQkxFX0ZJRUxEX0hFQUQ7XG59O1xuIl19
|
185
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWNlbGxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ3JpZC9zcmMvcmVuZGVyZXIvY3JlYXRpb25zL2NyZWF0ZS1jZWxscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsbUJBQW1CLEVBQ25CLDBCQUEwQixFQUMxQixlQUFlLEVBQ2YsdUJBQXVCLEVBQ3ZCLGtCQUFrQixFQUNyQixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBdUIsT0FBTyxFQUFFLGNBQWMsRUFBbUIsTUFBTSxZQUFZLENBQUM7QUFDM0YsT0FBTyxFQUEyQyxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUV0RTs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsTUFBZ0MsRUFBRSxFQUFFO0lBQzVELE1BQU0sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFDeEgsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQTBCLENBQUM7SUFDbkQsTUFBTSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLEdBQUcsVUFBVSxDQUFDO0lBQ3hELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQyxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFekQsd0JBQXdCO0lBQ3hCLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBK0IsQ0FBQyxDQUFDO0lBQ3BELFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBK0IsQ0FBQyxDQUFDO0lBQ3RELGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBK0IsQ0FBQyxDQUFDO0lBRXpELE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUV4QyxvQkFBb0I7SUFDcEIsS0FBSyxJQUFJLFdBQVcsR0FBRyxnQkFBZ0IsRUFBRSxXQUFXLElBQUksZUFBZSxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQUM7UUFDckYsSUFBSSxXQUFXLEdBQUcsV0FBVyxHQUFHLENBQUM7WUFBRSxNQUFNO1FBRXpDLHNDQUFzQztRQUN0QyxNQUFNLEtBQUssR0FBRyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDMUMsSUFBSSxLQUFLLElBQUksSUFBSTtZQUFFLFNBQVM7UUFFNUIsWUFBWTtRQUNaLE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDM0QsTUFBTSxDQUFDLEdBQUcsVUFBVSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsR0FBRyxlQUFlLENBQUM7UUFDcEUsTUFBTSxZQUFZLEdBQUcsV0FBVyxLQUFLLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUUzRSxJQUFJLFdBQVcsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNwQixVQUFVLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUM7UUFDcEUsQ0FBQztRQUVELHlEQUF5RDtRQUN6RCxLQUFLLElBQUksUUFBUSxHQUFHLGFBQWEsRUFBRSxRQUFRLElBQUksWUFBWSxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUM7WUFDdEUsSUFBSSxRQUFRLEdBQUcsUUFBUSxHQUFHLENBQUM7Z0JBQUUsTUFBTTtZQUNuQyxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDM0MsTUFBTSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEdBQUcsR0FBRyxDQUFDO1lBQ3BDLE1BQU0sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsZUFBZSxDQUFDO1lBQzlELE1BQU0sRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN4RSxNQUFNLE9BQU8sR0FBRyxhQUFhLEtBQUssUUFBUSxDQUFDO1lBRTNDLFFBQVEsSUFBSSxFQUFFLENBQUM7Z0JBQ1gsS0FBSyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDdEIsTUFBTSxVQUFVLEdBQUcsT0FBTyxJQUFJLFVBQVUsS0FBSyx1QkFBdUIsQ0FBQztvQkFDckUsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUN0RSxZQUFZLENBQUMsSUFBSSxDQUFDO3dCQUNkLENBQUM7d0JBQ0QsQ0FBQzt3QkFDRCxRQUFRO3dCQUNSLFdBQVc7d0JBQ1gsV0FBVzt3QkFDWCxTQUFTLEVBQUUsMEJBQTBCO3dCQUNyQyxXQUFXO3dCQUNYLGNBQWMsRUFBRSxVQUFVLENBQUMsY0FBYztxQkFDNUMsQ0FBQyxDQUFDO29CQUNILFlBQVksQ0FBQyxNQUFNLENBQUM7d0JBQ2hCLFVBQVU7d0JBQ1YsWUFBWTtxQkFDZixDQUFDLENBQUM7b0JBQ0gsTUFBTTtnQkFDVixDQUFDO2dCQUNELEtBQUssY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7b0JBQ3pCLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7b0JBQzFCLE1BQU0sSUFBSSxHQUF3QixDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztvQkFDdEQsSUFBSSxVQUFVLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7b0JBRXZFLGVBQWUsQ0FBQyxJQUFJLENBQUM7d0JBQ2pCLENBQUM7d0JBQ0QsQ0FBQzt3QkFDRCxRQUFRO3dCQUNSLFdBQVc7d0JBQ1gsV0FBVzt3QkFDWCxTQUFTO3dCQUNULFdBQVc7d0JBQ1gsY0FBYyxFQUFFLFVBQVUsQ0FBQyxjQUFjO3FCQUM1QyxDQUFDLENBQUM7b0JBQ0gsZUFBZSxDQUFDLE1BQU0sQ0FBQzt3QkFDbkIsR0FBRzt3QkFDSCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO3dCQUMzQixVQUFVLEVBQUUsYUFBYSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUM7d0JBQzlDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDO3FCQUNwRCxDQUFDLENBQUM7b0JBQ0gsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyx5QkFBeUIsQ0FBQzt3QkFDaEQsV0FBVzt3QkFDWCxXQUFXO3dCQUNYLFdBQVc7cUJBQ2QsQ0FBQyxDQUFDO29CQUNILE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxNQUFNLEdBQUcsZUFBZSxDQUFDO29CQUMzQyxNQUFNLEtBQUssR0FBRyxDQUFDLEdBQUcsZUFBZSxDQUFDO29CQUNsQyxNQUFNLEtBQUssR0FBRyxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxDQUFDO29CQUNqRCxNQUFNLFNBQVMsR0FBRyxjQUFjLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO29CQUM3RSxNQUFNLGNBQWMsR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO29CQUNyRSxNQUFNLE1BQU0sR0FBRzt3QkFDWCxPQUFPO3dCQUNQLENBQUMsRUFBRSxLQUFLO3dCQUNSLENBQUMsRUFBRSxLQUFLO3dCQUNSLFdBQVcsRUFBRSxLQUFLO3dCQUNsQixTQUFTO3dCQUNULFFBQVEsRUFBRSxRQUFRO3dCQUNsQixLQUFLO3dCQUNMLFNBQVM7d0JBQ1QsY0FBYzt3QkFDZCxVQUFVO3dCQUNWLFFBQVEsRUFBRSxlQUFlLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQzt3QkFDM0MsS0FBSzt3QkFDTCxNQUFNO3FCQUNULENBQUM7b0JBQ0YsNEJBQTRCO29CQUM1QixJQUFJLFNBQVMsSUFBSSxTQUFTLENBQUMsUUFBUSxLQUFLLFFBQVEsSUFBSSxTQUFTLENBQUMsT0FBTyxLQUFLLE9BQU8sRUFBRSxDQUFDO3dCQUNoRixNQUFNLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQzt3QkFDdEIsTUFBTSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7b0JBQy9CLENBQUM7b0JBRUQsVUFBVSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7b0JBQ25DLG9DQUFvQztvQkFDcEMsd0JBQXdCO29CQUN4QixJQUFJLFlBQVksSUFBSSxTQUFTLElBQUksSUFBSSxFQUFFLENBQUM7d0JBQ3BDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQzt3QkFDWCxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO3dCQUN6QyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7d0JBQ1gsVUFBVSxDQUFDLFVBQVUsQ0FBQyxNQUF1QixFQUFFLEdBQStCLENBQUMsQ0FBQzt3QkFDaEYsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUNsQixDQUFDO3lCQUFNLENBQUM7d0JBQ0osVUFBVSxDQUFDLFVBQVUsQ0FBQyxNQUF1QixFQUFFLEdBQStCLENBQUMsQ0FBQztvQkFDcEYsQ0FBQztnQkFDTCxDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLElBQXlCLEVBQUUsT0FBZ0IsRUFBRSxVQUFrQixFQUFFLE9BQWdCLEVBQVUsRUFBRTtJQUNwSCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkMsTUFBTSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDakMsSUFBSSxVQUFVLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUU5QixNQUFNLGNBQWMsR0FBRyxhQUFhLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzFELE1BQU0saUJBQWlCLEdBQUcsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzlELE1BQU0sZ0JBQWdCLEdBQUcsZUFBZSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMzRCxNQUFNLGNBQWMsR0FBRyxhQUFhLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3BELE1BQU0sYUFBYSxHQUFHLFlBQVksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbEQsTUFBTSxlQUFlLEdBQUcsY0FBYyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN0RCxNQUFNLHNCQUFzQixHQUFHLHFCQUFxQixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUVwRSxJQUFJLHNCQUFzQixFQUFFLENBQUM7UUFDekIsVUFBVSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztJQUN6QyxDQUFDO1NBQU0sSUFBSSxpQkFBaUIsSUFBSSxnQkFBZ0IsSUFBSSxjQUFjLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1FBQ3hHLFVBQVUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUM7SUFDMUMsQ0FBQztTQUFNLElBQUksY0FBYyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDMUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDL0IsQ0FBQztJQUVELE9BQU8sVUFBVSxDQUFDO0FBQ3RCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLElBQXlCLEVBQUUsT0FBZ0IsRUFBVyxFQUFFO0lBQ2pGLE1BQU0sQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBQ2pDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsYUFBYSxDQUFDLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0UsT0FBTyxRQUFRLEtBQUssY0FBYyxJQUFJLE9BQU8sS0FBSyxhQUFhLENBQUM7QUFDcEUsQ0FBQyxDQUFDO0FBRUYsTUFBTSxhQUFhLEdBQUcsQ0FBQyxJQUF5QixFQUFFLE9BQWdCLEVBQVcsRUFBRTtJQUMzRSxNQUFNLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQztJQUNqQyxNQUFNLENBQUMsY0FBYyxFQUFFLGFBQWEsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzdFLE9BQU8sT0FBTyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksUUFBUSxLQUFLLGNBQWMsSUFBSSxPQUFPLEtBQUssYUFBYSxDQUFDO0FBQ3hILENBQUMsQ0FBQztBQUVGLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxJQUF5QixFQUFFLE9BQWdCLEVBQVcsRUFBRTtJQUNuRixNQUFNLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQztJQUNqQyxPQUFPLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFFBQVEsSUFBSSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0FBQ3hFLENBQUMsQ0FBQztBQUVGLE1BQU0sY0FBYyxHQUFHLENBQUMsSUFBeUIsRUFBRSxPQUFnQixFQUFXLEVBQUU7SUFDNUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDakMsT0FBTyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFFBQVEsSUFBSSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0FBQzNFLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLE9BQWUsRUFBRSxPQUFnQixFQUFXLEVBQUU7SUFDMUUsT0FBTyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUMzRCxDQUFDLENBQUM7QUFFRixNQUFNLGdCQUFnQixHQUFHLENBQUMsUUFBZ0IsRUFBRSxPQUFnQixFQUFXLEVBQUU7SUFDckUsT0FBTyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUM3RCxDQUFDLENBQUM7QUFFRixNQUFNLGFBQWEsR0FBRyxDQUFDLE9BQWdCLEVBQUUsVUFBa0IsRUFBVyxFQUFFO0lBQ3BFLE9BQU8sT0FBTyxJQUFJLFVBQVUsS0FBSyxtQkFBbUIsQ0FBQztBQUN6RCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFJX1RBQkxFX0ZJRUxEX0hFQUQsXG4gICAgQUlfVEFCTEVfRklFTERfSEVBRF9IRUlHSFQsXG4gICAgQUlfVEFCTEVfT0ZGU0VULFxuICAgIEFJX1RBQkxFX1JPV19BRERfQlVUVE9OLFxuICAgIERFRkFVTFRfRk9OVF9TVFlMRVxufSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgQUlSZWNvcmRGaWVsZElkUGF0aCwgQUlUYWJsZSwgQUlUYWJsZVF1ZXJpZXMsIFJlbmRlcmVyQ29udGV4dCB9IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgQUlUYWJsZUNlbGxzRHJhd2VyQ29uZmlnLCBBSVRhYmxlUmVuZGVyLCBBSVRhYmxlUm93VHlwZSB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IGdldENlbGxIb3Jpem9udGFsUG9zaXRpb24sIGdldEhvdmVyQ2VsbCwgdHJhbnNmb3JtQ2VsbFZhbHVlIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgYWRkUm93TGF5b3V0IH0gZnJvbSAnLi4vZHJhd2Vycy9hZGQtcm93LWxheW91dC1kcmF3ZXInO1xuaW1wb3J0IHsgY2VsbERyYXdlciB9IGZyb20gJy4uL2RyYXdlcnMvY2VsbC1kcmF3ZXInO1xuaW1wb3J0IHsgcmVjb3JkUm93TGF5b3V0IH0gZnJvbSAnLi4vZHJhd2Vycy9yZWNvcmQtcm93LWxheW91dC1kcmF3ZXInO1xuXG4vKipcbiAqIOe7mOWItuWNleWFg+agvOWGheWuueeahOWHveaVsFxuICog5Yip55SoIENhbnZhcyBBUEkg57uY5Yi25q+P5Liq5Y2V5YWD5qC855qE6IOM5pmv6aKc6Imy44CB5paH5pys5Lul5Y+K5YW25LuW5Y+v6IO955qE5qC35byP44CC6L+Z5Liq5Ye95pWw6YCa5bi455So5LqO6Ieq5a6a5LmJ6KGo5qC85riy5p+T77yM5bCk5YW25piv5Zyo5aSE55CG5aSn6YeP5pWw5o2u5pe277yM6YCa6L+H55u05o6l5pON5L2cIENhbnZhcyDmnaXmj5Dpq5jmuLLmn5PmgKfog71cbiAqIEBwYXJhbSBjb25maWdcbiAqL1xuZXhwb3J0IGNvbnN0IGNyZWF0ZUNlbGxzID0gKGNvbmZpZzogQUlUYWJsZUNlbGxzRHJhd2VyQ29uZmlnKSA9PiB7XG4gICAgY29uc3QgeyBhaVRhYmxlLCBjb29yZGluYXRlLCByZWZlcmVuY2VzLCBjdHgsIHJvd1N0YXJ0SW5kZXgsIHJvd1N0b3BJbmRleCwgY29sdW1uU3RhcnRJbmRleCwgY29sdW1uU3RvcEluZGV4IH0gPSBjb25maWc7XG4gICAgY29uc3QgY29udGV4dCA9IGFpVGFibGUuY29udGV4dCBhcyBSZW5kZXJlckNvbnRleHQ7XG4gICAgY29uc3QgeyByb3dIZWlnaHQsIGNvbHVtbkNvdW50LCByb3dDb3VudCB9ID0gY29vcmRpbmF0ZTtcbiAgICBjb25zdCBjb2xvcnMgPSBBSVRhYmxlLmdldENvbG9ycygpO1xuICAgIGNvbnN0IHZpc2libGVDb2x1bW5zID0gQUlUYWJsZS5nZXRWaXNpYmxlRmllbGRzKGFpVGFibGUpO1xuXG4gICAgLy8g5Yid5aeL5YyW57uY5Zu+5LiK5LiL5paHLCDkuLrlkI7nu63nmoTnu5jliLbmk43kvZzlgZrlh4blpIdcbiAgICBjZWxsRHJhd2VyLmluaXRDdHgoY3R4IGFzIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCk7XG4gICAgYWRkUm93TGF5b3V0LmluaXRDdHgoY3R4IGFzIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCk7XG4gICAgcmVjb3JkUm93TGF5b3V0LmluaXRDdHgoY3R4IGFzIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCk7XG5cbiAgICBjb25zdCBob3ZlckNlbGwgPSBnZXRIb3ZlckNlbGwoYWlUYWJsZSk7XG5cbiAgICAvLyDpgY3ljobliJcsIOehruWumuWcqOWTquS6m+WIl+S4iue7mOWItuWNleWFg+agvFxuICAgIGZvciAobGV0IGNvbHVtbkluZGV4ID0gY29sdW1uU3RhcnRJbmRleDsgY29sdW1uSW5kZXggPD0gY29sdW1uU3RvcEluZGV4OyBjb2x1bW5JbmRleCsrKSB7XG4gICAgICAgIGlmIChjb2x1bW5JbmRleCA+IGNvbHVtbkNvdW50IC0gMSkgYnJlYWs7XG5cbiAgICAgICAgLy8g6I635Y+W6K+l5YiX5a+55bqU55qEIGZpZWxk77yM5aaC5p6cIGZpZWxkIOS4jeWGjeWxleekuuiMg+WbtO+8jOWImei3s+i/h+ivpeWIl1xuICAgICAgICBjb25zdCBmaWVsZCA9IHZpc2libGVDb2x1bW5zW2NvbHVtbkluZGV4XTtcbiAgICAgICAgaWYgKGZpZWxkID09IG51bGwpIGNvbnRpbnVlO1xuXG4gICAgICAgIC8vIOiOt+WPluivpeWIl+WvueW6lOeahOWuveW6plxuICAgICAgICBjb25zdCBjb2x1bW5XaWR0aCA9IGNvb3JkaW5hdGUuZ2V0Q29sdW1uV2lkdGgoY29sdW1uSW5kZXgpO1xuICAgICAgICBjb25zdCB4ID0gY29vcmRpbmF0ZS5nZXRDb2x1bW5PZmZzZXQoY29sdW1uSW5kZXgpICsgQUlfVEFCTEVfT0ZGU0VUO1xuICAgICAgICBjb25zdCBpc0xhc3RDb2x1bW4gPSBjb2x1bW5JbmRleCA9PT0gYWlUYWJsZS5ncmlkRGF0YSgpLmZpZWxkcz8ubGVuZ3RoIC0gMTtcblxuICAgICAgICBpZiAoY29sdW1uSW5kZXggPT09IDEpIHtcbiAgICAgICAgICAgIGNlbGxEcmF3ZXIuaW5pdFN0eWxlKGZpZWxkLCB7IGZvbnRXZWlnaHQ6IERFRkFVTFRfRk9OVF9TVFlMRSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIOmBjeWOhuihjCwg5LuOIHJvd1N0YXJ0SW5kZXgg5YiwIHJvd1N0b3BJbmRleCDnmoTmiYDmnInooYzvvIzlhrPlrprlsIblnKjlk6rkupvooYzkuIrnu5jliLbljZXlhYPmoLxcbiAgICAgICAgZm9yIChsZXQgcm93SW5kZXggPSByb3dTdGFydEluZGV4OyByb3dJbmRleCA8PSByb3dTdG9wSW5kZXg7IHJvd0luZGV4KyspIHtcbiAgICAgICAgICAgIGlmIChyb3dJbmRleCA+IHJvd0NvdW50IC0gMSkgYnJlYWs7XG4gICAgICAgICAgICBjb25zdCByb3cgPSBjb250ZXh0LmxpbmVhclJvd3MoKVtyb3dJbmRleF07XG4gICAgICAgICAgICBjb25zdCB7IF9pZDogcmVjb3JkSWQsIHR5cGUgfSA9IHJvdztcbiAgICAgICAgICAgIGNvbnN0IHkgPSBjb29yZGluYXRlLmdldFJvd09mZnNldChyb3dJbmRleCkgKyBBSV9UQUJMRV9PRkZTRVQ7XG4gICAgICAgICAgICBjb25zdCB7IHJvd0luZGV4OiBwb2ludFJvd0luZGV4LCB0YXJnZXROYW1lIH0gPSBjb250ZXh0LnBvaW50UG9zaXRpb24oKTtcbiAgICAgICAgICAgIGNvbnN0IGlzSG92ZXIgPSBwb2ludFJvd0luZGV4ID09PSByb3dJbmRleDtcblxuICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBBSVRhYmxlUm93VHlwZS5hZGQ6IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNIb3ZlclJvdyA9IGlzSG92ZXIgJiYgdGFyZ2V0TmFtZSA9PT0gQUlfVEFCTEVfUk9XX0FERF9CVVRUT047XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzQ2hlY2tlZFJvdyA9IGFpVGFibGUuc2VsZWN0aW9uKCkuc2VsZWN0ZWRSZWNvcmRzLmhhcyhyb3cuX2lkKTtcbiAgICAgICAgICAgICAgICAgICAgYWRkUm93TGF5b3V0LmluaXQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgeCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHksXG4gICAgICAgICAgICAgICAgICAgICAgICByb3dJbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbkluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uV2lkdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICByb3dIZWlnaHQ6IEFJX1RBQkxFX0ZJRUxEX0hFQURfSEVJR0hULFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uQ291bnQsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJXaWR0aDogY29vcmRpbmF0ZS5jb250YWluZXJXaWR0aFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgYWRkUm93TGF5b3V0LnJlbmRlcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBpc0hvdmVyUm93LFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNDaGVja2VkUm93XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSBBSVRhYmxlUm93VHlwZS5yZWNvcmQ6IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmllbGRJZCA9IGZpZWxkLl9pZDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2VsbDogQUlSZWNvcmRGaWVsZElkUGF0aCA9IFtyZWNvcmRJZCwgZmllbGRJZF07XG4gICAgICAgICAgICAgICAgICAgIGxldCBiYWNrZ3JvdW5kID0gZ2V0Q2VsbEJhY2tncm91bmQoY2VsbCwgaXNIb3ZlciwgdGFyZ2V0TmFtZSwgYWlUYWJsZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkUm93TGF5b3V0LmluaXQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgeCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHksXG4gICAgICAgICAgICAgICAgICAgICAgICByb3dJbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbkluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uV2lkdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICByb3dIZWlnaHQsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5Db3VudCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcldpZHRoOiBjb29yZGluYXRlLmNvbnRhaW5lcldpZHRoXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICByZWNvcmRSb3dMYXlvdXQucmVuZGVyKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7IGZpbGw6IGJhY2tncm91bmQgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzSG92ZXJSb3c6IGlzSG92ZXJSZWNvcmQoaXNIb3ZlciwgdGFyZ2V0TmFtZSksXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0NoZWNrZWRSb3c6IGlzU2VsZWN0ZWRSZWNvcmQocmVjb3JkSWQsIGFpVGFibGUpXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHdpZHRoLCBvZmZzZXQgfSA9IGdldENlbGxIb3Jpem9udGFsUG9zaXRpb24oe1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uSW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5XaWR0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbkNvdW50XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZWFsWCA9IHggKyBvZmZzZXQgKyBBSV9UQUJMRV9PRkZTRVQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlYWxZID0geSArIEFJX1RBQkxFX09GRlNFVDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3R5bGUgPSB7IGZvbnRXZWlnaHQ6IERFRkFVTFRfRk9OVF9TVFlMRSB9O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjZWxsVmFsdWUgPSBBSVRhYmxlUXVlcmllcy5nZXRGaWVsZFZhbHVlKGFpVGFibGUsIFtyZWNvcmRJZCwgZmllbGRJZF0pO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0cmFuc2Zvcm1WYWx1ZSA9IHRyYW5zZm9ybUNlbGxWYWx1ZShhaVRhYmxlLCBmaWVsZCwgY2VsbFZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVuZGVyID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWlUYWJsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHg6IHJlYWxYLFxuICAgICAgICAgICAgICAgICAgICAgICAgeTogcmVhbFksXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5XaWR0aDogd2lkdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICByb3dIZWlnaHQsXG4gICAgICAgICAgICAgICAgICAgICAgICByZWNvcmRJZDogcmVjb3JkSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGxWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybVZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmZXJlbmNlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzQWN0aXZlOiBpc1NlbGVjdGVkRmllbGQoZmllbGRJZCwgYWlUYWJsZSksXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yc1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAvLyBob3ZlciDnu4Tku7bmuLLmn5Pml7bvvIzlupXlsYLnmoQgY2VsbCDmuLLmn5PkuLrnqbpcbiAgICAgICAgICAgICAgICAgICAgaWYgKGhvdmVyQ2VsbCAmJiBob3ZlckNlbGwucmVjb3JkSWQgPT09IHJlY29yZElkICYmIGhvdmVyQ2VsbC5maWVsZElkID09PSBmaWVsZElkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZW5kZXIuY2VsbFZhbHVlID0gJyc7XG4gICAgICAgICAgICAgICAgICAgICAgICByZW5kZXIudHJhbnNmb3JtVmFsdWUgPSAnJztcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGNlbGxEcmF3ZXIuaW5pdFN0eWxlKGZpZWxkLCBzdHlsZSk7XG4gICAgICAgICAgICAgICAgICAgIC8vIOacgOWQjuS4gOWIl++8jOS4lOWNleWFg+agvOWGheWuueWtmOWcqO+8jOmcgOimgeijgeWJquWGheWuue+8jOS7pemYsuatouaWh+acrOa6ouWHuuWNleWFg+agvOi+ueeVjFxuICAgICAgICAgICAgICAgICAgICAvLyDnhLblkI7vvIzmoLnmja7orqHnrpflpb3nmoTmoLflvI/lkozluIPlsYDnu5jliLbljZXlhYPmoLzlhoXlrrlcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzTGFzdENvbHVtbiAmJiBjZWxsVmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY3R4LnNhdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGN0eC5yZWN0KHJlYWxYLCByZWFsWSwgd2lkdGgsIHJvd0hlaWdodCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjdHguY2xpcCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2VsbERyYXdlci5yZW5kZXJDZWxsKHJlbmRlciBhcyBBSVRhYmxlUmVuZGVyLCBjdHggYXMgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGN0eC5yZXN0b3JlKCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjZWxsRHJhd2VyLnJlbmRlckNlbGwocmVuZGVyIGFzIEFJVGFibGVSZW5kZXIsIGN0eCBhcyBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufTtcblxuY29uc3QgZ2V0Q2VsbEJhY2tncm91bmQgPSAoY2VsbDogQUlSZWNvcmRGaWVsZElkUGF0aCwgaXNIb3ZlcjogYm9vbGVhbiwgdGFyZ2V0TmFtZTogc3RyaW5nLCBhaVRhYmxlOiBBSVRhYmxlKTogc3RyaW5nID0+IHtcbiAgICBjb25zdCBjb2xvcnMgPSBBSVRhYmxlLmdldENvbG9ycygpO1xuICAgIGNvbnN0IFtyZWNvcmRJZCwgZmllbGRJZF0gPSBjZWxsO1xuICAgIGxldCBiYWNrZ3JvdW5kID0gY29sb3JzLndoaXRlO1xuXG4gICAgY29uc3QgX2lzSG92ZXJSZWNvcmQgPSBpc0hvdmVyUmVjb3JkKGlzSG92ZXIsIHRhcmdldE5hbWUpO1xuICAgIGNvbnN0IF9pc1NlbGVjdGVkUmVjb3JkID0gaXNTZWxlY3RlZFJlY29yZChyZWNvcmRJZCwgYWlUYWJsZSk7XG4gICAgY29uc3QgX2lzU2VsZWN0ZWRGaWVsZCA9IGlzU2VsZWN0ZWRGaWVsZChmaWVsZElkLCBhaVRhYmxlKTtcbiAgICBjb25zdCBfaXNTaWJsaW5nQ2VsbCA9IGlzU2libGluZ0NlbGwoY2VsbCwgYWlUYWJsZSk7XG4gICAgY29uc3QgX2lzQWN0aXZlQ2VsbCA9IGlzQWN0aXZlQ2VsbChjZWxsLCBhaVRhYmxlKTtcbiAgICBjb25zdCBfaXNTZWxlY3RlZENlbGwgPSBpc1NlbGVjdGVkQ2VsbChjZWxsLCBhaVRhYmxlKTtcbiAgICBjb25zdCBfaXNLZXl3b3Jkc01hdGNoZWRDZWxsID0gaXNLZXl3b3Jkc01hdGNoZWRDZWxsKGNlbGwsIGFpVGFibGUpO1xuXG4gICAgaWYgKF9pc0tleXdvcmRzTWF0Y2hlZENlbGwpIHtcbiAgICAgICAgYmFja2dyb3VuZCA9IGNvbG9ycy5pdGVtTWF0Y2hCZ0NvbG9yO1xuICAgIH0gZWxzZSBpZiAoX2lzU2VsZWN0ZWRSZWNvcmQgfHwgX2lzU2VsZWN0ZWRGaWVsZCB8fCBfaXNTaWJsaW5nQ2VsbCB8fCAoX2lzU2VsZWN0ZWRDZWxsICYmICFfaXNBY3RpdmVDZWxsKSkge1xuICAgICAgICBiYWNrZ3JvdW5kID0gY29sb3JzLml0ZW1BY3RpdmVCZ0NvbG9yO1xuICAgIH0gZWxzZSBpZiAoX2lzSG92ZXJSZWNvcmQgJiYgIV9pc0FjdGl2ZUNlbGwpIHtcbiAgICAgICAgYmFja2dyb3VuZCA9IGNvbG9ycy5ncmF5ODA7XG4gICAgfVxuXG4gICAgcmV0dXJuIGJhY2tncm91bmQ7XG59O1xuXG5leHBvcnQgY29uc3QgaXNBY3RpdmVDZWxsID0gKGNlbGw6IEFJUmVjb3JkRmllbGRJZFBhdGgsIGFpVGFibGU6IEFJVGFibGUpOiBib29sZWFuID0+IHtcbiAgICBjb25zdCBbcmVjb3JkSWQsIGZpZWxkSWRdID0gY2VsbDtcbiAgICBjb25zdCBbYWN0aXZlUmVjb3JkSWQsIGFjdGl2ZUZpZWxkSWRdID0gQUlUYWJsZS5nZXRBY3RpdmVDZWxsKGFpVGFibGUpIHx8IFtdO1xuICAgIHJldHVybiByZWNvcmRJZCA9PT0gYWN0aXZlUmVjb3JkSWQgJiYgZmllbGRJZCA9PT0gYWN0aXZlRmllbGRJZDtcbn07XG5cbmNvbnN0IGlzU2libGluZ0NlbGwgPSAoY2VsbDogQUlSZWNvcmRGaWVsZElkUGF0aCwgYWlUYWJsZTogQUlUYWJsZSk6IGJvb2xlYW4gPT4ge1xuICAgIGNvbnN0IFtyZWNvcmRJZCwgZmllbGRJZF0gPSBjZWxsO1xuICAgIGNvbnN0IFthY3RpdmVSZWNvcmRJZCwgYWN0aXZlRmllbGRJZF0gPSBBSVRhYmxlLmdldEFjdGl2ZUNlbGwoYWlUYWJsZSkgfHwgW107XG4gICAgcmV0dXJuIEFJVGFibGUuZ2V0QWN0aXZlUmVjb3JkSWRzKGFpVGFibGUpLmxlbmd0aCA9PT0gMSAmJiByZWNvcmRJZCA9PT0gYWN0aXZlUmVjb3JkSWQgJiYgZmllbGRJZCAhPT0gYWN0aXZlRmllbGRJZDtcbn07XG5cbmNvbnN0IGlzS2V5d29yZHNNYXRjaGVkQ2VsbCA9IChjZWxsOiBBSVJlY29yZEZpZWxkSWRQYXRoLCBhaVRhYmxlOiBBSVRhYmxlKTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgW3JlY29yZElkLCBmaWVsZElkXSA9IGNlbGw7XG4gICAgcmV0dXJuIGFpVGFibGUua2V5d29yZHNNYXRjaGVkQ2VsbHMoKS5oYXMoYCR7cmVjb3JkSWR9OiR7ZmllbGRJZH1gKTtcbn07XG5cbmNvbnN0IGlzU2VsZWN0ZWRDZWxsID0gKGNlbGw6IEFJUmVjb3JkRmllbGRJZFBhdGgsIGFpVGFibGU6IEFJVGFibGUpOiBib29sZWFuID0+IHtcbiAgICBjb25zdCBbcmVjb3JkSWQsIGZpZWxkSWRdID0gY2VsbDtcbiAgICByZXR1cm4gYWlUYWJsZS5zZWxlY3Rpb24oKS5zZWxlY3RlZENlbGxzLmhhcyhgJHtyZWNvcmRJZH06JHtmaWVsZElkfWApO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzU2VsZWN0ZWRGaWVsZCA9IChmaWVsZElkOiBzdHJpbmcsIGFpVGFibGU6IEFJVGFibGUpOiBib29sZWFuID0+IHtcbiAgICByZXR1cm4gYWlUYWJsZS5zZWxlY3Rpb24oKS5zZWxlY3RlZEZpZWxkcy5oYXMoZmllbGRJZCk7XG59O1xuXG5jb25zdCBpc1NlbGVjdGVkUmVjb3JkID0gKHJlY29yZElkOiBzdHJpbmcsIGFpVGFibGU6IEFJVGFibGUpOiBib29sZWFuID0+IHtcbiAgICByZXR1cm4gYWlUYWJsZS5zZWxlY3Rpb24oKS5zZWxlY3RlZFJlY29yZHMuaGFzKHJlY29yZElkKTtcbn07XG5cbmNvbnN0IGlzSG92ZXJSZWNvcmQgPSAoaXNIb3ZlcjogYm9vbGVhbiwgdGFyZ2V0TmFtZTogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gICAgcmV0dXJuIGlzSG92ZXIgJiYgdGFyZ2V0TmFtZSAhPT0gQUlfVEFCTEVfRklFTERfSEVBRDtcbn07XG4iXX0=
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { AddOutlinedPath, AI_TABLE_CELL_PADDING, AI_TABLE_FIELD_ADD_BUTTON_WIDTH, AI_TABLE_ICON_COMMON_SIZE, AI_TABLE_OFFSET, AI_TABLE_ROW_HEAD_SIZE, AI_TABLE_ROW_HEAD_WIDTH } from '../../constants';
|
1
|
+
import { AddOutlinedPath, AI_TABLE_CELL_PADDING, AI_TABLE_FIELD_ADD_BUTTON_WIDTH, AI_TABLE_ICON_COMMON_SIZE, AI_TABLE_OFFSET, AI_TABLE_ROW_DRAG_ICON_WIDTH, AI_TABLE_ROW_HEAD_SIZE, AI_TABLE_ROW_HEAD_WIDTH } from '../../constants';
|
2
2
|
import { Layout } from './layout-drawer';
|
3
3
|
export class AddRowLayout extends Layout {
|
4
4
|
renderAddFieldBlank({ isHoverRow, isCheckedRow }) {
|
@@ -41,20 +41,20 @@ export class AddRowLayout extends Layout {
|
|
41
41
|
const frozenOffset = AI_TABLE_OFFSET;
|
42
42
|
const fill = isHoverRow ? this.colors.gray80 : this.colors.transparent;
|
43
43
|
this.rect({
|
44
|
-
x: frozenOffset,
|
44
|
+
x: frozenOffset + AI_TABLE_ROW_DRAG_ICON_WIDTH,
|
45
45
|
y: y + AI_TABLE_OFFSET,
|
46
46
|
width: columnWidth + AI_TABLE_ROW_HEAD_WIDTH - frozenOffset + 1,
|
47
47
|
height: rowHeight,
|
48
48
|
fill
|
49
49
|
});
|
50
50
|
this.line({
|
51
|
-
x: frozenOffset,
|
51
|
+
x: frozenOffset + AI_TABLE_ROW_DRAG_ICON_WIDTH,
|
52
52
|
y,
|
53
53
|
points: [0, rowHeight, columnWidth + AI_TABLE_ROW_HEAD_WIDTH - frozenOffset + 1, rowHeight],
|
54
54
|
stroke: this.colors.gray200
|
55
55
|
});
|
56
56
|
this.path({
|
57
|
-
x: AI_TABLE_CELL_PADDING,
|
57
|
+
x: AI_TABLE_CELL_PADDING + AI_TABLE_ROW_DRAG_ICON_WIDTH,
|
58
58
|
y: y + (rowHeight - AI_TABLE_ICON_COMMON_SIZE) / 2 - AI_TABLE_OFFSET,
|
59
59
|
data: AddOutlinedPath,
|
60
60
|
size: AI_TABLE_ROW_HEAD_SIZE,
|
@@ -95,4 +95,4 @@ export class AddRowLayout extends Layout {
|
|
95
95
|
}
|
96
96
|
}
|
97
97
|
export const addRowLayout = new AddRowLayout();
|
98
|
-
//# sourceMappingURL=data:application/json;base64,
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXJvdy1sYXlvdXQtZHJhd2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ3JpZC9zcmMvcmVuZGVyZXIvZHJhd2Vycy9hZGQtcm93LWxheW91dC1kcmF3ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGVBQWUsRUFDZixxQkFBcUIsRUFDckIsK0JBQStCLEVBQy9CLHlCQUF5QixFQUN6QixlQUFlLEVBQ2YsNEJBQTRCLEVBQzVCLHNCQUFzQixFQUN0Qix1QkFBdUIsRUFDMUIsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekMsTUFBTSxPQUFPLFlBQWEsU0FBUSxNQUFNO0lBQzNCLG1CQUFtQixDQUFDLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBb0Q7UUFDdkcsS0FBSyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDeEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNqQyxNQUFNLFlBQVksR0FBRywrQkFBK0IsQ0FBQztRQUNyRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN4RyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ04sQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVc7WUFDNUIsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ1QsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDO1lBQ3hDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxD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QUMsVUFBVSxDQUFDO2dCQUNaLEtBQUs7Z0JBQ0wsVUFBVTthQUNiLENBQUMsQ0FBQztRQUNQLENBQUM7UUFDRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsRUFBRSxVQUFVLEVBQW1DO1FBQ3BFLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU87UUFDeEMsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNaLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVztZQUN2QixVQUFVO1NBQ2IsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELE1BQU0sQ0FBQyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQW9EO1FBQ2pGLElBQUksQ0FBQyxlQUFlLENBQUM7WUFDakIsVUFBVTtTQUNiLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztZQUNsQixVQUFVO1NBQ2IsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUNoQixVQUFVO1lBQ1YsWUFBWTtTQUNmLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSjtBQUVELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZGRPdXRsaW5lZFBhdGgsXG4gICAgQUlfVEFCTEVfQ0VMTF9QQURESU5HLFxuICAgIEFJX1RBQkxFX0ZJRUxEX0FERF9CVVRUT05fV0lEVEgsXG4gICAgQUlfVEFCTEVfSUNPTl9DT01NT05fU0laRSxcbiAgICBBSV9UQUJMRV9PRkZTRVQsXG4gICAgQUlfVEFCTEVfUk9XX0RSQUdfSUNPTl9XSURUSCxcbiAgICBBSV9UQUJMRV9ST1dfSEVBRF9TSVpFLFxuICAgIEFJX1RBQkxFX1JPV19IRUFEX1dJRFRIXG59IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBBSVRhYmxlQ2VsbCB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IExheW91dCB9IGZyb20gJy4vbGF5b3V0LWRyYXdlcic7XG5cbmV4cG9ydCBjbGFzcyBBZGRSb3dMYXlvdXQgZXh0ZW5kcyBMYXlvdXQge1xuICAgIG92ZXJyaWRlIHJlbmRlckFkZEZpZWxkQmxhbmsoeyBpc0hvdmVyUm93LCBpc0NoZWNrZWRSb3cgfTogUGljazxBSVRhYmxlQ2VsbCwgJ2lzSG92ZXJSb3cnIHwgJ2lzQ2hlY2tlZFJvdyc+KSB7XG4gICAgICAgIHN1cGVyLnJlbmRlckFkZEZpZWxkQmxhbmsoeyBpc0hvdmVyUm93LCBpc0NoZWNrZWRSb3cgfSk7XG4gICAgICAgIGNvbnN0IHJvd0hlaWdodCA9IHRoaXMucm93SGVpZ2h0O1xuICAgICAgICBjb25zdCBkZWZhdWx0V2lkdGggPSBBSV9UQUJMRV9GSUVMRF9BRERfQlVUVE9OX1dJRFRIO1xuICAgICAgICBjb25zdCB3aWR0aCA9IHRoaXMuY29udGFpbmVyV2lkdGggLSB0aGlzLnggPCBkZWZhdWx0V2lkdGggPyBkZWZhdWx0V2lkdGggOiB0aGlzLmNvbnRhaW5lcldpZHRoIC0gdGhpcy54O1xuICAgICAgICB0aGlzLmxpbmUoe1xuICAgICAgICAgICAgeDogdGhpcy54ICsgdGhpcy5jb2x1bW5XaWR0aCxcbiAgICAgICAgICAgIHk6IHRoaXMueSxcbiAgICAgICAgICAgIHBvaW50czogWzAsIHJvd0hlaWdodCwgd2lkdGgsIHJvd0hlaWdodF0sXG4gICAgICAgICAgICBzdHJva2U6IHRoaXMuY29sb3JzLmdyYXkyMDBcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW5kZXJDZWxsKHsgd2lkdGgsIGlzSG92ZXJSb3cgfTogUGljazxBSVRhYmxlQ2VsbCwgJ3dpZHRoJyB8ICdpc0hvdmVyUm93Jz4pIHtcbiAgICAgICAgY29uc3QgeCA9IHRoaXMueDtcbiAgICAgICAgY29uc3QgeSA9IHRoaXMueTtcbiAgICAgICAgY29uc3Qgcm93SGVpZ2h0ID0gdGhpcy5yb3dIZWlnaHQ7XG4gICAgICAgIGNvbnN0IGZpbGwgPSBpc0hvdmVyUm93ID8gdGhpcy5jb2xvcnMuZ3JheTgwIDogdGhpcy5jb2xvcnMudHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgdGhpcy5yZWN0KHtcbiAgICAgICAgICAgIHgsXG4gICAgICAgICAgICB5OiB5ICsgQUlfVEFCTEVfT0ZGU0VULFxuICAgICAgICAgICAgd2lkdGg6IHdpZHRoIGFzIG51bWJlcixcbiAgICAgICAgICAgIGhlaWdodDogcm93SGVpZ2h0LFxuICAgICAgICAgICAgZmlsbFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5saW5lKHtcbiAgICAgICAgICAgIHgsXG4gICAgICAgICAgICB5OiB5ICsgcm93SGVpZ2h0LFxuICAgICAgICAgICAgcG9pbnRzOiBbMCwgMCwgd2lkdGggYXMgbnVtYmVyLCAwXSxcbiAgICAgICAgICAgIHN0cm9rZTogdGhpcy5jb2xvcnMuZ3JheTIwMFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbmRlckZpcnN0Q2VsbCh7IGlzSG92ZXJSb3cgfTogUGljazxBSVRhYmxlQ2VsbCwgJ2lzSG92ZXJSb3cnPikge1xuICAgICAgICBpZiAoIXRoaXMuaXNGaXJzdCkgcmV0dXJuO1xuICAgICAgICBjb25zdCB5ID0gdGhpcy55O1xuICAgICAgICBjb25zdCByb3dIZWlnaHQgPSB0aGlzLnJvd0hlaWdodDtcbiAgICAgICAgY29uc3QgY29sdW1uV2lkdGggPSB0aGlzLmNvbHVtbldpZHRoO1xuICAgICAgICBjb25zdCBmcm96ZW5PZmZzZXQgPSBBSV9UQUJMRV9PRkZTRVQ7XG4gICAgICAgIGNvbnN0IGZpbGwgPSBpc0hvdmVyUm93ID8gdGhpcy5jb2xvcnMuZ3JheTgwIDogdGhpcy5jb2xvcnMudHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgdGhpcy5yZWN0KHtcbiAgICAgICAgICAgIHg6IGZyb3plbk9mZnNldCArIEFJX1RBQkxFX1JPV19EUkFHX0lDT05fV0lEVEgsXG4gICAgICAgICAgICB5OiB5ICsgQUlfVEFCTEVfT0ZGU0VULFxuICAgICAgICAgICAgd2lkdGg6IGNvbHVtbldpZHRoICsgQUlfVEFCTEVfUk9XX0hFQURfV0lEVEggLSBmcm96ZW5PZmZzZXQgKyAxLFxuICAgICAgICAgICAgaGVpZ2h0OiByb3dIZWlnaHQsXG4gICAgICAgICAgICBmaWxsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmxpbmUoe1xuICAgICAgICAgICAgeDogZnJvemVuT2Zmc2V0ICsgQUlfVEFCTEVfUk9XX0RSQUdfSUNPTl9XSURUSCxcbiAgICAgICAgICAgIHksXG4gICAgICAgICAgICBwb2ludHM6IFswLCByb3dIZWlnaHQsIGNvbHVtbldpZHRoICsgQUlfVEFCTEVfUk9XX0hFQURfV0lEVEggLSBmcm96ZW5PZmZzZXQgKyAxLCByb3dIZWlnaHRdLFxuICAgICAgICAgICAgc3Ryb2tlOiB0aGlzLmNvbG9ycy5ncmF5MjAwXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMucGF0aCh7XG4gICAgICAgICAgICB4OiBBSV9UQUJMRV9DRUxMX1BBRERJTkcgKyBBSV9UQUJMRV9ST1dfRFJBR19JQ09OX1dJRFRILFxuICAgICAgICAgICAgeTogeSArIChyb3dIZWlnaHQgLSBBSV9UQUJMRV9JQ09OX0NPTU1PTl9TSVpFKSAvIDIgLSBBSV9UQUJMRV9PRkZTRVQsXG4gICAgICAgICAgICBkYXRhOiBBZGRPdXRsaW5lZFBhdGgsXG4gICAgICAgICAgICBzaXplOiBBSV9UQUJMRV9ST1dfSEVBRF9TSVpFLFxuICAgICAgICAgICAgZmlsbDogdGhpcy5jb2xvcnMuZ3JheTYwMFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbmRlckxhc3RDZWxsKHsgaXNIb3ZlclJvdywgaXNDaGVja2VkUm93IH06IFBpY2s8QUlUYWJsZUNlbGwsICdpc0hvdmVyUm93JyB8ICdpc0NoZWNrZWRSb3cnPikge1xuICAgICAgICBpZiAoIXRoaXMuaXNMYXN0KSByZXR1cm47XG4gICAgICAgIGNvbnN0IHdpZHRoID0gdGhpcy5jb2x1bW5XaWR0aDtcbiAgICAgICAgaWYgKCF0aGlzLmlzRmlyc3QpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQ2VsbCh7XG4gICAgICAgICAgICAgICAgd2lkdGgsXG4gICAgICAgICAgICAgICAgaXNIb3ZlclJvd1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZW5kZXJBZGRGaWVsZEJsYW5rKHsgaXNIb3ZlclJvdywgaXNDaGVja2VkUm93IH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVuZGVyQ29tbW9uQ2VsbCh7IGlzSG92ZXJSb3cgfTogUGljazxBSVRhYmxlQ2VsbCwgJ2lzSG92ZXJSb3cnPikge1xuICAgICAgICBpZiAodGhpcy5pc0ZpcnN0IHx8IHRoaXMuaXNMYXN0KSByZXR1cm47XG4gICAgICAgIHRoaXMucmVuZGVyQ2VsbCh7XG4gICAgICAgICAgICB3aWR0aDogdGhpcy5jb2x1bW5XaWR0aCxcbiAgICAgICAgICAgIGlzSG92ZXJSb3dcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmVuZGVyKHsgaXNIb3ZlclJvdywgaXNDaGVja2VkUm93IH06IFBpY2s8QUlUYWJsZUNlbGwsICdpc0hvdmVyUm93JyB8ICdpc0NoZWNrZWRSb3cnPikge1xuICAgICAgICB0aGlzLnJlbmRlckZpcnN0Q2VsbCh7XG4gICAgICAgICAgICBpc0hvdmVyUm93XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnJlbmRlckNvbW1vbkNlbGwoe1xuICAgICAgICAgICAgaXNIb3ZlclJvd1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5yZW5kZXJMYXN0Q2VsbCh7XG4gICAgICAgICAgICBpc0hvdmVyUm93LFxuICAgICAgICAgICAgaXNDaGVja2VkUm93XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuZXhwb3J0IGNvbnN0IGFkZFJvd0xheW91dCA9IG5ldyBBZGRSb3dMYXlvdXQoKTtcbiJdfQ==
|