@wavemaker/app-ng-runtime 11.5.0-next.141085 → 11.5.0-next.141087
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.
- app-ng-runtime/build-task/bundles/index.umd.js +2 -2
- app-ng-runtime/build-task/esm2020/data/form/form-field/form-field.build.mjs +2 -2
- app-ng-runtime/build-task/esm2020/input/default/composite/composite.build.mjs +2 -2
- app-ng-runtime/build-task/fesm2015/index.mjs +2 -2
- app-ng-runtime/build-task/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/build-task/fesm2020/index.mjs +2 -2
- app-ng-runtime/build-task/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/base/bundles/index.umd.js +4 -4
- app-ng-runtime/components/base/directives/show-in-device.directive.d.ts +2 -2
- app-ng-runtime/components/base/esm2020/directives/show-in-device.directive.mjs +5 -5
- app-ng-runtime/components/base/fesm2015/index.mjs +4 -4
- app-ng-runtime/components/base/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/base/fesm2020/index.mjs +4 -4
- app-ng-runtime/components/base/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/input/default/bundles/index.umd.js +4 -4
- app-ng-runtime/components/input/default/caption-position.directive.d.ts +1 -1
- app-ng-runtime/components/input/default/esm2020/caption-position.directive.mjs +5 -5
- app-ng-runtime/components/input/default/fesm2015/index.mjs +4 -4
- app-ng-runtime/components/input/default/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/input/default/fesm2020/index.mjs +4 -4
- app-ng-runtime/components/input/default/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/package.json +1 -1
- app-ng-runtime/transpiler/bundles/index.umd.js +1 -1
- app-ng-runtime/transpiler/esm2020/build.mjs +2 -2
- app-ng-runtime/transpiler/fesm2015/index.mjs +1 -1
- app-ng-runtime/transpiler/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/transpiler/fesm2020/index.mjs +1 -1
- app-ng-runtime/transpiler/fesm2020/index.mjs.map +1 -1
app-ng-runtime/package.json
CHANGED
|
@@ -10,7 +10,7 @@ const isString = v => typeof v === 'string';
|
|
|
10
10
|
const OVERRIDES = {
|
|
11
11
|
'accessroles': '*accessroles',
|
|
12
12
|
'ng-if': '*ngIf',
|
|
13
|
-
'showindevice': '*
|
|
13
|
+
'showindevice': '*wmShowInDevice',
|
|
14
14
|
'ng-class': '[ngClass]',
|
|
15
15
|
'data-ng-class': '[ngClass]',
|
|
16
16
|
'data-ng-src': 'src',
|
|
@@ -482,4 +482,4 @@ export const scopeComponentStyles = (componentName, componentType, styles = '')
|
|
|
482
482
|
}
|
|
483
483
|
return styles;
|
|
484
484
|
};
|
|
485
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy90cmFuc3BpbGVyL3NyYy9idWlsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsVUFBVSxFQUNWLE9BQU8sRUFDUCxJQUFJLEVBQ0osT0FBTyxFQUNQLG9CQUFvQixFQUN2QixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUl2QyxNQUFNLFNBQVMsR0FBRztJQUNkLGVBQWUsRUFBRywwQkFBMEI7SUFDNUMsZUFBZSxFQUFHLGNBQWM7SUFDaEMsdUJBQXVCLEVBQUcsa0VBQWtFO0NBQy9GLENBQUM7QUFFRixNQUFNLFFBQVEsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQztBQU81QyxNQUFNLFNBQVMsR0FBRztJQUNkLGFBQWEsRUFBRSxjQUFjO0lBQzdCLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLGNBQWMsRUFBRSxlQUFlO0lBQy9CLFVBQVUsRUFBRSxXQUFXO0lBQ3ZCLGVBQWUsRUFBRSxXQUFXO0lBQzVCLGFBQWEsRUFBRSxLQUFLO0lBQ3BCLFFBQVEsRUFBRSxLQUFLO0lBQ2YsY0FBYyxFQUFFLE1BQU07SUFDdEIsU0FBUyxFQUFFLE1BQU07SUFDakIsYUFBYSxFQUFFLFVBQVU7SUFDekIsa0JBQWtCLEVBQUUsVUFBVTtJQUM5QixVQUFVLEVBQUUsbURBQW1EO0NBQ2xFLENBQUM7QUFFRixNQUFNLGVBQWUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFFekMsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsS0FBYSxFQUFFLEVBQUU7SUFDNUMsSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNSLE9BQU8sSUFBSSxDQUFD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ZXh0LFxuICAgIENvbW1lbnQsXG4gICAgZ2V0SHRtbFRhZ0RlZmluaXRpb24sIFBhcnNlU291cmNlU3BhblxufSBmcm9tICdAYW5ndWxhci9jb21waWxlcic7XG5pbXBvcnQgeyBXSURHRVRfSU1QT1JUUyB9IGZyb20gJy4vaW1wb3J0cyc7XG5pbXBvcnQgeyBpc01vYmlsZUFwcCB9IGZyb20gJ0B3bS9jb3JlJztcblxuZGVjbGFyZSBjb25zdCBfO1xuXG5jb25zdCBDU1NfUkVHRVggPSB7XG4gICAgQ09NTUVOVFNfRk9STUFUIDogL1xcL1xcKigoPyFcXCpcXC8pLnxcXG4pK1xcKlxcLy9nLFxuICAgIFNFTEVDVE9SX0ZPUk1BVCA6IC9bXlxce1xcfV0qXFx7L2dpLFxuICAgIFNFTEVDVE9SX0VYQ0xVREVfRk9STUFUIDogLyhAa2V5ZnJhbWVzfEBtZWRpYXxAZm9udC1mYWNlfEBjb21tZW50WzAtOV0rfGZyb218dG98WzAtOV0rJSlcXGIvaVxufTtcblxuY29uc3QgaXNTdHJpbmcgPSB2ID0+IHR5cGVvZiB2ID09PSAnc3RyaW5nJztcblxuaW50ZXJmYWNlIElQcm92aWRlckluZm8ge1xuICAgIG5vZGVOYW1lOiBzdHJpbmc7XG4gICAgcHJvdmlkZTogTWFwPHN0cmluZywgYW55Pjtcbn1cblxuY29uc3QgT1ZFUlJJREVTID0ge1xuICAgICdhY2Nlc3Nyb2xlcyc6ICcqYWNjZXNzcm9sZXMnLFxuICAgICduZy1pZic6ICcqbmdJZicsXG4gICAgJ3Nob3dpbmRldmljZSc6ICcqc2hvd0luRGV2aWNlJyxcbiAgICAnbmctY2xhc3MnOiAnW25nQ2xhc3NdJyxcbiAgICAnZGF0YS1uZy1jbGFzcyc6ICdbbmdDbGFzc10nLFxuICAgICdkYXRhLW5nLXNyYyc6ICdzcmMnLFxuICAgICduZy1zcmMnOiAnc3JjJyxcbiAgICAnZGF0YS1uZy1ocmVmJzogJ2hyZWYnLFxuICAgICduZy1ocmVmJzogJ2hyZWYnLFxuICAgICduZy1kaXNhYmxlZCc6ICdkaXNhYmxlZCcsXG4gICAgJ2RhdGEtbmctZGlzYWJsZWQnOiAnZGlzYWJsZWQnLFxuICAgICduZy1tb2RlbCc6ICdbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCIgWyhuZ01vZGVsKV0nXG59O1xuXG5jb25zdCBzZWxmQ2xvc2luZ1RhZ3MgPSBuZXcgU2V0KFsnaW1nJ10pO1xuXG5leHBvcnQgY29uc3QgZ2V0Qm91bmRUb0V4cHIgPSAodmFsdWU6IHN0cmluZykgPT4ge1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgdmFsdWUgPSB2YWx1ZS50cmltKCk7XG4gICAgaWYgKHZhbHVlLnN0YXJ0c1dpdGgoJ2JpbmQ6JykpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlLnN1YnN0cig1KTtcbiAgICB9XG59O1xuXG5jb25zdCBxdW90ZUF0dHIgPSB2ID0+IHtcbiAgICByZXR1cm4gKCcnICsgdikgLyogRm9yY2VzIHRoZSBjb252ZXJzaW9uIHRvIHN0cmluZy4gKi9cbiAgICAgICAgLnJlcGxhY2UoLyYvZywgJyZhbXA7JykgLyogVGhpcyBNVVNUIGJlIHRoZSAxc3QgcmVwbGFjZW1lbnQuICovXG4gICAgICAgIC5yZXBsYWNlKC8nL2csICcmYXBvczsnKSAvKiBUaGUgNCBvdGhlciBwcmVkZWZpbmVkIGVudGl0aWVzLCByZXF1aXJlZC4gKi9cbiAgICAgICAgLnJlcGxhY2UoL1wiL2csICcmcXVvdDsnKVxuICAgICAgICAucmVwbGFjZSgvPC9nLCAnJmx0OycpXG4gICAgICAgIC5yZXBsYWNlKC8+L2csICcmZ3Q7Jyk7XG59O1xuXG5jb25zdCByZWdpc3RyeSA9IG5ldyBNYXA8c3RyaW5nLCBhbnk+KCk7XG5jb25zdCBodG1sUGFyc2VyID0gbmV3IEh0bWxQYXJzZXIoKTtcbmNvbnN0IGlnbm9yZUNvbW1lbnRzID0gdHJ1ZTtcblxuY29uc3QgZW1wdHkgPSAoKSA9PiAnJztcblxuY29uc3QgaXNFdmVudCA9IG5hbWUgPT4gbmFtZVswXSA9PT0gJ28nICYmIG5hbWVbMV0gPT09ICduJyAmJiBuYW1lWzJdID09PSAnLSc7XG5cbmNvbnN0IGdldEV2ZW50TmFtZSA9IGtleSA9PiBrZXkuc3Vic3RyKDMpO1xuXG5jb25zdCBwcm9jZXNzQmluZGluZyA9IChhdHRyLCBleHByKSA9PiBbYCR7YXR0ci5uYW1lfS5iaW5kYCwgcXVvdGVBdHRyKGV4cHIpXTtcblxuY29uc3QgcHJvY2Vzc0V2ZW50ID0gYXR0ciA9PiB7XG4gICAgY29uc3QgZXZ0TmFtZSA9IGdldEV2ZW50TmFtZShhdHRyLm5hbWUpO1xuICAgIHJldHVybiBbYCR7ZXZ0TmFtZX0uZXZlbnRgLCBhdHRyLnZhbHVlXTtcbn07XG5cbi8qKlxuICogV3JhcHMgdGhlIHN0cmluZyB3aXRoIHNpbmdsZSBxdW90ZXMuXG4gKiBAcGFyYW0gdmFsXG4gKi9cbmNvbnN0IHdyYXBXaXRoQXBvcyA9ICh2YWw6IHN0cmluZykgPT4ge1xuICAgIHJldHVybiBgJmFwb3M7JHt2YWwucmVwbGFjZSgvJmFwb3MvZywgJyZxdW90JykucmVwbGFjZSgvJnF1b3QvZywgJ1xcXFwmcXVvdCcpfSZhcG9zO2A7XG59O1xuY29uc3QgRUxFX1BSRUZJWCA9ICcud20tYXBwJztcblxuY29uc3QgcHJvY2Vzc0F0dHIgPSBhdHRyID0+IHtcbiAgICBsZXQgb3ZlcnJpZGRlbiA9IE9WRVJSSURFU1thdHRyLm5hbWVdO1xuICAgIGNvbnN0IHZhbHVlID0gYXR0ci52YWx1ZVNwYW4gPyBhdHRyLnZhbHVlIDogdW5kZWZpbmVkO1xuXG4gICAgLy8gZG8gbm90IGFwcGVuZCBzaG93SW5EZXZpY2UgYXR0cmlidXRlIGZvciBtb2JpbGUgYXBwbGljYXRpb24uXG4gICAgaWYgKGF0dHIubmFtZSA9PT0gJ3Nob3dpbmRldmljZScgJiYgaXNNb2JpbGVBcHAoKSkge1xuICAgICAgICBvdmVycmlkZGVuID0gJyc7XG4gICAgfVxuICAgIGlmIChvdmVycmlkZGVuKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiB3cmFwIHZhbHVlIGZvciBhY2Nlc3Nyb2xlcyB3aXRoICcnLlxuICAgICAgICAgKiBzaW5jZSBhY2Nlc3Nyb2xlcyBpcyBhIHN0cnVjdHVyYWwgZGlyZWN0aXZlLCBpdCB3aWxsIGJlIHRyYW5zcGlsZWQgdG8gW2FjY2Vzc3JvbGVzXVxuICAgICAgICAgKiBoZW5jZSwgdGhlIHZhbHVlIGFnYWluc3QgaXQgc2hvdWxkIGJlIGEgY29tcHV0ZWQgc3RyaW5nXG4gICAgICAgICAqL1xuICAgICAgICBpZiAoYXR0ci5uYW1lID09PSAnYWNjZXNzcm9sZXMnIHx8IGF0dHIubmFtZSA9PT0gJ3Nob3dpbmRldmljZScpIHtcbiAgICAgICAgICAgIHJldHVybiBbb3ZlcnJpZGRlbiwgYCcke3ZhbHVlfSdgXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW292ZXJyaWRkZW4sIHF1b3RlQXR0cih2YWx1ZSldO1xuICAgIH1cblxuICAgIGlmIChpc0V2ZW50KGF0dHIubmFtZSkpIHtcbiAgICAgICAgcmV0dXJuIHByb2Nlc3NFdmVudChhdHRyKTtcbiAgICB9XG5cbiAgICBjb25zdCBib3VuZEV4cHIgPSBnZXRCb3VuZFRvRXhwcihhdHRyLnZhbHVlKTtcbiAgICBpZiAoYm91bmRFeHByKSB7XG4gICAgICAgIHJldHVybiBwcm9jZXNzQmluZGluZyhhdHRyLCBib3VuZEV4cHIpO1xuICAgIH1cblxuICAgIHJldHVybiBbYXR0ci5uYW1lLCBxdW90ZUF0dHIodmFsdWUpXTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXREYXRhU291cmNlID0gKGRhdGFTZXRFeHByOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICAgIGNvbnN0IHBhcnRzID0gZGF0YVNldEV4cHIuc3BsaXQoJy4nKTtcbiAgICBpZiAocGFydHNbMF0gPT09ICdWYXJpYWJsZXMnIHx8IHBhcnRzWzBdID09PSAnV2lkZ2V0cycpIHtcbiAgICAgICAgcmV0dXJuIGAke3BhcnRzWzBdfS4ke3BhcnRzWzFdfWA7XG4gICAgfVxufTtcblxuY29uc3Qgd2lkZ2V0Q2hpbGRBdHRycyA9ICgoKSA9PiB7XG4gICAgY29uc3QgY2hpbGRBdHRycyA9IG5ldyBNYXAoKTtcbiAgICBjb25zdCB2YWxpZENoaWxkQXR0cnMgPSBbXG4gICAgICAgIGByZXF1aXJlZGBcbiAgICBdO1xuICAgIHJldHVybiB7XG4gICAgICAgIHNldDogYXR0cnMgPT4ge1xuICAgICAgICAgICAgYXR0cnMuZm9yRWFjaCgodmFsLCBrZXkpID0+IHtcbiAgICAgICAgICAgICAgICB2YWxpZENoaWxkQXR0cnMuaW5jbHVkZXMoa2V5KSAmJiAoY2hpbGRBdHRycy5zZXQoa2V5LCB2YWwpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBnZXQ6IGF0dHJzID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZsdHJBdHRycyA9IG5ldyBNYXAoKTtcbiAgICAgICAgICAgIGNoaWxkQXR0cnMuZm9yRWFjaCgodmFsLCBrZXkpID0+IHtcbiAgICAgICAgICAgICAgICAhYXR0cnMuZ2V0KGtleSkgJiYgZmx0ckF0dHJzLnNldChrZXksIHZhbCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBmbHRyQXR0cnM7XG4gICAgICAgIH0sXG4gICAgICAgIGNsZWFyOiAoKSA9PiB7XG4gICAgICAgICAgICBjaGlsZEF0dHJzLmNsZWFyKCk7XG4gICAgICAgIH1cbiAgICB9O1xufSkoKTtcbmV4cG9ydCBjb25zdCBzZXRDaGlsZEF0dHJzID0gYXR0cnMgPT4ge1xuICAgIHdpZGdldENoaWxkQXR0cnMuc2V0KGF0dHJzKTtcbiAgICByZXR1cm4gJyc7XG59O1xuZXhwb3J0IGNvbnN0IGdldENoaWxkQXR0cnMgPSBhdHRycyA9PiB7XG4gICAgcmV0dXJuIGdldEF0dHJNYXJrdXAod2lkZ2V0Q2hpbGRBdHRycy5nZXQoYXR0cnMpKTtcbn07XG5leHBvcnQgY29uc3QgY2xlYXJDaGlsZEF0dHJzID0gKCkgPT4ge1xuICAgIHdpZGdldENoaWxkQXR0cnMuY2xlYXIoKTtcbiAgICByZXR1cm4gJyc7XG59O1xuZXhwb3J0IGNvbnN0IGdldEZvcm1NYXJrdXBBdHRyID0gYXR0cnMgPT4ge1xuICAgIGlmIChhdHRycy5nZXQoJ2RhdGF2YWx1ZS5iaW5kJykpIHtcbiAgICAgICAgY29uc3Qgb25EYXRhVmFsdWVCaW5kaW5nID0gZ2V0RGF0YVNvdXJjZShhdHRycy5nZXQoJ2RhdGF2YWx1ZS5iaW5kJykpO1xuICAgICAgICBhdHRycy5zZXQoJ2RhdGF2YWx1ZXNvdXJjZS5iaW5kJywgb25EYXRhVmFsdWVCaW5kaW5nKTtcbiAgICB9XG4gICAgcmV0dXJuIGdldEF0dHJNYXJrdXAoYXR0cnMpO1xufTtcblxuY29uc3QgZ2V0QXR0ck1hcCA9IGF0dHJzID0+IHtcbiAgICBjb25zdCBhdHRyTWFwID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcbiAgICBhdHRycy5mb3JFYWNoKGF0dHIgPT4ge1xuICAgICAgICBsZXQgW2F0dHJOYW1lLCBhdHRyVmFsdWVdID0gcHJvY2Vzc0F0dHIoYXR0cik7XG4gICAgICAgIGF0dHJNYXAuc2V0KGF0dHJOYW1lLCBhdHRyVmFsdWUpO1xuICAgIH0pO1xuXG4gICAgaWYgKGF0dHJNYXAuZ2V0KCdkYXRhc2V0LmJpbmQnKSkge1xuICAgICAgICBjb25zdCBkYXRhU291cmNlID0gZ2V0RGF0YVNvdXJjZShhdHRyTWFwLmdldCgnZGF0YXNldC5iaW5kJykpO1xuICAgICAgICBpZiAoZGF0YVNvdXJjZSkge1xuICAgICAgICAgICAgYXR0ck1hcC5zZXQoJ2RhdGFzb3VyY2UuYmluZCcsIGRhdGFTb3VyY2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGF0dHJNYXA7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0QXR0ck1hcmt1cCA9IChhdHRyczogTWFwPHN0cmluZywgc3RyaW5nPikgPT4ge1xuICAgIGxldCBhdHRyTWFya3VwID0gJyc7XG4gICAgYXR0cnMuZm9yRWFjaCgodiwgaykgPT4ge1xuICAgICAgICBhdHRyTWFya3VwICs9IGAgJHtrfWA7XG4gICAgICAgIGlmICh2KSB7XG4gICAgICAgICAgICB2ID0gdi50cmltKCk7XG4gICAgICAgICAgICBpZiAoayA9PT0gJ1tuZ0NsYXNzXScgJiYgdi5zdGFydHNXaXRoKCd7JykpIHtcbiAgICAgICAgICAgICAgICB2ID0gdi5yZXBsYWNlKC9cIi9nLCBgJ2ApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGsgPT09ICdzaG93LmJpbmQnICYmIGF0dHJzLmdldCgnZGVmZXJsb2FkJykgPT09ICd0cnVlJykge1xuICAgICAgICAgICAgICAgIHYgPSB2ICsgYFwiICpsYXp5TG9hZD1cIiR7d3JhcFdpdGhBcG9zKHYpfWA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhdHRyTWFya3VwICs9IGA9XCIke3Z9XCJgO1xuXG4gICAgICAgICAgICBpZiAoayA9PT0gJ3Nob3dpbmRldmljZScgJiYgdiAhPT0gJ2FsbCcpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb25kaXRpb24gPSBbXTtcbiAgICAgICAgICAgICAgICBpZiAodi5pbmNsdWRlcygneHMnKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25kaXRpb24ucHVzaCgnVmlld3BvcnQuaXNNb2JpbGVUeXBlJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh2LmluY2x1ZGVzKCdzbScpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbi5wdXNoKCcoVmlld3BvcnQuaXNUYWJsZXRUeXBlICYmIFZpZXdwb3J0Lm9yaWVudGF0aW9uLmlzUG9ydHJhaXQpJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh2LmluY2x1ZGVzKCdtZCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbi5wdXNoKCcoVmlld3BvcnQuaXNUYWJsZXRUeXBlICYmIFZpZXdwb3J0Lm9yaWVudGF0aW9uLmlzTGFuZHNjYXBlKScpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhdHRyTWFya3VwICs9IGAgKm5nSWY9XCIke2NvbmRpdGlvbi5qb2luKCcgfHwgJyl9XCJgO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gYXR0ck1hcmt1cDtcbn07XG5cbmNvbnN0IGdldFJlcXVpcmVkUHJvdmlkZXJzID0gKG5vZGVEZWY6IElCdWlsZFRhc2tEZWYsIHByb3ZpZGVyczogQXJyYXk8SVByb3ZpZGVySW5mbz4sIG5vZGVBdHRycykgPT4ge1xuICAgIGlmICghbm9kZURlZi5yZXF1aXJlcykge1xuICAgICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgbGV0IHJlcXVpcmVzID0gbm9kZURlZi5yZXF1aXJlcyBhcyBhbnk7XG5cbiAgICBpZiAoaXNTdHJpbmcocmVxdWlyZXMpKSB7XG4gICAgICAgIHJlcXVpcmVzID0gW3JlcXVpcmVzXTtcbiAgICB9XG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkocmVxdWlyZXMpKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVxdWlyZXMubWFwKHJlcXVpcmUgPT4ge1xuICAgICAgICAvLyBmb3IgZHluYW1pYyB0YWJsZSBhc3NpZ25pbmcgcGFyZW50IHByb3ZpZGUgbWFwIHRvIHRoZSBjaGlsZCxcbiAgICAgICAgZm9yIChsZXQgaSA9IG5vZGVBdHRycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSApIHtcbiAgICAgICAgICAgIGlmIChub2RlQXR0cnNbaV0ubmFtZSA9PT0gJ3RhYmxlTmFtZScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlZltub2RlQXR0cnNbaV0udmFsdWVdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IHByb3ZpZGVycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSApIHtcbiAgICAgICAgICAgIGlmIChwcm92aWRlcnNbaV0ubm9kZU5hbWUgPT09IHJlcXVpcmUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJvdmlkZXJzW2ldLnByb3ZpZGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbn07XG5cbmNvbnN0IERJTUVOU0lPTl9QUk9QUyA9IFsncGFkZGluZycsICdib3JkZXJ3aWR0aCcsICdtYXJnaW4nXTtcblxuY29uc3QgU0VQQVJBVE9SID0gJyAnLCBVTlNFVCA9ICd1bnNldCc7XG5cbmNvbnN0IHNldERpbWVuc2lvblByb3AgPSAoY3NzT2JqLCBrZXksIG52KSA9PiB7XG4gICAgbGV0IGNzc0tleSA9IGtleSwgdmFsLCB0b3AsIHJpZ2h0LCBib3R0b20sIGxlZnQsIHN1ZmZpeCA9ICcnO1xuXG4gICAgZnVuY3Rpb24gc2V0VmFsKHByb3AsIHZhbHVlKSB7XG4gICAgICAgIC8vIGlmIHRoZSB2YWx1ZSBpcyBVTlNFVCwgcmVzZXQgdGhlIGV4aXN0aW5nIHZhbHVlXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gVU5TRVQpIHtcbiAgICAgICAgICAgIHZhbHVlID0gJyc7XG4gICAgICAgIH1cbiAgICAgICAgY3NzT2JqW2Nzc0tleSArIHByb3AgKyBzdWZmaXhdID0gdmFsdWU7XG4gICAgfVxuXG4gICAgaWYgKGtleSA9PT0gJ2JvcmRlcndpZHRoJykge1xuICAgICAgICBzdWZmaXggPSAgJ3dpZHRoJztcbiAgICAgICAgY3NzS2V5ID0gJ2JvcmRlcic7XG4gICAgfVxuXG4gICAgdmFsID0gbnY7XG5cbiAgICBpZiAodmFsLmluZGV4T2YoVU5TRVQpICE9PSAtMSkge1xuICAgICAgICB2YWwgPSB2YWwuc3BsaXQoU0VQQVJBVE9SKTtcblxuICAgICAgICB0b3AgICAgPSB2YWxbMF07XG4gICAgICAgIHJpZ2h0ICA9IHZhbFsxXSB8fCB2YWxbMF07XG4gICAgICAgIGJvdHRvbSA9IHZhbFsyXSB8fCB2YWxbMF07XG4gICAgICAgIGxlZnQgICA9IHZhbFszXSB8fCB2YWxbMV0gfHwgdmFsWzBdO1xuXG4gICAgICAgIHNldFZhbCgndG9wJywgICAgdG9wKTtcbiAgICAgICAgc2V0VmFsKCdyaWdodCcsICByaWdodCk7XG4gICAgICAgIHNldFZhbCgnYm90dG9tJywgYm90dG9tKTtcbiAgICAgICAgc2V0VmFsKCdsZWZ0JywgICBsZWZ0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoa2V5ID09PSAnYm9yZGVyd2lkdGgnKSB7XG4gICAgICAgICAgICBjc3NLZXkgPSAnYm9yZGVyd2lkdGgnO1xuICAgICAgICB9XG4gICAgICAgIGNzc09ialtjc3NLZXldID0gbnY7XG4gICAgfVxufTtcblxuY29uc3QgcHJvY2Vzc0RpbWVuc2lvbkF0dHJpYnV0ZXMgPSBhdHRyTWFwID0+IHtcbiAgICBjb25zdCBhdHRyS2V5cyA9IEFycmF5LmZyb20oYXR0ck1hcC5rZXlzKCkpO1xuICAgIGF0dHJLZXlzLmZvckVhY2goKGF0dHJLZXk6IGFueSkgPT4ge1xuICAgICAgICBpZiAoRElNRU5TSU9OX1BST1BTLmluY2x1ZGVzKGF0dHJLZXkpKSB7XG4gICAgICAgICAgICBjb25zdCBjc3NPYmogPSB7fSxcbiAgICAgICAgICAgICAgICBhdHRyVmFsdWUgPSBhdHRyTWFwLmdldChhdHRyS2V5KTtcbiAgICAgICAgICAgIGF0dHJNYXAuZGVsZXRlKGF0dHJLZXkpO1xuICAgICAgICAgICAgc2V0RGltZW5zaW9uUHJvcChjc3NPYmosIGF0dHJLZXksIGF0dHJWYWx1ZSk7XG4gICAgICAgICAgICBPYmplY3Qua2V5cyhjc3NPYmopLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoY3NzT2JqW2tleV0pIHtcbiAgICAgICAgICAgICAgICAgICAgYXR0ck1hcC5zZXQoa2V5LCBjc3NPYmpba2V5XSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcbn07XG5cbi8vIHJlcGxhY2UgPDpzdmc6c3ZnPiAtPiA8c3ZnPiwgPDpzdmc6Kj4gLT4gPHN2ZzoqPlxuY29uc3QgZ2V0Tm9kZU5hbWUgPSBuYW1lID0+IG5hbWUucmVwbGFjZSgnOnN2ZzpzdmcnLCAnc3ZnJykucmVwbGFjZSgnOnN2ZzonLCAnc3ZnOicpO1xuXG5leHBvcnQgY29uc3QgcHJvY2Vzc05vZGUgPSAobm9kZSwgaW1wb3J0Q29sbGVjdG9yOiAoaTogSW1wb3J0RGVmW10pID0+IHZvaWQsIHByb3ZpZGVycz86IEFycmF5PElQcm92aWRlckluZm8+KSA9PiB7XG4gICAgY29uc3Qgbm9kZURlZiA9IHJlZ2lzdHJ5LmdldChub2RlLm5hbWUpO1xuXG4gICAgbGV0IHByZSwgcG9zdCwgdGVtcGxhdGU7XG5cbiAgICBpZiAobm9kZURlZikge1xuICAgICAgICBwcmUgPSBub2RlRGVmLnByZSB8fCBlbXB0eTtcbiAgICAgICAgcG9zdCA9IG5vZGVEZWYucG9zdCB8fCBlbXB0eTtcbiAgICAgICAgdGVtcGxhdGUgPSBub2RlRGVmLnRlbXBsYXRlIHx8IGVtcHR5O1xuICAgIH1cblxuICAgIGxldCBtYXJrdXAgPSAnJztcbiAgICBsZXQgYXR0ck1hcDtcbiAgICBsZXQgcmVxdWlyZWRQcm92aWRlcnM7XG4gICAgbGV0IHNoYXJlZDtcblxuICAgIGlmICghcHJvdmlkZXJzKSB7XG4gICAgICAgIHByb3ZpZGVycyA9IFtdO1xuICAgIH1cblxuICAgIGNvbnN0IGlzRWxlbWVudFR5cGUgPSBub2RlIGluc3RhbmNlb2YgRWxlbWVudDtcblxuICAgIGlmIChpc0VsZW1lbnRUeXBlKSB7XG4gICAgICAgIGxldCBwcm92aWRlSW5mbzogSVByb3ZpZGVySW5mbztcblxuICAgICAgICBpZiAobm9kZURlZikge1xuICAgICAgICAgICAgcmVxdWlyZWRQcm92aWRlcnMgPSBnZXRSZXF1aXJlZFByb3ZpZGVycyhub2RlRGVmLCBwcm92aWRlcnMsIG5vZGUuYXR0cnMpO1xuICAgICAgICAgICAgc2hhcmVkID0gbmV3IE1hcCgpO1xuICAgICAgICAgICAgdGVtcGxhdGUobm9kZSwgc2hhcmVkLCAuLi5yZXF1aXJlZFByb3ZpZGVycyk7XG4gICAgICAgIH1cblxuICAgICAgICBhdHRyTWFwID0gZ2V0QXR0ck1hcChub2RlLmF0dHJzKTtcbiAgICAgICAgcHJvY2Vzc0RpbWVuc2lvbkF0dHJpYnV0ZXMoYXR0ck1hcCk7XG5cbiAgICAgICAgY29uc3Qgbm9kZU5hbWUgPSBnZXROb2RlTmFtZShub2RlLm5hbWUpO1xuXG4gICAgICAgIGlmIChub2RlRGVmKSB7XG4gICAgICAgICAgICBtYXJrdXAgPSAoPGFueT5wcmUpKGF0dHJNYXAsIHNoYXJlZCwgLi4ucmVxdWlyZWRQcm92aWRlcnMpO1xuICAgICAgICAgICAgaWYgKG5vZGVEZWYucHJvdmlkZSkge1xuICAgICAgICAgICAgICAgIHByb3ZpZGVJbmZvID0ge1xuICAgICAgICAgICAgICAgICAgICBub2RlTmFtZTogbm9kZS5uYW1lLFxuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBfLmlzRnVuY3Rpb24obm9kZURlZi5wcm92aWRlKSA/IG5vZGVEZWYucHJvdmlkZShhdHRyTWFwLCBzaGFyZWQsIC4uLnJlcXVpcmVkUHJvdmlkZXJzKSA6IG5vZGVEZWYucHJvdmlkZVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgLy8gRm9yIHRhYmxlIG5vZGUsIGFzc2lnbmluZyBwYXJlbnQgcHJvdmlkZSBtYXAgdG8gdGhlIGNoaWxkLCBhcyBjaGlsZCByZXF1aXJlcyBzb21lIHBhcmVudCBwcm92aWRlIGF0dHJzLlxuICAgICAgICAgICAgICAgIGlmIChub2RlLm5hbWUgPT09ICd3bS10YWJsZScpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFibGVDb2xOb2RlRGVmbiA9IHJlZ2lzdHJ5LmdldCgnd20tdGFibGUtY29sdW1uJyk7XG4gICAgICAgICAgICAgICAgICAgIHRhYmxlQ29sTm9kZURlZm5bXy5maW5kKG5vZGUuYXR0cnMsIChlbCkgPT4gZWwubmFtZSA9PT0gJ25hbWUnKS52YWx1ZSArIHByb3ZpZGVJbmZvLnByb3ZpZGUuZ2V0KCd0YWJsZV9yZWZlcmVuY2UnKV0gPSBwcm92aWRlSW5mby5wcm92aWRlO1xuICAgICAgICAgICAgICAgICAgICByZWdpc3RyeS5zZXQoJ3dtLXRhYmxlLWNvbHVtbicsIHRhYmxlQ29sTm9kZURlZm4pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwcm92aWRlcnMucHVzaChwcm92aWRlSW5mbyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtYXJrdXAgPSBgPCR7bm9kZU5hbWV9ICR7Z2V0QXR0ck1hcmt1cChhdHRyTWFwKX0+YDtcbiAgICAgICAgfVxuXG4gICAgICAgIG5vZGUuY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGQ6IE5vZGUgfCBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmKGNoaWxkLmF0dHJzKSB7XG4gICAgICAgICAgICAgICAgbGV0IHNob3dJbkRldmljZUF0dHIsIGFjY2Vzc1JvbGVzQXR0ciwgZGVmZXJMb2FkQXR0ciwgc2hvd0F0dHI7XG4gICAgICAgICAgICAgICAgY2hpbGQuYXR0cnMuZm9yRWFjaChmdW5jdGlvbihhdHRyKXtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGF0dHIubmFtZSA9PT0gJ3Nob3dpbmRldmljZScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dJbkRldmljZUF0dHIgPSBhdHRyO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGF0dHIubmFtZSA9PT0gJ2FjY2Vzc3JvbGVzJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNzUm9sZXNBdHRyID0gYXR0cjtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhdHRyLm5hbWUgPT09ICdkZWZlcmxvYWQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZlckxvYWRBdHRyID0gYXR0cjtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhdHRyLm5hbWUgPT09ICdzaG93Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0F0dHIgPSBhdHRyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYoKHNob3dJbkRldmljZUF0dHIgJiYgYWNjZXNzUm9sZXNBdHRyKSB8fCAoc2hvd0luRGV2aWNlQXR0ciAmJiBkZWZlckxvYWRBdHRyKSB8fCAoYWNjZXNzUm9sZXNBdHRyICYmIGRlZmVyTG9hZEF0dHIpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8qIElmIG1vcmUgdGhhbiBvbmUgb3V0IG9mIHNob3dpbmRldmljZSwgYWNjZXNzcm9sZXMgYW5kIGRlZmVybG9hZCBleGlzdCBmb3IgYSB3aWRnZXQsIGFkZCBuZy1jb250YWluZXIgd3JhcHBlcnMgdG8gZml4IGFuZ3VsYXIgbGltaXRhdGlvblxuICAgICAgICAgICAgICAgICAgICAgICBvZiBhcHBseWluZyBvbmx5IG9uZSBzdHJ1Y3R1cmFsIGRpcmVjdGl2ZSB0byBhbiBlbGVtZW50LlxuICAgICAgICAgICAgICAgICAgICAqICAqL1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBub1NwYW4gPSAoe30gYXMgUGFyc2VTb3VyY2VTcGFuKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2hvd0luRGV2aWNlQ29udGFpbmVyOmFueSA9IHNob3dJbkRldmljZUF0dHIgPyBuZXcgRWxlbWVudCgnbmctY29udGFpbmVyJywgW10sIFtdLCBub1NwYW4sIG5vU3Bhbiwgbm9TcGFuKSA6ICcnO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhY2Nlc3NSb2xlc0NvbnRhaW5lcjphbnkgPSBhY2Nlc3NSb2xlc0F0dHIgPyBuZXcgRWxlbWVudCgnbmctY29udGFpbmVyJywgW10sIFtdLCBub1NwYW4sIG5vU3Bhbiwgbm9TcGFuKSA6ICcnO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkZWZlckxvYWRDb250YWluZXI6YW55ID0gZGVmZXJMb2FkQXR0ciA/IG5ldyBFbGVtZW50KCduZy1jb250YWluZXInLCBbXSwgW10sIG5vU3Bhbiwgbm9TcGFuLCBub1NwYW4pIDogJyc7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzaG93SW5EZXZpY2VDb250YWluZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dJbkRldmljZUNvbnRhaW5lci5hdHRycy5wdXNoKHNob3dJbkRldmljZUF0dHIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChhY2Nlc3NSb2xlc0NvbnRhaW5lcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNzUm9sZXNDb250YWluZXIuYXR0cnMucHVzaChhY2Nlc3NSb2xlc0F0dHIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChkZWZlckxvYWRDb250YWluZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmVyTG9hZENvbnRhaW5lci5hdHRycy5wdXNoKGRlZmVyTG9hZEF0dHIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNob3dBdHRyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmZXJMb2FkQ29udGFpbmVyLmF0dHJzLnB1c2goc2hvd0F0dHIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIF8ucmVtb3ZlKGNoaWxkLmF0dHJzLCBmdW5jdGlvbihhdHRyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXR0ci5uYW1lID09PSAnc2hvd2luZGV2aWNlJyB8fCBhdHRyLm5hbWUgPT09ICdhY2Nlc3Nyb2xlcycgfHwgYXR0ci5uYW1lID09PSAnZGVmZXJsb2FkJ1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNoaWxkQ29udGFpbmVyLCBwYXJlbnRDb250YWluZXI7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzaG93SW5EZXZpY2VBdHRyICYmIGFjY2Vzc1JvbGVzQXR0cikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRDb250YWluZXIgPSBzaG93SW5EZXZpY2VDb250YWluZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRDb250YWluZXIgPSBhY2Nlc3NSb2xlc0NvbnRhaW5lcjtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzaG93SW5EZXZpY2VBdHRyICYmIGRlZmVyTG9hZEF0dHIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkQ29udGFpbmVyID0gc2hvd0luRGV2aWNlQ29udGFpbmVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50Q29udGFpbmVyID0gZGVmZXJMb2FkQ29udGFpbmVyO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFjY2Vzc1JvbGVzQXR0ciAmJiBkZWZlckxvYWRBdHRyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZENvbnRhaW5lciA9IGRlZmVyTG9hZENvbnRhaW5lcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudENvbnRhaW5lciA9IGFjY2Vzc1JvbGVzQ29udGFpbmVyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIHdyYXAgY3VycmVudCBub2RlIGVsZW1lbnRzIGluc2lkZSBmaXJzdCBuZy1jb250YWluZXIoY2hpbGRDb250YWluZXIpIGFuZCB0aGF0IGNvbnRhaW5lcidzIGVsZW1lbnRzIGluc2lkZSBhbm90aGVyIG5nLWNvbnRhaW5lcihwYXJlbnRDb250YWluZXIpXG4gICAgICAgICAgICAgICAgICAgIGNoaWxkQ29udGFpbmVyLmNoaWxkcmVuID0gW2NoaWxkXTtcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50Q29udGFpbmVyLmNoaWxkcmVuID0gW2NoaWxkQ29udGFpbmVyXTtcbiAgICAgICAgICAgICAgICAgICAgLy8gaWYgYWxsIHRocmVlIGRpcmVjdGl2ZXMgZXhpc3QsIGNyZWF0ZSBhbm90aGVyIHdyYXBwZXIgZm9yIHRoaXJkIG5nLWNvbnRhaW5lcihncmFuZFBhcmVudENvbnRhaW5lcilcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNob3dJbkRldmljZUF0dHIgJiYgYWNjZXNzUm9sZXNBdHRyICYmIGRlZmVyTG9hZEF0dHIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdyYW5kUGFyZW50Q29udGFpbmVyID0gZGVmZXJMb2FkQ29udGFpbmVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgZ3JhbmRQYXJlbnRDb250YWluZXIuY2hpbGRyZW4gPSBbcGFyZW50Q29udGFpbmVyXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkID0gZ3JhbmRQYXJlbnRDb250YWluZXI7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZCA9IHBhcmVudENvbnRhaW5lcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG1hcmt1cCArPSBwcm9jZXNzTm9kZShjaGlsZCwgaW1wb3J0Q29sbGVjdG9yLCBwcm92aWRlcnMpO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAobm9kZURlZikge1xuICAgICAgICAgICAgaWYgKHByb3ZpZGVJbmZvKSB7XG4gICAgICAgICAgICAgICAgcHJvdmlkZXJzLnNwbGljZShwcm92aWRlcnMuaW5kZXhPZihwcm92aWRlSW5mbyksIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbWFya3VwICs9ICg8YW55PnBvc3QpKGF0dHJNYXAsIHNoYXJlZCwgLi4ucmVxdWlyZWRQcm92aWRlcnMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKG5vZGUuZW5kU291cmNlU3BhbiAmJiAhZ2V0SHRtbFRhZ0RlZmluaXRpb24obm9kZS5uYW1lKS5pc1ZvaWQpIHtcbiAgICAgICAgICAgICAgICBtYXJrdXAgKz0gYDwvJHtub2RlTmFtZX0+YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0gZWxzZSBpZiAobm9kZSBpbnN0YW5jZW9mIFRleHQpIHtcbiAgICAgICAgbWFya3VwICs9IG5vZGUudmFsdWU7XG4gICAgfSBlbHNlIGlmIChub2RlIGluc3RhbmNlb2YgQ29tbWVudCkge1xuICAgICAgICBpZiAoIWlnbm9yZUNvbW1lbnRzKSB7XG4gICAgICAgICAgICBtYXJrdXAgKz0gbm9kZS52YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpbXBvcnRDb2xsZWN0b3IoV0lER0VUX0lNUE9SVFMuZ2V0KG5vZGUubmFtZSkpO1xuICAgIGlmIChub2RlRGVmICYmIG5vZGVEZWYuaW1wb3J0cykge1xuICAgICAgICBsZXQgaW1wb3J0cyA9IFtdO1xuICAgICAgICBpZiAodHlwZW9mIG5vZGVEZWYuaW1wb3J0cyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgaW1wb3J0cyA9IG5vZGVEZWYuaW1wb3J0cyhhdHRyTWFwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGltcG9ydHMgPSBub2RlRGVmLmltcG9ydHM7XG4gICAgICAgIH1cbiAgICAgICAgaW1wb3J0cy5mb3JFYWNoKCBpID0+IHtcbiAgICAgICAgICAgIGltcG9ydENvbGxlY3RvcihXSURHRVRfSU1QT1JUUy5nZXQoaSkpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIG1hcmt1cDtcbn07XG5cbmV4cG9ydCBjb25zdCB0cmFuc3BpbGUgPSAobWFya3VwOiBzdHJpbmcgPSAnJykgPT4ge1xuICAgIGlmICghbWFya3VwLmxlbmd0aCkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCByZXF1aXJlZFdNQ29tcG9uZW50cyA9IFtdO1xuICAgIGNvbnN0IG5vZGVzID0gaHRtbFBhcnNlci5wYXJzZShtYXJrdXAsICcnKTtcblxuICAgIGlmIChub2Rlcy5lcnJvcnMubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgb3V0cHV0ID0gJyc7XG4gICAgZm9yIChjb25zdCBub2RlIG9mIG5vZGVzLnJvb3ROb2Rlcykge1xuICAgICAgICBvdXRwdXQgKz0gcHJvY2Vzc05vZGUobm9kZSwgKGltcG9ydHM6IEltcG9ydERlZltdKSA9PiB7XG4gICAgICAgICAgICBpZiAoaW1wb3J0cykge1xuICAgICAgICAgICAgICAgIHJlcXVpcmVkV01Db21wb25lbnRzID0gcmVxdWlyZWRXTUNvbXBvbmVudHMuY29uY2F0KGltcG9ydHMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmVxdWlyZWRXTUNvbXBvbmVudHMgPSBfLnVuaXFXaXRoKHJlcXVpcmVkV01Db21wb25lbnRzLCBfLmlzRXF1YWwpO1xuICAgIHJlcXVpcmVkV01Db21wb25lbnRzID0gXy5zb3J0QnkocmVxdWlyZWRXTUNvbXBvbmVudHMsIFsnZnJvbScsICduYW1lJ10pO1xuICAgIHJldHVybiB7XG4gICAgICAgIG1hcmt1cDogb3V0cHV0LFxuICAgICAgICByZXF1aXJlZFdNQ29tcG9uZW50czogcmVxdWlyZWRXTUNvbXBvbmVudHNcbiAgICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHJlZ2lzdGVyID0gKG5vZGVOYW1lOiBzdHJpbmcsIG5vZGVEZWZGbjogKCkgPT4gSUJ1aWxkVGFza0RlZikgPT4gcmVnaXN0cnkuc2V0KG5vZGVOYW1lLCBub2RlRGVmRm4oKSk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW1wb3J0RGVmIHtcbiAgICBmcm9tOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGFzPzogc3RyaW5nO1xuICAgIGZvclJvb3Q/OiBib29sZWFuO1xuICAgIHBsYXRmb3JtVHlwZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQnVpbGRUYXNrRGVmIHtcbiAgICByZXF1aXJlcz86IHN0cmluZyB8IEFycmF5PHN0cmluZz47XG4gICAgdGVtcGxhdGU/OiAobm9kZTogRWxlbWVudCB8IFRleHQgfCBDb21tZW50LCBzaGFyZWQ/OiBNYXA8YW55LCBhbnk+LCAuLi5yZXF1aXJlczogQXJyYXk8TWFwPGFueSwgYW55Pj4pID0+IHZvaWQ7XG4gICAgcHJlOiAoYXR0cnM6IE1hcDxzdHJpbmcsIHN0cmluZz4sIHNoYXJlZCA/OiBNYXA8YW55LCBhbnk+LCAuLi5yZXF1aXJlczogQXJyYXk8TWFwPGFueSwgYW55Pj4pID0+IHN0cmluZztcbiAgICBwcm92aWRlPzogKGF0dHJzOiBNYXA8c3RyaW5nLCBzdHJpbmc+LCBzaGFyZWQgPzogTWFwPGFueSwgYW55PiwgLi4ucmVxdWlyZXM6IEFycmF5PE1hcDxhbnksIGFueT4+KSA9PiBNYXA8YW55LCBhbnk+O1xuICAgIHBvc3Q/OiAoYXR0cnM6IE1hcDxzdHJpbmcsIHN0cmluZz4sIHNoYXJlZCA/OiBNYXA8YW55LCBhbnk+LCAuLi5yZXF1aXJlczogQXJyYXk8TWFwPGFueSwgYW55Pj4pID0+IHN0cmluZztcbiAgICBpbXBvcnRzPzogIHN0cmluZ1tdIHwgKChhdHRyczogTWFwPHN0cmluZywgc3RyaW5nPikgPT4gc3RyaW5nW10pO1xufVxuXG5leHBvcnQgY29uc3Qgc2NvcGVDb21wb25lbnRTdHlsZXMgPSAoY29tcG9uZW50TmFtZSwgY29tcG9uZW50VHlwZSwgc3R5bGVzID0gJycpID0+IHtcbiAgICBjb21wb25lbnROYW1lID0gY29tcG9uZW50TmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIGNvbnN0IGNvbW1lbnRzID0ge307XG4gICAgbGV0IGNvbW1lbnRDb3VudCA9IDA7XG4gICAgaWYgKHN0eWxlcy5zdGFydHNXaXRoKCcvKkRJU0FCTEVfU0NPUElORyovJykpIHtcbiAgICAgICAgcmV0dXJuIHN0eWxlcztcbiAgICB9XG4gICAgc3R5bGVzID0gc3R5bGVzLnJlcGxhY2UoQ1NTX1JFR0VYLkNPTU1FTlRTX0ZPUk1BVCwgY29tbWVudCA9PiB7XG4gICAgICAgIGNvbnN0IGtleSA9IGBAY29tbWVudCR7Y29tbWVudENvdW50Kyt9e2A7XG4gICAgICAgIGNvbW1lbnRzW2tleV0gPSBjb21tZW50O1xuICAgICAgICByZXR1cm4ga2V5O1xuICAgIH0pO1xuICAgIHN0eWxlcyA9IHN0eWxlcy5yZXBsYWNlKENTU19SRUdFWC5TRUxFQ1RPUl9GT1JNQVQsIChzZWxlY3RvcikgPT4ge1xuICAgICAgICBpZiAoIUNTU19SRUdFWC5TRUxFQ1RPUl9FWENMVURFX0ZPUk1BVC50ZXN0KHNlbGVjdG9yKSkge1xuICAgICAgICAgICAgY29uc3QgZmlyc3ROb25TcGFjZUNoYXJJbmRleCA9IHNlbGVjdG9yLm1hdGNoKC9cXFMvKS5pbmRleDtcbiAgICAgICAgICAgIGxldCBwcmVmaXhTcGFjZUNoYXJTZXEgPSAnJztcbiAgICAgICAgICAgIGlmIChmaXJzdE5vblNwYWNlQ2hhckluZGV4ID4gMCkge1xuICAgICAgICAgICAgICAgIHByZWZpeFNwYWNlQ2hhclNlcSA9IHNlbGVjdG9yLnN1YnN0cmluZygwLCBmaXJzdE5vblNwYWNlQ2hhckluZGV4KTtcbiAgICAgICAgICAgICAgICBzZWxlY3RvciA9IHNlbGVjdG9yLnN1YnN0cmluZyhmaXJzdE5vblNwYWNlQ2hhckluZGV4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghc2VsZWN0b3Iuc3RhcnRzV2l0aCgnLyonKSAmJiBzZWxlY3Rvci50cmltKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIC8vIHNwbGl0cyB0aGUgc2VsZWN0b3IgYnkgY29tbWFzIGFuZCB3ZSBpdGVyYXRlIG92ZXIgdGhlIGFycmF5IGFuZCBhZGQgcGFnZSBsZXZlbCBzY29waW5nIGFuZCBqb2luIGl0LlxuICAgICAgICAgICAgICAgIHNlbGVjdG9yID0gc2VsZWN0b3Iuc3BsaXQoJywnKS5tYXAocyA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBwcmVmaXggPSBFTEVfUFJFRklYO1xuICAgICAgICAgICAgICAgICAgICBzID0gcy50cmltKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNwYWNlSW5kZXggPSBzLmluZGV4T2YoJyAnKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHMuc3RhcnRzV2l0aChFTEVfUFJFRklYKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNwYWNlSW5kZXggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZml4ID0gcy5zdWJzdHJpbmcoMCwgc3BhY2VJbmRleCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcyA9IHMuc3Vic3RyaW5nKHNwYWNlSW5kZXggKyAxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHM7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoY29tcG9uZW50VHlwZSA9PT0gMCB8fCBjb21wb25lbnRUeXBlID09PSAnUEFHRScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHMgPSBgJHtwcmVmaXh9IGFwcC1wYWdlLSR7Y29tcG9uZW50TmFtZX0gJHtzfWA7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY29tcG9uZW50VHlwZSA9PT0gMSB8fCBjb21wb25lbnRUeXBlID09PSAnUFJFRkFCJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcyA9IGAke3ByZWZpeH0gYXBwLXByZWZhYi0ke2NvbXBvbmVudE5hbWV9ICR7c31gO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNvbXBvbmVudFR5cGUgPT09IDIgfHwgY29tcG9uZW50VHlwZSA9PT0gJ1BBUlRJQUwnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzID0gYCR7cHJlZml4fSBhcHAtcGFydGlhbC0ke2NvbXBvbmVudE5hbWV9ICR7c31gO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzO1xuICAgICAgICAgICAgICAgIH0pLmpvaW4oJywnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNlbGVjdG9yID0gcHJlZml4U3BhY2VDaGFyU2VxICsgc2VsZWN0b3I7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNlbGVjdG9yO1xuICAgIH0pO1xuICAgIGZvciAoY29uc3Qga2V5IGluIGNvbW1lbnRzKSB7XG4gICAgICAgIHN0eWxlcyA9IHN0eWxlcy5yZXBsYWNlKGtleSwgY29tbWVudHNba2V5XSk7XG4gICAgfVxuICAgIHJldHVybiBzdHlsZXM7XG59O1xuXG4iXX0=
|
|
485
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy90cmFuc3BpbGVyL3NyYy9idWlsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsVUFBVSxFQUNWLE9BQU8sRUFDUCxJQUFJLEVBQ0osT0FBTyxFQUNQLG9CQUFvQixFQUN2QixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUl2QyxNQUFNLFNBQVMsR0FBRztJQUNkLGVBQWUsRUFBRywwQkFBMEI7SUFDNUMsZUFBZSxFQUFHLGNBQWM7SUFDaEMsdUJBQXVCLEVBQUcsa0VBQWtFO0NBQy9GLENBQUM7QUFFRixNQUFNLFFBQVEsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQztBQU81QyxNQUFNLFNBQVMsR0FBRztJQUNkLGFBQWEsRUFBRSxjQUFjO0lBQzdCLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLGNBQWMsRUFBRSxpQkFBaUI7SUFDakMsVUFBVSxFQUFFLFdBQVc7SUFDdkIsZUFBZSxFQUFFLFdBQVc7SUFDNUIsYUFBYSxFQUFFLEtBQUs7SUFDcEIsUUFBUSxFQUFFLEtBQUs7SUFDZixjQUFjLEVBQUUsTUFBTTtJQUN0QixTQUFTLEVBQUUsTUFBTTtJQUNqQixhQUFhLEVBQUUsVUFBVTtJQUN6QixrQkFBa0IsRUFBRSxVQUFVO0lBQzlCLFVBQVUsRUFBRSxtREFBbUQ7Q0FDbEUsQ0FBQztBQUVGLE1BQU0sZUFBZSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUV6QyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxLQUFhLEVBQUUsRUFBRTtJQUM1QyxJQUFJLENBQUMsS0FBSyxFQUFFO1FBQ1IsT0FBTyxJQUFJLENB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IFRleHQsXG4gICAgQ29tbWVudCxcbiAgICBnZXRIdG1sVGFnRGVmaW5pdGlvbiwgUGFyc2VTb3VyY2VTcGFuXG59IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyJztcbmltcG9ydCB7IFdJREdFVF9JTVBPUlRTIH0gZnJvbSAnLi9pbXBvcnRzJztcbmltcG9ydCB7IGlzTW9iaWxlQXBwIH0gZnJvbSAnQHdtL2NvcmUnO1xuXG5kZWNsYXJlIGNvbnN0IF87XG5cbmNvbnN0IENTU19SRUdFWCA9IHtcbiAgICBDT01NRU5UU19GT1JNQVQgOiAvXFwvXFwqKCg/IVxcKlxcLykufFxcbikrXFwqXFwvL2csXG4gICAgU0VMRUNUT1JfRk9STUFUIDogL1teXFx7XFx9XSpcXHsvZ2ksXG4gICAgU0VMRUNUT1JfRVhDTFVERV9GT1JNQVQgOiAvKEBrZXlmcmFtZXN8QG1lZGlhfEBmb250LWZhY2V8QGNvbW1lbnRbMC05XSt8ZnJvbXx0b3xbMC05XSslKVxcYi9pXG59O1xuXG5jb25zdCBpc1N0cmluZyA9IHYgPT4gdHlwZW9mIHYgPT09ICdzdHJpbmcnO1xuXG5pbnRlcmZhY2UgSVByb3ZpZGVySW5mbyB7XG4gICAgbm9kZU5hbWU6IHN0cmluZztcbiAgICBwcm92aWRlOiBNYXA8c3RyaW5nLCBhbnk+O1xufVxuXG5jb25zdCBPVkVSUklERVMgPSB7XG4gICAgJ2FjY2Vzc3JvbGVzJzogJyphY2Nlc3Nyb2xlcycsXG4gICAgJ25nLWlmJzogJypuZ0lmJyxcbiAgICAnc2hvd2luZGV2aWNlJzogJyp3bVNob3dJbkRldmljZScsXG4gICAgJ25nLWNsYXNzJzogJ1tuZ0NsYXNzXScsXG4gICAgJ2RhdGEtbmctY2xhc3MnOiAnW25nQ2xhc3NdJyxcbiAgICAnZGF0YS1uZy1zcmMnOiAnc3JjJyxcbiAgICAnbmctc3JjJzogJ3NyYycsXG4gICAgJ2RhdGEtbmctaHJlZic6ICdocmVmJyxcbiAgICAnbmctaHJlZic6ICdocmVmJyxcbiAgICAnbmctZGlzYWJsZWQnOiAnZGlzYWJsZWQnLFxuICAgICdkYXRhLW5nLWRpc2FibGVkJzogJ2Rpc2FibGVkJyxcbiAgICAnbmctbW9kZWwnOiAnW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiIFsobmdNb2RlbCldJ1xufTtcblxuY29uc3Qgc2VsZkNsb3NpbmdUYWdzID0gbmV3IFNldChbJ2ltZyddKTtcblxuZXhwb3J0IGNvbnN0IGdldEJvdW5kVG9FeHByID0gKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHZhbHVlID0gdmFsdWUudHJpbSgpO1xuICAgIGlmICh2YWx1ZS5zdGFydHNXaXRoKCdiaW5kOicpKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZS5zdWJzdHIoNSk7XG4gICAgfVxufTtcblxuY29uc3QgcXVvdGVBdHRyID0gdiA9PiB7XG4gICAgcmV0dXJuICgnJyArIHYpIC8qIEZvcmNlcyB0aGUgY29udmVyc2lvbiB0byBzdHJpbmcuICovXG4gICAgICAgIC5yZXBsYWNlKC8mL2csICcmYW1wOycpIC8qIFRoaXMgTVVTVCBiZSB0aGUgMXN0IHJlcGxhY2VtZW50LiAqL1xuICAgICAgICAucmVwbGFjZSgvJy9nLCAnJmFwb3M7JykgLyogVGhlIDQgb3RoZXIgcHJlZGVmaW5lZCBlbnRpdGllcywgcmVxdWlyZWQuICovXG4gICAgICAgIC5yZXBsYWNlKC9cIi9nLCAnJnF1b3Q7JylcbiAgICAgICAgLnJlcGxhY2UoLzwvZywgJyZsdDsnKVxuICAgICAgICAucmVwbGFjZSgvPi9nLCAnJmd0OycpO1xufTtcblxuY29uc3QgcmVnaXN0cnkgPSBuZXcgTWFwPHN0cmluZywgYW55PigpO1xuY29uc3QgaHRtbFBhcnNlciA9IG5ldyBIdG1sUGFyc2VyKCk7XG5jb25zdCBpZ25vcmVDb21tZW50cyA9IHRydWU7XG5cbmNvbnN0IGVtcHR5ID0gKCkgPT4gJyc7XG5cbmNvbnN0IGlzRXZlbnQgPSBuYW1lID0+IG5hbWVbMF0gPT09ICdvJyAmJiBuYW1lWzFdID09PSAnbicgJiYgbmFtZVsyXSA9PT0gJy0nO1xuXG5jb25zdCBnZXRFdmVudE5hbWUgPSBrZXkgPT4ga2V5LnN1YnN0cigzKTtcblxuY29uc3QgcHJvY2Vzc0JpbmRpbmcgPSAoYXR0ciwgZXhwcikgPT4gW2Ake2F0dHIubmFtZX0uYmluZGAsIHF1b3RlQXR0cihleHByKV07XG5cbmNvbnN0IHByb2Nlc3NFdmVudCA9IGF0dHIgPT4ge1xuICAgIGNvbnN0IGV2dE5hbWUgPSBnZXRFdmVudE5hbWUoYXR0ci5uYW1lKTtcbiAgICByZXR1cm4gW2Ake2V2dE5hbWV9LmV2ZW50YCwgYXR0ci52YWx1ZV07XG59O1xuXG4vKipcbiAqIFdyYXBzIHRoZSBzdHJpbmcgd2l0aCBzaW5nbGUgcXVvdGVzLlxuICogQHBhcmFtIHZhbFxuICovXG5jb25zdCB3cmFwV2l0aEFwb3MgPSAodmFsOiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4gYCZhcG9zOyR7dmFsLnJlcGxhY2UoLyZhcG9zL2csICcmcXVvdCcpLnJlcGxhY2UoLyZxdW90L2csICdcXFxcJnF1b3QnKX0mYXBvcztgO1xufTtcbmNvbnN0IEVMRV9QUkVGSVggPSAnLndtLWFwcCc7XG5cbmNvbnN0IHByb2Nlc3NBdHRyID0gYXR0ciA9PiB7XG4gICAgbGV0IG92ZXJyaWRkZW4gPSBPVkVSUklERVNbYXR0ci5uYW1lXTtcbiAgICBjb25zdCB2YWx1ZSA9IGF0dHIudmFsdWVTcGFuID8gYXR0ci52YWx1ZSA6IHVuZGVmaW5lZDtcblxuICAgIC8vIGRvIG5vdCBhcHBlbmQgc2hvd0luRGV2aWNlIGF0dHJpYnV0ZSBmb3IgbW9iaWxlIGFwcGxpY2F0aW9uLlxuICAgIGlmIChhdHRyLm5hbWUgPT09ICdzaG93aW5kZXZpY2UnICYmIGlzTW9iaWxlQXBwKCkpIHtcbiAgICAgICAgb3ZlcnJpZGRlbiA9ICcnO1xuICAgIH1cbiAgICBpZiAob3ZlcnJpZGRlbikge1xuICAgICAgICAvKipcbiAgICAgICAgICogd3JhcCB2YWx1ZSBmb3IgYWNjZXNzcm9sZXMgd2l0aCAnJy5cbiAgICAgICAgICogc2luY2UgYWNjZXNzcm9sZXMgaXMgYSBzdHJ1Y3R1cmFsIGRpcmVjdGl2ZSwgaXQgd2lsbCBiZSB0cmFuc3BpbGVkIHRvIFthY2Nlc3Nyb2xlc11cbiAgICAgICAgICogaGVuY2UsIHRoZSB2YWx1ZSBhZ2FpbnN0IGl0IHNob3VsZCBiZSBhIGNvbXB1dGVkIHN0cmluZ1xuICAgICAgICAgKi9cbiAgICAgICAgaWYgKGF0dHIubmFtZSA9PT0gJ2FjY2Vzc3JvbGVzJyB8fCBhdHRyLm5hbWUgPT09ICdzaG93aW5kZXZpY2UnKSB7XG4gICAgICAgICAgICByZXR1cm4gW292ZXJyaWRkZW4sIGAnJHt2YWx1ZX0nYF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFtvdmVycmlkZGVuLCBxdW90ZUF0dHIodmFsdWUpXTtcbiAgICB9XG5cbiAgICBpZiAoaXNFdmVudChhdHRyLm5hbWUpKSB7XG4gICAgICAgIHJldHVybiBwcm9jZXNzRXZlbnQoYXR0cik7XG4gICAgfVxuXG4gICAgY29uc3QgYm91bmRFeHByID0gZ2V0Qm91bmRUb0V4cHIoYXR0ci52YWx1ZSk7XG4gICAgaWYgKGJvdW5kRXhwcikge1xuICAgICAgICByZXR1cm4gcHJvY2Vzc0JpbmRpbmcoYXR0ciwgYm91bmRFeHByKTtcbiAgICB9XG5cbiAgICByZXR1cm4gW2F0dHIubmFtZSwgcXVvdGVBdHRyKHZhbHVlKV07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RGF0YVNvdXJjZSA9IChkYXRhU2V0RXhwcjogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgICBjb25zdCBwYXJ0cyA9IGRhdGFTZXRFeHByLnNwbGl0KCcuJyk7XG4gICAgaWYgKHBhcnRzWzBdID09PSAnVmFyaWFibGVzJyB8fCBwYXJ0c1swXSA9PT0gJ1dpZGdldHMnKSB7XG4gICAgICAgIHJldHVybiBgJHtwYXJ0c1swXX0uJHtwYXJ0c1sxXX1gO1xuICAgIH1cbn07XG5cbmNvbnN0IHdpZGdldENoaWxkQXR0cnMgPSAoKCkgPT4ge1xuICAgIGNvbnN0IGNoaWxkQXR0cnMgPSBuZXcgTWFwKCk7XG4gICAgY29uc3QgdmFsaWRDaGlsZEF0dHJzID0gW1xuICAgICAgICBgcmVxdWlyZWRgXG4gICAgXTtcbiAgICByZXR1cm4ge1xuICAgICAgICBzZXQ6IGF0dHJzID0+IHtcbiAgICAgICAgICAgIGF0dHJzLmZvckVhY2goKHZhbCwga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgdmFsaWRDaGlsZEF0dHJzLmluY2x1ZGVzKGtleSkgJiYgKGNoaWxkQXR0cnMuc2V0KGtleSwgdmFsKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgZ2V0OiBhdHRycyA9PiB7XG4gICAgICAgICAgICBjb25zdCBmbHRyQXR0cnMgPSBuZXcgTWFwKCk7XG4gICAgICAgICAgICBjaGlsZEF0dHJzLmZvckVhY2goKHZhbCwga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgIWF0dHJzLmdldChrZXkpICYmIGZsdHJBdHRycy5zZXQoa2V5LCB2YWwpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gZmx0ckF0dHJzO1xuICAgICAgICB9LFxuICAgICAgICBjbGVhcjogKCkgPT4ge1xuICAgICAgICAgICAgY2hpbGRBdHRycy5jbGVhcigpO1xuICAgICAgICB9XG4gICAgfTtcbn0pKCk7XG5leHBvcnQgY29uc3Qgc2V0Q2hpbGRBdHRycyA9IGF0dHJzID0+IHtcbiAgICB3aWRnZXRDaGlsZEF0dHJzLnNldChhdHRycyk7XG4gICAgcmV0dXJuICcnO1xufTtcbmV4cG9ydCBjb25zdCBnZXRDaGlsZEF0dHJzID0gYXR0cnMgPT4ge1xuICAgIHJldHVybiBnZXRBdHRyTWFya3VwKHdpZGdldENoaWxkQXR0cnMuZ2V0KGF0dHJzKSk7XG59O1xuZXhwb3J0IGNvbnN0IGNsZWFyQ2hpbGRBdHRycyA9ICgpID0+IHtcbiAgICB3aWRnZXRDaGlsZEF0dHJzLmNsZWFyKCk7XG4gICAgcmV0dXJuICcnO1xufTtcbmV4cG9ydCBjb25zdCBnZXRGb3JtTWFya3VwQXR0ciA9IGF0dHJzID0+IHtcbiAgICBpZiAoYXR0cnMuZ2V0KCdkYXRhdmFsdWUuYmluZCcpKSB7XG4gICAgICAgIGNvbnN0IG9uRGF0YVZhbHVlQmluZGluZyA9IGdldERhdGFTb3VyY2UoYXR0cnMuZ2V0KCdkYXRhdmFsdWUuYmluZCcpKTtcbiAgICAgICAgYXR0cnMuc2V0KCdkYXRhdmFsdWVzb3VyY2UuYmluZCcsIG9uRGF0YVZhbHVlQmluZGluZyk7XG4gICAgfVxuICAgIHJldHVybiBnZXRBdHRyTWFya3VwKGF0dHJzKTtcbn07XG5cbmNvbnN0IGdldEF0dHJNYXAgPSBhdHRycyA9PiB7XG4gICAgY29uc3QgYXR0ck1hcCA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG4gICAgYXR0cnMuZm9yRWFjaChhdHRyID0+IHtcbiAgICAgICAgbGV0IFthdHRyTmFtZSwgYXR0clZhbHVlXSA9IHByb2Nlc3NBdHRyKGF0dHIpO1xuICAgICAgICBhdHRyTWFwLnNldChhdHRyTmFtZSwgYXR0clZhbHVlKTtcbiAgICB9KTtcblxuICAgIGlmIChhdHRyTWFwLmdldCgnZGF0YXNldC5iaW5kJykpIHtcbiAgICAgICAgY29uc3QgZGF0YVNvdXJjZSA9IGdldERhdGFTb3VyY2UoYXR0ck1hcC5nZXQoJ2RhdGFzZXQuYmluZCcpKTtcbiAgICAgICAgaWYgKGRhdGFTb3VyY2UpIHtcbiAgICAgICAgICAgIGF0dHJNYXAuc2V0KCdkYXRhc291cmNlLmJpbmQnLCBkYXRhU291cmNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBhdHRyTWFwO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEF0dHJNYXJrdXAgPSAoYXR0cnM6IE1hcDxzdHJpbmcsIHN0cmluZz4pID0+IHtcbiAgICBsZXQgYXR0ck1hcmt1cCA9ICcnO1xuICAgIGF0dHJzLmZvckVhY2goKHYsIGspID0+IHtcbiAgICAgICAgYXR0ck1hcmt1cCArPSBgICR7a31gO1xuICAgICAgICBpZiAodikge1xuICAgICAgICAgICAgdiA9IHYudHJpbSgpO1xuICAgICAgICAgICAgaWYgKGsgPT09ICdbbmdDbGFzc10nICYmIHYuc3RhcnRzV2l0aCgneycpKSB7XG4gICAgICAgICAgICAgICAgdiA9IHYucmVwbGFjZSgvXCIvZywgYCdgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChrID09PSAnc2hvdy5iaW5kJyAmJiBhdHRycy5nZXQoJ2RlZmVybG9hZCcpID09PSAndHJ1ZScpIHtcbiAgICAgICAgICAgICAgICB2ID0gdiArIGBcIiAqbGF6eUxvYWQ9XCIke3dyYXBXaXRoQXBvcyh2KX1gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXR0ck1hcmt1cCArPSBgPVwiJHt2fVwiYDtcblxuICAgICAgICAgICAgaWYgKGsgPT09ICdzaG93aW5kZXZpY2UnICYmIHYgIT09ICdhbGwnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29uZGl0aW9uID0gW107XG4gICAgICAgICAgICAgICAgaWYgKHYuaW5jbHVkZXMoJ3hzJykpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uLnB1c2goJ1ZpZXdwb3J0LmlzTW9iaWxlVHlwZScpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodi5pbmNsdWRlcygnc20nKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25kaXRpb24ucHVzaCgnKFZpZXdwb3J0LmlzVGFibGV0VHlwZSAmJiBWaWV3cG9ydC5vcmllbnRhdGlvbi5pc1BvcnRyYWl0KScpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodi5pbmNsdWRlcygnbWQnKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25kaXRpb24ucHVzaCgnKFZpZXdwb3J0LmlzVGFibGV0VHlwZSAmJiBWaWV3cG9ydC5vcmllbnRhdGlvbi5pc0xhbmRzY2FwZSknKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYXR0ck1hcmt1cCArPSBgICpuZ0lmPVwiJHtjb25kaXRpb24uam9pbignIHx8ICcpfVwiYDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGF0dHJNYXJrdXA7XG59O1xuXG5jb25zdCBnZXRSZXF1aXJlZFByb3ZpZGVycyA9IChub2RlRGVmOiBJQnVpbGRUYXNrRGVmLCBwcm92aWRlcnM6IEFycmF5PElQcm92aWRlckluZm8+LCBub2RlQXR0cnMpID0+IHtcbiAgICBpZiAoIW5vZGVEZWYucmVxdWlyZXMpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGxldCByZXF1aXJlcyA9IG5vZGVEZWYucmVxdWlyZXMgYXMgYW55O1xuXG4gICAgaWYgKGlzU3RyaW5nKHJlcXVpcmVzKSkge1xuICAgICAgICByZXF1aXJlcyA9IFtyZXF1aXJlc107XG4gICAgfVxuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHJlcXVpcmVzKSkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcXVpcmVzLm1hcChyZXF1aXJlID0+IHtcbiAgICAgICAgLy8gZm9yIGR5bmFtaWMgdGFibGUgYXNzaWduaW5nIHBhcmVudCBwcm92aWRlIG1hcCB0byB0aGUgY2hpbGQsXG4gICAgICAgIGZvciAobGV0IGkgPSBub2RlQXR0cnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0gKSB7XG4gICAgICAgICAgICBpZiAobm9kZUF0dHJzW2ldLm5hbWUgPT09ICd0YWJsZU5hbWUnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZWZbbm9kZUF0dHJzW2ldLnZhbHVlXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAobGV0IGkgPSBwcm92aWRlcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0gKSB7XG4gICAgICAgICAgICBpZiAocHJvdmlkZXJzW2ldLm5vZGVOYW1lID09PSByZXF1aXJlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByb3ZpZGVyc1tpXS5wcm92aWRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG59O1xuXG5jb25zdCBESU1FTlNJT05fUFJPUFMgPSBbJ3BhZGRpbmcnLCAnYm9yZGVyd2lkdGgnLCAnbWFyZ2luJ107XG5cbmNvbnN0IFNFUEFSQVRPUiA9ICcgJywgVU5TRVQgPSAndW5zZXQnO1xuXG5jb25zdCBzZXREaW1lbnNpb25Qcm9wID0gKGNzc09iaiwga2V5LCBudikgPT4ge1xuICAgIGxldCBjc3NLZXkgPSBrZXksIHZhbCwgdG9wLCByaWdodCwgYm90dG9tLCBsZWZ0LCBzdWZmaXggPSAnJztcblxuICAgIGZ1bmN0aW9uIHNldFZhbChwcm9wLCB2YWx1ZSkge1xuICAgICAgICAvLyBpZiB0aGUgdmFsdWUgaXMgVU5TRVQsIHJlc2V0IHRoZSBleGlzdGluZyB2YWx1ZVxuICAgICAgICBpZiAodmFsdWUgPT09IFVOU0VUKSB7XG4gICAgICAgICAgICB2YWx1ZSA9ICcnO1xuICAgICAgICB9XG4gICAgICAgIGNzc09ialtjc3NLZXkgKyBwcm9wICsgc3VmZml4XSA9IHZhbHVlO1xuICAgIH1cblxuICAgIGlmIChrZXkgPT09ICdib3JkZXJ3aWR0aCcpIHtcbiAgICAgICAgc3VmZml4ID0gICd3aWR0aCc7XG4gICAgICAgIGNzc0tleSA9ICdib3JkZXInO1xuICAgIH1cblxuICAgIHZhbCA9IG52O1xuXG4gICAgaWYgKHZhbC5pbmRleE9mKFVOU0VUKSAhPT0gLTEpIHtcbiAgICAgICAgdmFsID0gdmFsLnNwbGl0KFNFUEFSQVRPUik7XG5cbiAgICAgICAgdG9wICAgID0gdmFsWzBdO1xuICAgICAgICByaWdodCAgPSB2YWxbMV0gfHwgdmFsWzBdO1xuICAgICAgICBib3R0b20gPSB2YWxbMl0gfHwgdmFsWzBdO1xuICAgICAgICBsZWZ0ICAgPSB2YWxbM10gfHwgdmFsWzFdIHx8IHZhbFswXTtcblxuICAgICAgICBzZXRWYWwoJ3RvcCcsICAgIHRvcCk7XG4gICAgICAgIHNldFZhbCgncmlnaHQnLCAgcmlnaHQpO1xuICAgICAgICBzZXRWYWwoJ2JvdHRvbScsIGJvdHRvbSk7XG4gICAgICAgIHNldFZhbCgnbGVmdCcsICAgbGVmdCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGtleSA9PT0gJ2JvcmRlcndpZHRoJykge1xuICAgICAgICAgICAgY3NzS2V5ID0gJ2JvcmRlcndpZHRoJztcbiAgICAgICAgfVxuICAgICAgICBjc3NPYmpbY3NzS2V5XSA9IG52O1xuICAgIH1cbn07XG5cbmNvbnN0IHByb2Nlc3NEaW1lbnNpb25BdHRyaWJ1dGVzID0gYXR0ck1hcCA9PiB7XG4gICAgY29uc3QgYXR0cktleXMgPSBBcnJheS5mcm9tKGF0dHJNYXAua2V5cygpKTtcbiAgICBhdHRyS2V5cy5mb3JFYWNoKChhdHRyS2V5OiBhbnkpID0+IHtcbiAgICAgICAgaWYgKERJTUVOU0lPTl9QUk9QUy5pbmNsdWRlcyhhdHRyS2V5KSkge1xuICAgICAgICAgICAgY29uc3QgY3NzT2JqID0ge30sXG4gICAgICAgICAgICAgICAgYXR0clZhbHVlID0gYXR0ck1hcC5nZXQoYXR0cktleSk7XG4gICAgICAgICAgICBhdHRyTWFwLmRlbGV0ZShhdHRyS2V5KTtcbiAgICAgICAgICAgIHNldERpbWVuc2lvblByb3AoY3NzT2JqLCBhdHRyS2V5LCBhdHRyVmFsdWUpO1xuICAgICAgICAgICAgT2JqZWN0LmtleXMoY3NzT2JqKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGNzc09ialtrZXldKSB7XG4gICAgICAgICAgICAgICAgICAgIGF0dHJNYXAuc2V0KGtleSwgY3NzT2JqW2tleV0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSk7XG59O1xuXG4vLyByZXBsYWNlIDw6c3ZnOnN2Zz4gLT4gPHN2Zz4sIDw6c3ZnOio+IC0+IDxzdmc6Kj5cbmNvbnN0IGdldE5vZGVOYW1lID0gbmFtZSA9PiBuYW1lLnJlcGxhY2UoJzpzdmc6c3ZnJywgJ3N2ZycpLnJlcGxhY2UoJzpzdmc6JywgJ3N2ZzonKTtcblxuZXhwb3J0IGNvbnN0IHByb2Nlc3NOb2RlID0gKG5vZGUsIGltcG9ydENvbGxlY3RvcjogKGk6IEltcG9ydERlZltdKSA9PiB2b2lkLCBwcm92aWRlcnM/OiBBcnJheTxJUHJvdmlkZXJJbmZvPikgPT4ge1xuICAgIGNvbnN0IG5vZGVEZWYgPSByZWdpc3RyeS5nZXQobm9kZS5uYW1lKTtcblxuICAgIGxldCBwcmUsIHBvc3QsIHRlbXBsYXRlO1xuXG4gICAgaWYgKG5vZGVEZWYpIHtcbiAgICAgICAgcHJlID0gbm9kZURlZi5wcmUgfHwgZW1wdHk7XG4gICAgICAgIHBvc3QgPSBub2RlRGVmLnBvc3QgfHwgZW1wdHk7XG4gICAgICAgIHRlbXBsYXRlID0gbm9kZURlZi50ZW1wbGF0ZSB8fCBlbXB0eTtcbiAgICB9XG5cbiAgICBsZXQgbWFya3VwID0gJyc7XG4gICAgbGV0IGF0dHJNYXA7XG4gICAgbGV0IHJlcXVpcmVkUHJvdmlkZXJzO1xuICAgIGxldCBzaGFyZWQ7XG5cbiAgICBpZiAoIXByb3ZpZGVycykge1xuICAgICAgICBwcm92aWRlcnMgPSBbXTtcbiAgICB9XG5cbiAgICBjb25zdCBpc0VsZW1lbnRUeXBlID0gbm9kZSBpbnN0YW5jZW9mIEVsZW1lbnQ7XG5cbiAgICBpZiAoaXNFbGVtZW50VHlwZSkge1xuICAgICAgICBsZXQgcHJvdmlkZUluZm86IElQcm92aWRlckluZm87XG5cbiAgICAgICAgaWYgKG5vZGVEZWYpIHtcbiAgICAgICAgICAgIHJlcXVpcmVkUHJvdmlkZXJzID0gZ2V0UmVxdWlyZWRQcm92aWRlcnMobm9kZURlZiwgcHJvdmlkZXJzLCBub2RlLmF0dHJzKTtcbiAgICAgICAgICAgIHNoYXJlZCA9IG5ldyBNYXAoKTtcbiAgICAgICAgICAgIHRlbXBsYXRlKG5vZGUsIHNoYXJlZCwgLi4ucmVxdWlyZWRQcm92aWRlcnMpO1xuICAgICAgICB9XG5cbiAgICAgICAgYXR0ck1hcCA9IGdldEF0dHJNYXAobm9kZS5hdHRycyk7XG4gICAgICAgIHByb2Nlc3NEaW1lbnNpb25BdHRyaWJ1dGVzKGF0dHJNYXApO1xuXG4gICAgICAgIGNvbnN0IG5vZGVOYW1lID0gZ2V0Tm9kZU5hbWUobm9kZS5uYW1lKTtcblxuICAgICAgICBpZiAobm9kZURlZikge1xuICAgICAgICAgICAgbWFya3VwID0gKDxhbnk+cHJlKShhdHRyTWFwLCBzaGFyZWQsIC4uLnJlcXVpcmVkUHJvdmlkZXJzKTtcbiAgICAgICAgICAgIGlmIChub2RlRGVmLnByb3ZpZGUpIHtcbiAgICAgICAgICAgICAgICBwcm92aWRlSW5mbyA9IHtcbiAgICAgICAgICAgICAgICAgICAgbm9kZU5hbWU6IG5vZGUubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogXy5pc0Z1bmN0aW9uKG5vZGVEZWYucHJvdmlkZSkgPyBub2RlRGVmLnByb3ZpZGUoYXR0ck1hcCwgc2hhcmVkLCAuLi5yZXF1aXJlZFByb3ZpZGVycykgOiBub2RlRGVmLnByb3ZpZGVcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIC8vIEZvciB0YWJsZSBub2RlLCBhc3NpZ25pbmcgcGFyZW50IHByb3ZpZGUgbWFwIHRvIHRoZSBjaGlsZCwgYXMgY2hpbGQgcmVxdWlyZXMgc29tZSBwYXJlbnQgcHJvdmlkZSBhdHRycy5cbiAgICAgICAgICAgICAgICBpZiAobm9kZS5uYW1lID09PSAnd20tdGFibGUnKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhYmxlQ29sTm9kZURlZm4gPSByZWdpc3RyeS5nZXQoJ3dtLXRhYmxlLWNvbHVtbicpO1xuICAgICAgICAgICAgICAgICAgICB0YWJsZUNvbE5vZGVEZWZuW18uZmluZChub2RlLmF0dHJzLCAoZWwpID0+IGVsLm5hbWUgPT09ICduYW1lJykudmFsdWUgKyBwcm92aWRlSW5mby5wcm92aWRlLmdldCgndGFibGVfcmVmZXJlbmNlJyldID0gcHJvdmlkZUluZm8ucHJvdmlkZTtcbiAgICAgICAgICAgICAgICAgICAgcmVnaXN0cnkuc2V0KCd3bS10YWJsZS1jb2x1bW4nLCB0YWJsZUNvbE5vZGVEZWZuKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcHJvdmlkZXJzLnB1c2gocHJvdmlkZUluZm8pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbWFya3VwID0gYDwke25vZGVOYW1lfSAke2dldEF0dHJNYXJrdXAoYXR0ck1hcCl9PmA7XG4gICAgICAgIH1cblxuICAgICAgICBub2RlLmNoaWxkcmVuLmZvckVhY2goKGNoaWxkOiBOb2RlIHwgYW55KSA9PiB7XG4gICAgICAgICAgICBpZihjaGlsZC5hdHRycykge1xuICAgICAgICAgICAgICAgIGxldCBzaG93SW5EZXZpY2VBdHRyLCBhY2Nlc3NSb2xlc0F0dHIsIGRlZmVyTG9hZEF0dHIsIHNob3dBdHRyO1xuICAgICAgICAgICAgICAgIGNoaWxkLmF0dHJzLmZvckVhY2goZnVuY3Rpb24oYXR0cil7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhdHRyLm5hbWUgPT09ICdzaG93aW5kZXZpY2UnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93SW5EZXZpY2VBdHRyID0gYXR0cjtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhdHRyLm5hbWUgPT09ICdhY2Nlc3Nyb2xlcycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc1JvbGVzQXR0ciA9IGF0dHI7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXR0ci5uYW1lID09PSAnZGVmZXJsb2FkJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVmZXJMb2FkQXR0ciA9IGF0dHI7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXR0ci5uYW1lID09PSAnc2hvdycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dBdHRyID0gYXR0cjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmKChzaG93SW5EZXZpY2VBdHRyICYmIGFjY2Vzc1JvbGVzQXR0cikgfHwgKHNob3dJbkRldmljZUF0dHIgJiYgZGVmZXJMb2FkQXR0cikgfHwgKGFjY2Vzc1JvbGVzQXR0ciAmJiBkZWZlckxvYWRBdHRyKSkge1xuICAgICAgICAgICAgICAgICAgICAvKiBJZiBtb3JlIHRoYW4gb25lIG91dCBvZiBzaG93aW5kZXZpY2UsIGFjY2Vzc3JvbGVzIGFuZCBkZWZlcmxvYWQgZXhpc3QgZm9yIGEgd2lkZ2V0LCBhZGQgbmctY29udGFpbmVyIHdyYXBwZXJzIHRvIGZpeCBhbmd1bGFyIGxpbWl0YXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgb2YgYXBwbHlpbmcgb25seSBvbmUgc3RydWN0dXJhbCBkaXJlY3RpdmUgdG8gYW4gZWxlbWVudC5cbiAgICAgICAgICAgICAgICAgICAgKiAgKi9cbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgbm9TcGFuID0gKHt9IGFzIFBhcnNlU291cmNlU3Bhbik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNob3dJbkRldmljZUNvbnRhaW5lcjphbnkgPSBzaG93SW5EZXZpY2VBdHRyID8gbmV3IEVsZW1lbnQoJ25nLWNvbnRhaW5lcicsIFtdLCBbXSwgbm9TcGFuLCBub1NwYW4sIG5vU3BhbikgOiAnJztcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYWNjZXNzUm9sZXNDb250YWluZXI6YW55ID0gYWNjZXNzUm9sZXNBdHRyID8gbmV3IEVsZW1lbnQoJ25nLWNvbnRhaW5lcicsIFtdLCBbXSwgbm9TcGFuLCBub1NwYW4sIG5vU3BhbikgOiAnJztcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGVmZXJMb2FkQ29udGFpbmVyOmFueSA9IGRlZmVyTG9hZEF0dHIgPyBuZXcgRWxlbWVudCgnbmctY29udGFpbmVyJywgW10sIFtdLCBub1NwYW4sIG5vU3Bhbiwgbm9TcGFuKSA6ICcnO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2hvd0luRGV2aWNlQ29udGFpbmVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93SW5EZXZpY2VDb250YWluZXIuYXR0cnMucHVzaChzaG93SW5EZXZpY2VBdHRyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoYWNjZXNzUm9sZXNDb250YWluZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc1JvbGVzQ29udGFpbmVyLmF0dHJzLnB1c2goYWNjZXNzUm9sZXNBdHRyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoZGVmZXJMb2FkQ29udGFpbmVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZlckxvYWRDb250YWluZXIuYXR0cnMucHVzaChkZWZlckxvYWRBdHRyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzaG93QXR0cikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmVyTG9hZENvbnRhaW5lci5hdHRycy5wdXNoKHNob3dBdHRyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBfLnJlbW92ZShjaGlsZC5hdHRycywgZnVuY3Rpb24oYXR0cikge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGF0dHIubmFtZSA9PT0gJ3Nob3dpbmRldmljZScgfHwgYXR0ci5uYW1lID09PSAnYWNjZXNzcm9sZXMnIHx8IGF0dHIubmFtZSA9PT0gJ2RlZmVybG9hZCdcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGxldCBjaGlsZENvbnRhaW5lciwgcGFyZW50Q29udGFpbmVyO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2hvd0luRGV2aWNlQXR0ciAmJiBhY2Nlc3NSb2xlc0F0dHIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkQ29udGFpbmVyID0gc2hvd0luRGV2aWNlQ29udGFpbmVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50Q29udGFpbmVyID0gYWNjZXNzUm9sZXNDb250YWluZXI7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc2hvd0luRGV2aWNlQXR0ciAmJiBkZWZlckxvYWRBdHRyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZENvbnRhaW5lciA9IHNob3dJbkRldmljZUNvbnRhaW5lcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudENvbnRhaW5lciA9IGRlZmVyTG9hZENvbnRhaW5lcjtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhY2Nlc3NSb2xlc0F0dHIgJiYgZGVmZXJMb2FkQXR0cikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRDb250YWluZXIgPSBkZWZlckxvYWRDb250YWluZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRDb250YWluZXIgPSBhY2Nlc3NSb2xlc0NvbnRhaW5lcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyB3cmFwIGN1cnJlbnQgbm9kZSBlbGVtZW50cyBpbnNpZGUgZmlyc3QgbmctY29udGFpbmVyKGNoaWxkQ29udGFpbmVyKSBhbmQgdGhhdCBjb250YWluZXIncyBlbGVtZW50cyBpbnNpZGUgYW5vdGhlciBuZy1jb250YWluZXIocGFyZW50Q29udGFpbmVyKVxuICAgICAgICAgICAgICAgICAgICBjaGlsZENvbnRhaW5lci5jaGlsZHJlbiA9IFtjaGlsZF07XG4gICAgICAgICAgICAgICAgICAgIHBhcmVudENvbnRhaW5lci5jaGlsZHJlbiA9IFtjaGlsZENvbnRhaW5lcl07XG4gICAgICAgICAgICAgICAgICAgIC8vIGlmIGFsbCB0aHJlZSBkaXJlY3RpdmVzIGV4aXN0LCBjcmVhdGUgYW5vdGhlciB3cmFwcGVyIGZvciB0aGlyZCBuZy1jb250YWluZXIoZ3JhbmRQYXJlbnRDb250YWluZXIpXG4gICAgICAgICAgICAgICAgICAgIGlmIChzaG93SW5EZXZpY2VBdHRyICYmIGFjY2Vzc1JvbGVzQXR0ciAmJiBkZWZlckxvYWRBdHRyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBncmFuZFBhcmVudENvbnRhaW5lciA9IGRlZmVyTG9hZENvbnRhaW5lcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdyYW5kUGFyZW50Q29udGFpbmVyLmNoaWxkcmVuID0gW3BhcmVudENvbnRhaW5lcl07XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZCA9IGdyYW5kUGFyZW50Q29udGFpbmVyO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGQgPSBwYXJlbnRDb250YWluZXI7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBtYXJrdXAgKz0gcHJvY2Vzc05vZGUoY2hpbGQsIGltcG9ydENvbGxlY3RvciwgcHJvdmlkZXJzKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKG5vZGVEZWYpIHtcbiAgICAgICAgICAgIGlmIChwcm92aWRlSW5mbykge1xuICAgICAgICAgICAgICAgIHByb3ZpZGVycy5zcGxpY2UocHJvdmlkZXJzLmluZGV4T2YocHJvdmlkZUluZm8pLCAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG1hcmt1cCArPSAoPGFueT5wb3N0KShhdHRyTWFwLCBzaGFyZWQsIC4uLnJlcXVpcmVkUHJvdmlkZXJzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChub2RlLmVuZFNvdXJjZVNwYW4gJiYgIWdldEh0bWxUYWdEZWZpbml0aW9uKG5vZGUubmFtZSkuaXNWb2lkKSB7XG4gICAgICAgICAgICAgICAgbWFya3VwICs9IGA8LyR7bm9kZU5hbWV9PmA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9IGVsc2UgaWYgKG5vZGUgaW5zdGFuY2VvZiBUZXh0KSB7XG4gICAgICAgIG1hcmt1cCArPSBub2RlLnZhbHVlO1xuICAgIH0gZWxzZSBpZiAobm9kZSBpbnN0YW5jZW9mIENvbW1lbnQpIHtcbiAgICAgICAgaWYgKCFpZ25vcmVDb21tZW50cykge1xuICAgICAgICAgICAgbWFya3VwICs9IG5vZGUudmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaW1wb3J0Q29sbGVjdG9yKFdJREdFVF9JTVBPUlRTLmdldChub2RlLm5hbWUpKTtcbiAgICBpZiAobm9kZURlZiAmJiBub2RlRGVmLmltcG9ydHMpIHtcbiAgICAgICAgbGV0IGltcG9ydHMgPSBbXTtcbiAgICAgICAgaWYgKHR5cGVvZiBub2RlRGVmLmltcG9ydHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGltcG9ydHMgPSBub2RlRGVmLmltcG9ydHMoYXR0ck1hcCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpbXBvcnRzID0gbm9kZURlZi5pbXBvcnRzO1xuICAgICAgICB9XG4gICAgICAgIGltcG9ydHMuZm9yRWFjaCggaSA9PiB7XG4gICAgICAgICAgICBpbXBvcnRDb2xsZWN0b3IoV0lER0VUX0lNUE9SVFMuZ2V0KGkpKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBtYXJrdXA7XG59O1xuXG5leHBvcnQgY29uc3QgdHJhbnNwaWxlID0gKG1hcmt1cDogc3RyaW5nID0gJycpID0+IHtcbiAgICBpZiAoIW1hcmt1cC5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgcmVxdWlyZWRXTUNvbXBvbmVudHMgPSBbXTtcbiAgICBjb25zdCBub2RlcyA9IGh0bWxQYXJzZXIucGFyc2UobWFya3VwLCAnJyk7XG5cbiAgICBpZiAobm9kZXMuZXJyb3JzLmxlbmd0aCkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IG91dHB1dCA9ICcnO1xuICAgIGZvciAoY29uc3Qgbm9kZSBvZiBub2Rlcy5yb290Tm9kZXMpIHtcbiAgICAgICAgb3V0cHV0ICs9IHByb2Nlc3NOb2RlKG5vZGUsIChpbXBvcnRzOiBJbXBvcnREZWZbXSkgPT4ge1xuICAgICAgICAgICAgaWYgKGltcG9ydHMpIHtcbiAgICAgICAgICAgICAgICByZXF1aXJlZFdNQ29tcG9uZW50cyA9IHJlcXVpcmVkV01Db21wb25lbnRzLmNvbmNhdChpbXBvcnRzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJlcXVpcmVkV01Db21wb25lbnRzID0gXy51bmlxV2l0aChyZXF1aXJlZFdNQ29tcG9uZW50cywgXy5pc0VxdWFsKTtcbiAgICByZXF1aXJlZFdNQ29tcG9uZW50cyA9IF8uc29ydEJ5KHJlcXVpcmVkV01Db21wb25lbnRzLCBbJ2Zyb20nLCAnbmFtZSddKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBtYXJrdXA6IG91dHB1dCxcbiAgICAgICAgcmVxdWlyZWRXTUNvbXBvbmVudHM6IHJlcXVpcmVkV01Db21wb25lbnRzXG4gICAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCByZWdpc3RlciA9IChub2RlTmFtZTogc3RyaW5nLCBub2RlRGVmRm46ICgpID0+IElCdWlsZFRhc2tEZWYpID0+IHJlZ2lzdHJ5LnNldChub2RlTmFtZSwgbm9kZURlZkZuKCkpO1xuXG5leHBvcnQgaW50ZXJmYWNlIEltcG9ydERlZiB7XG4gICAgZnJvbTogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBhcz86IHN0cmluZztcbiAgICBmb3JSb290PzogYm9vbGVhbjtcbiAgICBwbGF0Zm9ybVR5cGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUJ1aWxkVGFza0RlZiB7XG4gICAgcmVxdWlyZXM/OiBzdHJpbmcgfCBBcnJheTxzdHJpbmc+O1xuICAgIHRlbXBsYXRlPzogKG5vZGU6IEVsZW1lbnQgfCBUZXh0IHwgQ29tbWVudCwgc2hhcmVkPzogTWFwPGFueSwgYW55PiwgLi4ucmVxdWlyZXM6IEFycmF5PE1hcDxhbnksIGFueT4+KSA9PiB2b2lkO1xuICAgIHByZTogKGF0dHJzOiBNYXA8c3RyaW5nLCBzdHJpbmc+LCBzaGFyZWQgPzogTWFwPGFueSwgYW55PiwgLi4ucmVxdWlyZXM6IEFycmF5PE1hcDxhbnksIGFueT4+KSA9PiBzdHJpbmc7XG4gICAgcHJvdmlkZT86IChhdHRyczogTWFwPHN0cmluZywgc3RyaW5nPiwgc2hhcmVkID86IE1hcDxhbnksIGFueT4sIC4uLnJlcXVpcmVzOiBBcnJheTxNYXA8YW55LCBhbnk+PikgPT4gTWFwPGFueSwgYW55PjtcbiAgICBwb3N0PzogKGF0dHJzOiBNYXA8c3RyaW5nLCBzdHJpbmc+LCBzaGFyZWQgPzogTWFwPGFueSwgYW55PiwgLi4ucmVxdWlyZXM6IEFycmF5PE1hcDxhbnksIGFueT4+KSA9PiBzdHJpbmc7XG4gICAgaW1wb3J0cz86ICBzdHJpbmdbXSB8ICgoYXR0cnM6IE1hcDxzdHJpbmcsIHN0cmluZz4pID0+IHN0cmluZ1tdKTtcbn1cblxuZXhwb3J0IGNvbnN0IHNjb3BlQ29tcG9uZW50U3R5bGVzID0gKGNvbXBvbmVudE5hbWUsIGNvbXBvbmVudFR5cGUsIHN0eWxlcyA9ICcnKSA9PiB7XG4gICAgY29tcG9uZW50TmFtZSA9IGNvbXBvbmVudE5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCBjb21tZW50cyA9IHt9O1xuICAgIGxldCBjb21tZW50Q291bnQgPSAwO1xuICAgIGlmIChzdHlsZXMuc3RhcnRzV2l0aCgnLypESVNBQkxFX1NDT1BJTkcqLycpKSB7XG4gICAgICAgIHJldHVybiBzdHlsZXM7XG4gICAgfVxuICAgIHN0eWxlcyA9IHN0eWxlcy5yZXBsYWNlKENTU19SRUdFWC5DT01NRU5UU19GT1JNQVQsIGNvbW1lbnQgPT4ge1xuICAgICAgICBjb25zdCBrZXkgPSBgQGNvbW1lbnQke2NvbW1lbnRDb3VudCsrfXtgO1xuICAgICAgICBjb21tZW50c1trZXldID0gY29tbWVudDtcbiAgICAgICAgcmV0dXJuIGtleTtcbiAgICB9KTtcbiAgICBzdHlsZXMgPSBzdHlsZXMucmVwbGFjZShDU1NfUkVHRVguU0VMRUNUT1JfRk9STUFULCAoc2VsZWN0b3IpID0+IHtcbiAgICAgICAgaWYgKCFDU1NfUkVHRVguU0VMRUNUT1JfRVhDTFVERV9GT1JNQVQudGVzdChzZWxlY3RvcikpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpcnN0Tm9uU3BhY2VDaGFySW5kZXggPSBzZWxlY3Rvci5tYXRjaCgvXFxTLykuaW5kZXg7XG4gICAgICAgICAgICBsZXQgcHJlZml4U3BhY2VDaGFyU2VxID0gJyc7XG4gICAgICAgICAgICBpZiAoZmlyc3ROb25TcGFjZUNoYXJJbmRleCA+IDApIHtcbiAgICAgICAgICAgICAgICBwcmVmaXhTcGFjZUNoYXJTZXEgPSBzZWxlY3Rvci5zdWJzdHJpbmcoMCwgZmlyc3ROb25TcGFjZUNoYXJJbmRleCk7XG4gICAgICAgICAgICAgICAgc2VsZWN0b3IgPSBzZWxlY3Rvci5zdWJzdHJpbmcoZmlyc3ROb25TcGFjZUNoYXJJbmRleCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXNlbGVjdG9yLnN0YXJ0c1dpdGgoJy8qJykgJiYgc2VsZWN0b3IudHJpbSgpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAvLyBzcGxpdHMgdGhlIHNlbGVjdG9yIGJ5IGNvbW1hcyBhbmQgd2UgaXRlcmF0ZSBvdmVyIHRoZSBhcnJheSBhbmQgYWRkIHBhZ2UgbGV2ZWwgc2NvcGluZyBhbmQgam9pbiBpdC5cbiAgICAgICAgICAgICAgICBzZWxlY3RvciA9IHNlbGVjdG9yLnNwbGl0KCcsJykubWFwKHMgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgcHJlZml4ID0gRUxFX1BSRUZJWDtcbiAgICAgICAgICAgICAgICAgICAgcyA9IHMudHJpbSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzcGFjZUluZGV4ID0gcy5pbmRleE9mKCcgJyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzLnN0YXJ0c1dpdGgoRUxFX1BSRUZJWCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzcGFjZUluZGV4ID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeCA9IHMuc3Vic3RyaW5nKDAsIHNwYWNlSW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMgPSBzLnN1YnN0cmluZyhzcGFjZUluZGV4ICsgMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbXBvbmVudFR5cGUgPT09IDAgfHwgY29tcG9uZW50VHlwZSA9PT0gJ1BBR0UnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzID0gYCR7cHJlZml4fSBhcHAtcGFnZS0ke2NvbXBvbmVudE5hbWV9ICR7c31gO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNvbXBvbmVudFR5cGUgPT09IDEgfHwgY29tcG9uZW50VHlwZSA9PT0gJ1BSRUZBQicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHMgPSBgJHtwcmVmaXh9IGFwcC1wcmVmYWItJHtjb21wb25lbnROYW1lfSAke3N9YDtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjb21wb25lbnRUeXBlID09PSAyIHx8IGNvbXBvbmVudFR5cGUgPT09ICdQQVJUSUFMJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcyA9IGAke3ByZWZpeH0gYXBwLXBhcnRpYWwtJHtjb21wb25lbnROYW1lfSAke3N9YDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcztcbiAgICAgICAgICAgICAgICB9KS5qb2luKCcsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZWxlY3RvciA9IHByZWZpeFNwYWNlQ2hhclNlcSArIHNlbGVjdG9yO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzZWxlY3RvcjtcbiAgICB9KTtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBjb21tZW50cykge1xuICAgICAgICBzdHlsZXMgPSBzdHlsZXMucmVwbGFjZShrZXksIGNvbW1lbnRzW2tleV0pO1xuICAgIH1cbiAgICByZXR1cm4gc3R5bGVzO1xufTtcblxuIl19
|
|
@@ -182,7 +182,7 @@ const isString = v => typeof v === 'string';
|
|
|
182
182
|
const OVERRIDES = {
|
|
183
183
|
'accessroles': '*accessroles',
|
|
184
184
|
'ng-if': '*ngIf',
|
|
185
|
-
'showindevice': '*
|
|
185
|
+
'showindevice': '*wmShowInDevice',
|
|
186
186
|
'ng-class': '[ngClass]',
|
|
187
187
|
'data-ng-class': '[ngClass]',
|
|
188
188
|
'data-ng-src': 'src',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../projects/transpiler/src/imports.ts","../../../projects/transpiler/src/build.ts","../../../projects/transpiler/src/index.ts"],"sourcesContent":["import { ImportDef } from './build';\n\nconst NG_FORM_MODULE: ImportDef[] = [{from: '@angular/forms', name: 'FormsModule', as: 'ngFormsModule'}];\nconst NG_REACTIVE_FORM_MODULE: ImportDef[] = [{from: '@angular/forms', name: 'ReactiveFormsModule', as: 'ngReactiveFormsModule'}];\nconst NGX_BS_DATE_PICKER: ImportDef[] = [{from: 'ngx-bootstrap/datepicker', name: 'BsDatepickerModule', as: 'ngx_BsDatepickerModule'}];\nconst NGX_CAROUSEL_MODULE: ImportDef[] = [{from: 'ngx-bootstrap/carousel', name: 'CarouselModule', as: 'ngxCarouselModule', forRoot: true}];\nconst NGX_COLOR_PICKER_MODULE: ImportDef[] = [{from: 'ngx-color-picker', name: 'ColorPickerModule', as: 'ngx_ColorPickerModule'}];\nconst NGX_DROP_DOWN_MODULE: ImportDef[] = [{from: 'ngx-bootstrap/dropdown', name: 'BsDropdownModule', as: 'ngxBsDropdownModule', forRoot: true}];\nconst NGX_MODAL_MODULE: ImportDef[] = [{from: 'ngx-bootstrap/modal', name: 'ModalModule', as: 'ngx_ModalModule'}];\nconst NGX_PAGINATION_MODULE: ImportDef[] = [{from: 'ngx-bootstrap/pagination', name: 'PaginationModule', as: 'ngxPaginationModule', forRoot: true}];\nconst NGX_POPOVER_MODULE: ImportDef[] = [{from: 'ngx-bootstrap/popover', name: 'PopoverModule', as: 'ngxPopoverModule', forRoot: true}];\nconst NGX_TIME_PICKER: ImportDef[] = [{from: 'ngx-bootstrap/timepicker', name: 'TimepickerModule', as: 'ngx_TimepickerModule', forRoot: true}];\nconst NGX_TOOL_TIP_MODULE: ImportDef[] = [{from: 'ngx-bootstrap/tooltip', name: 'TooltipModule', as: 'ngxTooltipModule', forRoot: true}];\nconst NGX_TYPE_HEAD_MODULE: ImportDef[] = [{from: 'ngx-bootstrap/typeahead', name: 'TypeaheadModule', as: 'ngxTypeaheadModule', forRoot: true}];\nconst PROGRESS_MODULE: ImportDef[] = [{from: '@wm/components/basic/progress', name: 'ProgressModule'}];\n\n\nconst MOBILE_BASIC_MODULE: ImportDef[] = [...PROGRESS_MODULE, {from: '@wm/mobile/components/basic', name: 'BasicModule', as: 'WM_MobileBasicModule', platformType: 'MOBILE'}];\nconst MOBILE_FILE_UPLOAD_MODULE: ImportDef[] = [{from: '@wm/mobile/components/input/file-upload', name: 'FileUploadModule', as: 'WM_MobileFileUploadModule', platformType: 'MOBILE'}];\nconst PAGE_MODULE: ImportDef[] = [{from: '@wm/components/page', name: 'PageModule'},\n {from: '@wm/mobile/components/page', name: 'PageModule', as: 'WM_MobilePageModule', platformType: 'MOBILE'}];\nconst BASIC_MODULE: ImportDef[] = [{from: '@wm/components/basic', name: 'BasicModule'}, ...MOBILE_BASIC_MODULE];\nconst INPUT_MODULE: ImportDef[] = [...NG_FORM_MODULE, {from: '@wm/components/input', name: 'InputModule'}];\nconst DIALOG_MODULE: ImportDef[] = [...NGX_MODAL_MODULE, ...INPUT_MODULE, {from: '@wm/components/dialogs', name: 'DialogModule'}];\nconst PAGINATION_MODULE: ImportDef[] = [...NG_FORM_MODULE, ...NGX_PAGINATION_MODULE, {from: '@wm/components/data/pagination', name: 'PaginationModule'}];\nconst SEARCH_MODULE: ImportDef[] = [...NG_FORM_MODULE, ...NGX_TYPE_HEAD_MODULE, {from: '@wm/components/basic/search', name: 'SearchModule'}];\n\nconst ACCORDION_MODULE: ImportDef[] = [{from: '@wm/components/containers/accordion', name: 'AccordionModule'}];\nconst LINEAR_LAYOUT_MODULE: ImportDef[] = [{from: '@wm/components/containers/linear-layout', name: 'LinearLayoutModule'}];\nconst ALERT_DIALOG_MODULE: ImportDef[] = [...DIALOG_MODULE, {from: '@wm/components/dialogs/alert-dialog', name: 'AlertDialogModule'}];\nconst BARCODE_SCANNER_MODULE: ImportDef[] = [{from: '@wm/mobile/components/device/barcode-scanner', name: 'BarcodeScannerModule'}];\nconst MENU_MODULE: ImportDef[] = [...BASIC_MODULE, ...NGX_DROP_DOWN_MODULE, ...INPUT_MODULE, {from: '@wm/components/navigation/menu', name: 'MenuModule'}];\nconst BREAD_CRUMB_MODULE: ImportDef[] = [...MENU_MODULE, {from: '@wm/components/navigation/breadcrumb', name: 'BreadcrumbModule'}];\nconst CAMERA_MODULE: ImportDef[] = [{from: '@wm/mobile/components/device/camera', name: 'CameraModule'}];\nconst CALENDAR_MODULE: ImportDef[] = [...NG_FORM_MODULE, ...NGX_BS_DATE_PICKER, {from: '@wm/components/input/calendar', name: 'CalendarModule'}];\nconst CAROUSEL_MODULE: ImportDef[] = [...NGX_CAROUSEL_MODULE, {from: '@wm/components/advanced/carousel', name: 'CarouselModule'}];\nconst CHART_MODULE: ImportDef[] = [...BASIC_MODULE, {from: '@wm/components/chart', name: 'ChartModule'}];\nconst CHIPS_MODULE: ImportDef[] = [...SEARCH_MODULE, {from: '@wm/components/input/chips', name: 'ChipsModule'}];\nconst COLOR_PICKER_MODULE: ImportDef[] = [...NG_FORM_MODULE, ...NGX_COLOR_PICKER_MODULE, {from: '@wm/components/input/color-picker', name: 'ColorPickerModule'}];\nconst CONFIRM_DIALOG_MODULE: ImportDef[] = [...DIALOG_MODULE, {from: '@wm/components/dialogs/confirm-dialog', name: 'ConfirmDialogModule'}];\nconst CONTENT_MODULE: ImportDef[] = [{from: '@wm/components/page', name: 'PageModule'}];\nconst CURRENCY_MODULE: ImportDef[] = [...INPUT_MODULE, {from: '@wm/components/input/currency', name: 'CurrencyModule'}];\nconst DESIGN_DIALOG_MODULE: ImportDef[] = [...DIALOG_MODULE, {from: '@wm/components/dialogs/design-dialog', name: 'DesignDialogModule'}];\nconst EPOCH_MODULE: ImportDef[] = [...NG_FORM_MODULE, ...NGX_BS_DATE_PICKER, ...NGX_TIME_PICKER, ...NGX_DROP_DOWN_MODULE, {from: '@wm/components/input/epoch', name: 'EpochModule'}];\nconst FILE_UPLOAD_MODULE: ImportDef[] = [...MOBILE_FILE_UPLOAD_MODULE, {from: '@wm/components/input/file-upload', name: 'FileUploadModule'}];\nconst FOOTER_MODULE: ImportDef[] = [{from: '@wm/components/page/footer', name: 'FooterModule'}];\nconst HEADER_MODULE: ImportDef[] = [{from: '@wm/components/page/header', name: 'HeaderModule'}];\nconst IFRAME_DIALOG_MODULE: ImportDef[] = [...BASIC_MODULE, ...DIALOG_MODULE, {from: '@wm/components/dialogs/iframe-dialog', name: 'IframeDialogModule'}];\nconst LAYOUT_GRID_MODULE: ImportDef[] = [{from: '@wm/components/containers/layout-grid', name: 'LayoutGridModule'}];\nconst LOGIN_DIALOG_MODULE: ImportDef[] = [...DIALOG_MODULE, {from: '@wm/components/dialogs/login-dialog', name: 'LoginDialogModule'}];\nconst CARD_MODULE: ImportDef[] = [...NGX_DROP_DOWN_MODULE, ...MENU_MODULE, ...BASIC_MODULE, {from: '@wm/components/data/card', name: 'CardModule'}];\nconst MARQUEE_MODULE: ImportDef[] = [{from: '@wm/components/advanced/marquee', name: 'MarqueeModule'}];\nconst LEFT_PANEL_MODULE: ImportDef[] = [{from: '@wm/components/page/left-panel', name: 'LeftPanelModule'},\n {from: '@wm/mobile/components/page/left-panel', name: 'LeftPanelModule', as: 'WM_MobileLeftPanelModule', platformType: 'MOBILE'}];\nconst LIST_MODULE: ImportDef[] = [...PAGINATION_MODULE, ...INPUT_MODULE, {from: '@wm/components/data/list', name: 'ListModule'}];\nconst LOGIN_MODULE: ImportDef[] = [{from: '@wm/components/advanced/login', name: 'LoginModule'}];\nconst MOBILE_NAV_BAR_MODULE: ImportDef[] = [...LEFT_PANEL_MODULE, ...SEARCH_MODULE, ...PAGE_MODULE, {from: '@wm/mobile/components/page/mobile-navbar', name: 'MobileNavbarModule'}];\nconst MEDIA_LIST_MODULE: ImportDef[] = [...BASIC_MODULE, ...PAGE_MODULE, ...MOBILE_NAV_BAR_MODULE, {from: '@wm/mobile/components/data/media-list', name: 'MediaListModule'}];\nconst MOBILE_TAB_BAR_MODULE: ImportDef[] = [{from: '@wm/mobile/components/page/tab-bar', name: 'TabBarModule'}];\nconst NAVBAR_MODULE: ImportDef[] = [{from: '@wm/components/navigation/navbar', name: 'NavbarModule'}];\nconst POPOVER_MODULE: ImportDef[] = [...NGX_POPOVER_MODULE, ...BASIC_MODULE, {from: '@wm/components/navigation/popover', name: 'PopoverModule'}];\nconst PANEL_MODULE: ImportDef[] = [...MENU_MODULE, {from: '@wm/components/containers/panel', name: 'PanelModule'}];\nconst PARTIAL_DIALOG_MODULE: ImportDef[] = [...DIALOG_MODULE, {from: '@wm/components/dialogs/partial-dialog', name: 'PartialDialogModule'}];\nconst PREFAB_MODULE: ImportDef[] = [{from: '@wm/components/prefab', name: 'PrefabModule'}];\nconst RATING_MODULE: ImportDef[] = [{from: '@wm/components/input/rating', name: 'RatingModule'}];\nconst RICH_TEXT_EDITOR_MODULE: ImportDef[] = [{from: '@wm/components/basic/rich-text-editor', name: 'RichTextEditorModule'}];\nconst RIGHT_PANEL_MODULE: ImportDef[] = [{from: '@wm/components/page/right-panel', name: 'RightPanelModule'}];\nconst SEGMENTED_CONTROL_MODULE: ImportDef[] = [{from: '@wm/mobile/components/containers/segmented-control', name: 'SegmentedControlModule'}];\nconst SLIDER_MODULE: ImportDef[] = [...NG_FORM_MODULE, {from: '@wm/components/input/slider', name: 'SliderModule'}];\nconst TABS_MODULE: ImportDef[] = [{from: '@wm/components/containers/tabs', name: 'TabsModule'}];\nconst TABLE_MODULE: ImportDef[] = [...NG_FORM_MODULE, ...NG_REACTIVE_FORM_MODULE, ...PAGINATION_MODULE, ...MENU_MODULE, ...BASIC_MODULE, ...INPUT_MODULE, ...NGX_TOOL_TIP_MODULE, ...LIST_MODULE, {from: '@wm/components/data/table', name: 'TableModule'}];\nconst TILE_MODULE: ImportDef[] = [{from: '@wm/components/containers/tile', name: 'TileModule'}];\nconst TOP_NAV_MODULE: ImportDef[] = [{from: '@wm/components/page/top-nav', name: 'TopNavModule'}];\nconst TREE_MODULE: ImportDef[] = [{from: '@wm/components/basic/tree', name: 'TreeModule'}];\nconst WIZARD_MODULE: ImportDef[] = [...NG_FORM_MODULE, {from: '@wm/components/containers/wizard', name: 'WizardModule'}];\n\n\nconst LIVE_TABLE_MODULE: ImportDef[] = [...TABLE_MODULE, {from: '@wm/components/data/live-table', name: 'LiveTableModule'}];\nconst FORM_MODULE: ImportDef[] = [...NG_FORM_MODULE, ...NG_REACTIVE_FORM_MODULE, ...BASIC_MODULE, ...INPUT_MODULE, ...PAGE_MODULE, ...DESIGN_DIALOG_MODULE, {from: '@wm/components/data/form', name: 'FormModule'}];\n\nexport const WIDGET_IMPORTS: Map<string, ImportDef[]> = new Map([\n ['wm-accordion', ACCORDION_MODULE],\n ['wm-accordionpane', ACCORDION_MODULE],\n ['wm-anchor', BASIC_MODULE],\n ['wm-alertdialog', ALERT_DIALOG_MODULE],\n ['wm-audio', BASIC_MODULE],\n ['wm-barcodescanner', BARCODE_SCANNER_MODULE],\n ['wm-button', INPUT_MODULE],\n ['wm-buttongroup', INPUT_MODULE],\n ['wm-breadcrumb', BREAD_CRUMB_MODULE],\n ['wm-camera', CAMERA_MODULE],\n ['wm-calendar', CALENDAR_MODULE],\n ['wm-card', CARD_MODULE],\n ['wm-card-actions', CARD_MODULE],\n ['wm-card-content', CARD_MODULE],\n ['wm-card-footer', CARD_MODULE],\n ['wm-carousel', CAROUSEL_MODULE],\n ['wm-carousel-content', CAROUSEL_MODULE],\n ['wm-carousel-template', CAROUSEL_MODULE],\n ['wm-chart', CHART_MODULE],\n ['wm-checkbox', INPUT_MODULE],\n ['wm-checkboxset', INPUT_MODULE],\n ['wm-chips', CHIPS_MODULE],\n ['wm-colorpicker', COLOR_PICKER_MODULE],\n ['wm-confirmdialog', CONFIRM_DIALOG_MODULE],\n ['wm-content', CONTENT_MODULE],\n ['wm-currency', CURRENCY_MODULE],\n ['wm-date', EPOCH_MODULE],\n ['wm-datetime', EPOCH_MODULE],\n ['wm-dialog', DESIGN_DIALOG_MODULE],\n ['wm-footer', FOOTER_MODULE],\n ['wm-form', FORM_MODULE],\n ['wm-form-action', FORM_MODULE],\n ['wm-form-field', FORM_MODULE],\n ['wm-filter-field', FORM_MODULE],\n ['wm-fileupload', FILE_UPLOAD_MODULE],\n ['wm-gridrow', LAYOUT_GRID_MODULE],\n ['wm-gridcolumn', LAYOUT_GRID_MODULE],\n ['wm-header', HEADER_MODULE],\n ['wm-html', BASIC_MODULE],\n ['wm-icon', BASIC_MODULE],\n ['wm-iframe', BASIC_MODULE],\n ['wm-iframedialog', IFRAME_DIALOG_MODULE],\n ['wm-label', BASIC_MODULE],\n ['wm-layoutgrid', LAYOUT_GRID_MODULE],\n ['wm-left-panel', LEFT_PANEL_MODULE],\n ['wm-linearlayout', LINEAR_LAYOUT_MODULE],\n ['wm-linearlayoutitem', LINEAR_LAYOUT_MODULE],\n ['wm-list', LIST_MODULE],\n ['wm-livetable', LIVE_TABLE_MODULE],\n ['wm-login', LOGIN_MODULE],\n ['wm-logindialog', LOGIN_DIALOG_MODULE],\n ['wm-marquee', MARQUEE_MODULE],\n ['wm-menu', MENU_MODULE],\n ['wm-media-list', MEDIA_LIST_MODULE],\n ['wm-mobile-navbar', MOBILE_NAV_BAR_MODULE],\n ['wm-mobile-tabbar', MOBILE_TAB_BAR_MODULE],\n ['wm-nav', MENU_MODULE],\n ['wm-navbar', NAVBAR_MODULE],\n ['wm-nav-item', MENU_MODULE],\n ['wm-network-info-toaster', BASIC_MODULE],\n ['wm-number', INPUT_MODULE],\n ['wm-page', PAGE_MODULE],\n ['wm-layout', PAGE_MODULE],\n ['wm-page-content', PAGE_MODULE],\n ['wm-pagedialog', PARTIAL_DIALOG_MODULE],\n ['wm-pagination', PAGINATION_MODULE],\n ['wm-panel', PANEL_MODULE],\n ['wm-panel-footer', PANEL_MODULE],\n ['wm-picture', BASIC_MODULE],\n ['wm-popover', POPOVER_MODULE],\n ['wm-progress-bar', PROGRESS_MODULE],\n ['wm-prefab', PREFAB_MODULE],\n ['wm-prefab-container', PREFAB_MODULE],\n ['wm-progress-circle', PROGRESS_MODULE],\n ['wm-radioset', INPUT_MODULE],\n ['wm-rating', RATING_MODULE],\n ['wm-richtexteditor', RICH_TEXT_EDITOR_MODULE],\n ['wm-right-panel', RIGHT_PANEL_MODULE],\n ['wm-select', INPUT_MODULE],\n ['wm-search', SEARCH_MODULE],\n ['wm-segmented-content', SEGMENTED_CONTROL_MODULE],\n ['wm-segmented-control', SEGMENTED_CONTROL_MODULE],\n ['wm-slider', SLIDER_MODULE],\n ['wm-spinner', BASIC_MODULE],\n ['wm-switch', INPUT_MODULE],\n ['wm-table', TABLE_MODULE],\n ['wm-tabs', TABS_MODULE],\n ['wm-tabpane', TABS_MODULE],\n ['wm-text', INPUT_MODULE],\n ['wm-textarea', INPUT_MODULE],\n ['wm-time', EPOCH_MODULE],\n ['wm-tile', TILE_MODULE],\n ['wm-top-nav', TOP_NAV_MODULE],\n ['wm-tree', TREE_MODULE],\n ['wm-video', BASIC_MODULE],\n ['wm-wizard', WIZARD_MODULE],\n ['wm-wizardstep', WIZARD_MODULE],\n]);\n\n\n","import {\n HtmlParser,\n Element,\n Text,\n Comment,\n getHtmlTagDefinition, ParseSourceSpan\n} from '@angular/compiler';\nimport { WIDGET_IMPORTS } from './imports';\nimport { isMobileApp } from '@wm/core';\n\ndeclare const _;\n\nconst CSS_REGEX = {\n COMMENTS_FORMAT : /\\/\\*((?!\\*\\/).|\\n)+\\*\\//g,\n SELECTOR_FORMAT : /[^\\{\\}]*\\{/gi,\n SELECTOR_EXCLUDE_FORMAT : /(@keyframes|@media|@font-face|@comment[0-9]+|from|to|[0-9]+%)\\b/i\n};\n\nconst isString = v => typeof v === 'string';\n\ninterface IProviderInfo {\n nodeName: string;\n provide: Map<string, any>;\n}\n\nconst OVERRIDES = {\n 'accessroles': '*accessroles',\n 'ng-if': '*ngIf',\n 'showindevice': '*showInDevice',\n 'ng-class': '[ngClass]',\n 'data-ng-class': '[ngClass]',\n 'data-ng-src': 'src',\n 'ng-src': 'src',\n 'data-ng-href': 'href',\n 'ng-href': 'href',\n 'ng-disabled': 'disabled',\n 'data-ng-disabled': 'disabled',\n 'ng-model': '[ngModelOptions]=\"{standalone: true}\" [(ngModel)]'\n};\n\nconst selfClosingTags = new Set(['img']);\n\nexport const getBoundToExpr = (value: string) => {\n if (!value) {\n return null;\n }\n\n value = value.trim();\n if (value.startsWith('bind:')) {\n return value.substr(5);\n }\n};\n\nconst quoteAttr = v => {\n return ('' + v) /* Forces the conversion to string. */\n .replace(/&/g, '&') /* This MUST be the 1st replacement. */\n .replace(/'/g, ''') /* The 4 other predefined entities, required. */\n .replace(/\"/g, '"')\n .replace(/</g, '<')\n .replace(/>/g, '>');\n};\n\nconst registry = new Map<string, any>();\nconst htmlParser = new HtmlParser();\nconst ignoreComments = true;\n\nconst empty = () => '';\n\nconst isEvent = name => name[0] === 'o' && name[1] === 'n' && name[2] === '-';\n\nconst getEventName = key => key.substr(3);\n\nconst processBinding = (attr, expr) => [`${attr.name}.bind`, quoteAttr(expr)];\n\nconst processEvent = attr => {\n const evtName = getEventName(attr.name);\n return [`${evtName}.event`, attr.value];\n};\n\n/**\n * Wraps the string with single quotes.\n * @param val\n */\nconst wrapWithApos = (val: string) => {\n return `'${val.replace(/&apos/g, '"').replace(/"/g, '\\\\"')}'`;\n};\nconst ELE_PREFIX = '.wm-app';\n\nconst processAttr = attr => {\n let overridden = OVERRIDES[attr.name];\n const value = attr.valueSpan ? attr.value : undefined;\n\n // do not append showInDevice attribute for mobile application.\n if (attr.name === 'showindevice' && isMobileApp()) {\n overridden = '';\n }\n if (overridden) {\n /**\n * wrap value for accessroles with ''.\n * since accessroles is a structural directive, it will be transpiled to [accessroles]\n * hence, the value against it should be a computed string\n */\n if (attr.name === 'accessroles' || attr.name === 'showindevice') {\n return [overridden, `'${value}'`];\n }\n return [overridden, quoteAttr(value)];\n }\n\n if (isEvent(attr.name)) {\n return processEvent(attr);\n }\n\n const boundExpr = getBoundToExpr(attr.value);\n if (boundExpr) {\n return processBinding(attr, boundExpr);\n }\n\n return [attr.name, quoteAttr(value)];\n};\n\nexport const getDataSource = (dataSetExpr: string): string => {\n const parts = dataSetExpr.split('.');\n if (parts[0] === 'Variables' || parts[0] === 'Widgets') {\n return `${parts[0]}.${parts[1]}`;\n }\n};\n\nconst widgetChildAttrs = (() => {\n const childAttrs = new Map();\n const validChildAttrs = [\n `required`\n ];\n return {\n set: attrs => {\n attrs.forEach((val, key) => {\n validChildAttrs.includes(key) && (childAttrs.set(key, val));\n });\n },\n get: attrs => {\n const fltrAttrs = new Map();\n childAttrs.forEach((val, key) => {\n !attrs.get(key) && fltrAttrs.set(key, val);\n });\n return fltrAttrs;\n },\n clear: () => {\n childAttrs.clear();\n }\n };\n})();\nexport const setChildAttrs = attrs => {\n widgetChildAttrs.set(attrs);\n return '';\n};\nexport const getChildAttrs = attrs => {\n return getAttrMarkup(widgetChildAttrs.get(attrs));\n};\nexport const clearChildAttrs = () => {\n widgetChildAttrs.clear();\n return '';\n};\nexport const getFormMarkupAttr = attrs => {\n if (attrs.get('datavalue.bind')) {\n const onDataValueBinding = getDataSource(attrs.get('datavalue.bind'));\n attrs.set('datavaluesource.bind', onDataValueBinding);\n }\n return getAttrMarkup(attrs);\n};\n\nconst getAttrMap = attrs => {\n const attrMap = new Map<string, string>();\n attrs.forEach(attr => {\n let [attrName, attrValue] = processAttr(attr);\n attrMap.set(attrName, attrValue);\n });\n\n if (attrMap.get('dataset.bind')) {\n const dataSource = getDataSource(attrMap.get('dataset.bind'));\n if (dataSource) {\n attrMap.set('datasource.bind', dataSource);\n }\n }\n\n return attrMap;\n};\n\nexport const getAttrMarkup = (attrs: Map<string, string>) => {\n let attrMarkup = '';\n attrs.forEach((v, k) => {\n attrMarkup += ` ${k}`;\n if (v) {\n v = v.trim();\n if (k === '[ngClass]' && v.startsWith('{')) {\n v = v.replace(/\"/g, `'`);\n }\n if (k === 'show.bind' && attrs.get('deferload') === 'true') {\n v = v + `\" *lazyLoad=\"${wrapWithApos(v)}`;\n }\n attrMarkup += `=\"${v}\"`;\n\n if (k === 'showindevice' && v !== 'all') {\n const condition = [];\n if (v.includes('xs')) {\n condition.push('Viewport.isMobileType');\n }\n if (v.includes('sm')) {\n condition.push('(Viewport.isTabletType && Viewport.orientation.isPortrait)');\n }\n if (v.includes('md')) {\n condition.push('(Viewport.isTabletType && Viewport.orientation.isLandscape)');\n }\n attrMarkup += ` *ngIf=\"${condition.join(' || ')}\"`;\n }\n }\n });\n\n return attrMarkup;\n};\n\nconst getRequiredProviders = (nodeDef: IBuildTaskDef, providers: Array<IProviderInfo>, nodeAttrs) => {\n if (!nodeDef.requires) {\n return [];\n }\n\n let requires = nodeDef.requires as any;\n\n if (isString(requires)) {\n requires = [requires];\n }\n\n if (!Array.isArray(requires)) {\n return [];\n }\n\n return requires.map(require => {\n // for dynamic table assigning parent provide map to the child,\n for (let i = nodeAttrs.length - 1; i >= 0; i-- ) {\n if (nodeAttrs[i].name === 'tableName') {\n return nodeDef[nodeAttrs[i].value];\n }\n }\n\n for (let i = providers.length - 1; i >= 0; i-- ) {\n if (providers[i].nodeName === require) {\n return providers[i].provide;\n }\n }\n });\n};\n\nconst DIMENSION_PROPS = ['padding', 'borderwidth', 'margin'];\n\nconst SEPARATOR = ' ', UNSET = 'unset';\n\nconst setDimensionProp = (cssObj, key, nv) => {\n let cssKey = key, val, top, right, bottom, left, suffix = '';\n\n function setVal(prop, value) {\n // if the value is UNSET, reset the existing value\n if (value === UNSET) {\n value = '';\n }\n cssObj[cssKey + prop + suffix] = value;\n }\n\n if (key === 'borderwidth') {\n suffix = 'width';\n cssKey = 'border';\n }\n\n val = nv;\n\n if (val.indexOf(UNSET) !== -1) {\n val = val.split(SEPARATOR);\n\n top = val[0];\n right = val[1] || val[0];\n bottom = val[2] || val[0];\n left = val[3] || val[1] || val[0];\n\n setVal('top', top);\n setVal('right', right);\n setVal('bottom', bottom);\n setVal('left', left);\n } else {\n if (key === 'borderwidth') {\n cssKey = 'borderwidth';\n }\n cssObj[cssKey] = nv;\n }\n};\n\nconst processDimensionAttributes = attrMap => {\n const attrKeys = Array.from(attrMap.keys());\n attrKeys.forEach((attrKey: any) => {\n if (DIMENSION_PROPS.includes(attrKey)) {\n const cssObj = {},\n attrValue = attrMap.get(attrKey);\n attrMap.delete(attrKey);\n setDimensionProp(cssObj, attrKey, attrValue);\n Object.keys(cssObj).forEach(key => {\n if (cssObj[key]) {\n attrMap.set(key, cssObj[key]);\n }\n });\n }\n });\n};\n\n// replace <:svg:svg> -> <svg>, <:svg:*> -> <svg:*>\nconst getNodeName = name => name.replace(':svg:svg', 'svg').replace(':svg:', 'svg:');\n\nexport const processNode = (node, importCollector: (i: ImportDef[]) => void, providers?: Array<IProviderInfo>) => {\n const nodeDef = registry.get(node.name);\n\n let pre, post, template;\n\n if (nodeDef) {\n pre = nodeDef.pre || empty;\n post = nodeDef.post || empty;\n template = nodeDef.template || empty;\n }\n\n let markup = '';\n let attrMap;\n let requiredProviders;\n let shared;\n\n if (!providers) {\n providers = [];\n }\n\n const isElementType = node instanceof Element;\n\n if (isElementType) {\n let provideInfo: IProviderInfo;\n\n if (nodeDef) {\n requiredProviders = getRequiredProviders(nodeDef, providers, node.attrs);\n shared = new Map();\n template(node, shared, ...requiredProviders);\n }\n\n attrMap = getAttrMap(node.attrs);\n processDimensionAttributes(attrMap);\n\n const nodeName = getNodeName(node.name);\n\n if (nodeDef) {\n markup = (<any>pre)(attrMap, shared, ...requiredProviders);\n if (nodeDef.provide) {\n provideInfo = {\n nodeName: node.name,\n provide: _.isFunction(nodeDef.provide) ? nodeDef.provide(attrMap, shared, ...requiredProviders) : nodeDef.provide\n };\n // For table node, assigning parent provide map to the child, as child requires some parent provide attrs.\n if (node.name === 'wm-table') {\n const tableColNodeDefn = registry.get('wm-table-column');\n tableColNodeDefn[_.find(node.attrs, (el) => el.name === 'name').value + provideInfo.provide.get('table_reference')] = provideInfo.provide;\n registry.set('wm-table-column', tableColNodeDefn);\n }\n providers.push(provideInfo);\n }\n } else {\n markup = `<${nodeName} ${getAttrMarkup(attrMap)}>`;\n }\n\n node.children.forEach((child: Node | any) => {\n if(child.attrs) {\n let showInDeviceAttr, accessRolesAttr, deferLoadAttr, showAttr;\n child.attrs.forEach(function(attr){\n if (attr.name === 'showindevice') {\n showInDeviceAttr = attr;\n } else if (attr.name === 'accessroles') {\n accessRolesAttr = attr;\n } else if (attr.name === 'deferload') {\n deferLoadAttr = attr;\n } else if (attr.name === 'show') {\n showAttr = attr;\n }\n });\n if((showInDeviceAttr && accessRolesAttr) || (showInDeviceAttr && deferLoadAttr) || (accessRolesAttr && deferLoadAttr)) {\n /* If more than one out of showindevice, accessroles and deferload exist for a widget, add ng-container wrappers to fix angular limitation\n of applying only one structural directive to an element.\n * */\n const noSpan = ({} as ParseSourceSpan);\n const showInDeviceContainer:any = showInDeviceAttr ? new Element('ng-container', [], [], noSpan, noSpan, noSpan) : '';\n const accessRolesContainer:any = accessRolesAttr ? new Element('ng-container', [], [], noSpan, noSpan, noSpan) : '';\n const deferLoadContainer:any = deferLoadAttr ? new Element('ng-container', [], [], noSpan, noSpan, noSpan) : '';\n if (showInDeviceContainer) {\n showInDeviceContainer.attrs.push(showInDeviceAttr);\n }\n if (accessRolesContainer) {\n accessRolesContainer.attrs.push(accessRolesAttr);\n }\n if (deferLoadContainer) {\n deferLoadContainer.attrs.push(deferLoadAttr);\n if (showAttr) {\n deferLoadContainer.attrs.push(showAttr);\n }\n }\n _.remove(child.attrs, function(attr) {\n return attr.name === 'showindevice' || attr.name === 'accessroles' || attr.name === 'deferload'\n });\n let childContainer, parentContainer;\n if (showInDeviceAttr && accessRolesAttr) {\n childContainer = showInDeviceContainer;\n parentContainer = accessRolesContainer;\n } else if (showInDeviceAttr && deferLoadAttr) {\n childContainer = showInDeviceContainer;\n parentContainer = deferLoadContainer;\n } else if (accessRolesAttr && deferLoadAttr) {\n childContainer = deferLoadContainer;\n parentContainer = accessRolesContainer;\n }\n // wrap current node elements inside first ng-container(childContainer) and that container's elements inside another ng-container(parentContainer)\n childContainer.children = [child];\n parentContainer.children = [childContainer];\n // if all three directives exist, create another wrapper for third ng-container(grandParentContainer)\n if (showInDeviceAttr && accessRolesAttr && deferLoadAttr) {\n const grandParentContainer = deferLoadContainer;\n grandParentContainer.children = [parentContainer];\n child = grandParentContainer;\n } else {\n child = parentContainer;\n }\n\n }\n }\n return markup += processNode(child, importCollector, providers);\n });\n\n if (nodeDef) {\n if (provideInfo) {\n providers.splice(providers.indexOf(provideInfo), 1);\n }\n markup += (<any>post)(attrMap, shared, ...requiredProviders);\n } else {\n if (node.endSourceSpan && !getHtmlTagDefinition(node.name).isVoid) {\n markup += `</${nodeName}>`;\n }\n }\n } else if (node instanceof Text) {\n markup += node.value;\n } else if (node instanceof Comment) {\n if (!ignoreComments) {\n markup += node.value;\n }\n }\n importCollector(WIDGET_IMPORTS.get(node.name));\n if (nodeDef && nodeDef.imports) {\n let imports = [];\n if (typeof nodeDef.imports === 'function') {\n imports = nodeDef.imports(attrMap);\n } else {\n imports = nodeDef.imports;\n }\n imports.forEach( i => {\n importCollector(WIDGET_IMPORTS.get(i));\n });\n }\n return markup;\n};\n\nexport const transpile = (markup: string = '') => {\n if (!markup.length) {\n return;\n }\n let requiredWMComponents = [];\n const nodes = htmlParser.parse(markup, '');\n\n if (nodes.errors.length) {\n return;\n }\n\n let output = '';\n for (const node of nodes.rootNodes) {\n output += processNode(node, (imports: ImportDef[]) => {\n if (imports) {\n requiredWMComponents = requiredWMComponents.concat(imports);\n }\n });\n }\n requiredWMComponents = _.uniqWith(requiredWMComponents, _.isEqual);\n requiredWMComponents = _.sortBy(requiredWMComponents, ['from', 'name']);\n return {\n markup: output,\n requiredWMComponents: requiredWMComponents\n };\n};\n\nexport const register = (nodeName: string, nodeDefFn: () => IBuildTaskDef) => registry.set(nodeName, nodeDefFn());\n\nexport interface ImportDef {\n from: string;\n name: string;\n as?: string;\n forRoot?: boolean;\n platformType?: string;\n}\n\nexport interface IBuildTaskDef {\n requires?: string | Array<string>;\n template?: (node: Element | Text | Comment, shared?: Map<any, any>, ...requires: Array<Map<any, any>>) => void;\n pre: (attrs: Map<string, string>, shared ?: Map<any, any>, ...requires: Array<Map<any, any>>) => string;\n provide?: (attrs: Map<string, string>, shared ?: Map<any, any>, ...requires: Array<Map<any, any>>) => Map<any, any>;\n post?: (attrs: Map<string, string>, shared ?: Map<any, any>, ...requires: Array<Map<any, any>>) => string;\n imports?: string[] | ((attrs: Map<string, string>) => string[]);\n}\n\nexport const scopeComponentStyles = (componentName, componentType, styles = '') => {\n componentName = componentName.toLowerCase();\n const comments = {};\n let commentCount = 0;\n if (styles.startsWith('/*DISABLE_SCOPING*/')) {\n return styles;\n }\n styles = styles.replace(CSS_REGEX.COMMENTS_FORMAT, comment => {\n const key = `@comment${commentCount++}{`;\n comments[key] = comment;\n return key;\n });\n styles = styles.replace(CSS_REGEX.SELECTOR_FORMAT, (selector) => {\n if (!CSS_REGEX.SELECTOR_EXCLUDE_FORMAT.test(selector)) {\n const firstNonSpaceCharIndex = selector.match(/\\S/).index;\n let prefixSpaceCharSeq = '';\n if (firstNonSpaceCharIndex > 0) {\n prefixSpaceCharSeq = selector.substring(0, firstNonSpaceCharIndex);\n selector = selector.substring(firstNonSpaceCharIndex);\n }\n if (!selector.startsWith('/*') && selector.trim().length > 0) {\n // splits the selector by commas and we iterate over the array and add page level scoping and join it.\n selector = selector.split(',').map(s => {\n let prefix = ELE_PREFIX;\n s = s.trim();\n const spaceIndex = s.indexOf(' ');\n if (s.startsWith(ELE_PREFIX)) {\n if (spaceIndex > 0) {\n prefix = s.substring(0, spaceIndex);\n s = s.substring(spaceIndex + 1);\n } else {\n return s;\n }\n }\n\n if (componentType === 0 || componentType === 'PAGE') {\n s = `${prefix} app-page-${componentName} ${s}`;\n } else if (componentType === 1 || componentType === 'PREFAB') {\n s = `${prefix} app-prefab-${componentName} ${s}`;\n } else if (componentType === 2 || componentType === 'PARTIAL') {\n s = `${prefix} app-partial-${componentName} ${s}`;\n }\n return s;\n }).join(',');\n }\n selector = prefixSpaceCharSeq + selector;\n }\n return selector;\n });\n for (const key in comments) {\n styles = styles.replace(key, comments[key]);\n }\n return styles;\n};\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../projects/transpiler/src/imports.ts","../../../projects/transpiler/src/build.ts","../../../projects/transpiler/src/index.ts"],"sourcesContent":["import { ImportDef } from './build';\n\nconst NG_FORM_MODULE: ImportDef[] = [{from: '@angular/forms', name: 'FormsModule', as: 'ngFormsModule'}];\nconst NG_REACTIVE_FORM_MODULE: ImportDef[] = [{from: '@angular/forms', name: 'ReactiveFormsModule', as: 'ngReactiveFormsModule'}];\nconst NGX_BS_DATE_PICKER: ImportDef[] = [{from: 'ngx-bootstrap/datepicker', name: 'BsDatepickerModule', as: 'ngx_BsDatepickerModule'}];\nconst NGX_CAROUSEL_MODULE: ImportDef[] = [{from: 'ngx-bootstrap/carousel', name: 'CarouselModule', as: 'ngxCarouselModule', forRoot: true}];\nconst NGX_COLOR_PICKER_MODULE: ImportDef[] = [{from: 'ngx-color-picker', name: 'ColorPickerModule', as: 'ngx_ColorPickerModule'}];\nconst NGX_DROP_DOWN_MODULE: ImportDef[] = [{from: 'ngx-bootstrap/dropdown', name: 'BsDropdownModule', as: 'ngxBsDropdownModule', forRoot: true}];\nconst NGX_MODAL_MODULE: ImportDef[] = [{from: 'ngx-bootstrap/modal', name: 'ModalModule', as: 'ngx_ModalModule'}];\nconst NGX_PAGINATION_MODULE: ImportDef[] = [{from: 'ngx-bootstrap/pagination', name: 'PaginationModule', as: 'ngxPaginationModule', forRoot: true}];\nconst NGX_POPOVER_MODULE: ImportDef[] = [{from: 'ngx-bootstrap/popover', name: 'PopoverModule', as: 'ngxPopoverModule', forRoot: true}];\nconst NGX_TIME_PICKER: ImportDef[] = [{from: 'ngx-bootstrap/timepicker', name: 'TimepickerModule', as: 'ngx_TimepickerModule', forRoot: true}];\nconst NGX_TOOL_TIP_MODULE: ImportDef[] = [{from: 'ngx-bootstrap/tooltip', name: 'TooltipModule', as: 'ngxTooltipModule', forRoot: true}];\nconst NGX_TYPE_HEAD_MODULE: ImportDef[] = [{from: 'ngx-bootstrap/typeahead', name: 'TypeaheadModule', as: 'ngxTypeaheadModule', forRoot: true}];\nconst PROGRESS_MODULE: ImportDef[] = [{from: '@wm/components/basic/progress', name: 'ProgressModule'}];\n\n\nconst MOBILE_BASIC_MODULE: ImportDef[] = [...PROGRESS_MODULE, {from: '@wm/mobile/components/basic', name: 'BasicModule', as: 'WM_MobileBasicModule', platformType: 'MOBILE'}];\nconst MOBILE_FILE_UPLOAD_MODULE: ImportDef[] = [{from: '@wm/mobile/components/input/file-upload', name: 'FileUploadModule', as: 'WM_MobileFileUploadModule', platformType: 'MOBILE'}];\nconst PAGE_MODULE: ImportDef[] = [{from: '@wm/components/page', name: 'PageModule'},\n {from: '@wm/mobile/components/page', name: 'PageModule', as: 'WM_MobilePageModule', platformType: 'MOBILE'}];\nconst BASIC_MODULE: ImportDef[] = [{from: '@wm/components/basic', name: 'BasicModule'}, ...MOBILE_BASIC_MODULE];\nconst INPUT_MODULE: ImportDef[] = [...NG_FORM_MODULE, {from: '@wm/components/input', name: 'InputModule'}];\nconst DIALOG_MODULE: ImportDef[] = [...NGX_MODAL_MODULE, ...INPUT_MODULE, {from: '@wm/components/dialogs', name: 'DialogModule'}];\nconst PAGINATION_MODULE: ImportDef[] = [...NG_FORM_MODULE, ...NGX_PAGINATION_MODULE, {from: '@wm/components/data/pagination', name: 'PaginationModule'}];\nconst SEARCH_MODULE: ImportDef[] = [...NG_FORM_MODULE, ...NGX_TYPE_HEAD_MODULE, {from: '@wm/components/basic/search', name: 'SearchModule'}];\n\nconst ACCORDION_MODULE: ImportDef[] = [{from: '@wm/components/containers/accordion', name: 'AccordionModule'}];\nconst LINEAR_LAYOUT_MODULE: ImportDef[] = [{from: '@wm/components/containers/linear-layout', name: 'LinearLayoutModule'}];\nconst ALERT_DIALOG_MODULE: ImportDef[] = [...DIALOG_MODULE, {from: '@wm/components/dialogs/alert-dialog', name: 'AlertDialogModule'}];\nconst BARCODE_SCANNER_MODULE: ImportDef[] = [{from: '@wm/mobile/components/device/barcode-scanner', name: 'BarcodeScannerModule'}];\nconst MENU_MODULE: ImportDef[] = [...BASIC_MODULE, ...NGX_DROP_DOWN_MODULE, ...INPUT_MODULE, {from: '@wm/components/navigation/menu', name: 'MenuModule'}];\nconst BREAD_CRUMB_MODULE: ImportDef[] = [...MENU_MODULE, {from: '@wm/components/navigation/breadcrumb', name: 'BreadcrumbModule'}];\nconst CAMERA_MODULE: ImportDef[] = [{from: '@wm/mobile/components/device/camera', name: 'CameraModule'}];\nconst CALENDAR_MODULE: ImportDef[] = [...NG_FORM_MODULE, ...NGX_BS_DATE_PICKER, {from: '@wm/components/input/calendar', name: 'CalendarModule'}];\nconst CAROUSEL_MODULE: ImportDef[] = [...NGX_CAROUSEL_MODULE, {from: '@wm/components/advanced/carousel', name: 'CarouselModule'}];\nconst CHART_MODULE: ImportDef[] = [...BASIC_MODULE, {from: '@wm/components/chart', name: 'ChartModule'}];\nconst CHIPS_MODULE: ImportDef[] = [...SEARCH_MODULE, {from: '@wm/components/input/chips', name: 'ChipsModule'}];\nconst COLOR_PICKER_MODULE: ImportDef[] = [...NG_FORM_MODULE, ...NGX_COLOR_PICKER_MODULE, {from: '@wm/components/input/color-picker', name: 'ColorPickerModule'}];\nconst CONFIRM_DIALOG_MODULE: ImportDef[] = [...DIALOG_MODULE, {from: '@wm/components/dialogs/confirm-dialog', name: 'ConfirmDialogModule'}];\nconst CONTENT_MODULE: ImportDef[] = [{from: '@wm/components/page', name: 'PageModule'}];\nconst CURRENCY_MODULE: ImportDef[] = [...INPUT_MODULE, {from: '@wm/components/input/currency', name: 'CurrencyModule'}];\nconst DESIGN_DIALOG_MODULE: ImportDef[] = [...DIALOG_MODULE, {from: '@wm/components/dialogs/design-dialog', name: 'DesignDialogModule'}];\nconst EPOCH_MODULE: ImportDef[] = [...NG_FORM_MODULE, ...NGX_BS_DATE_PICKER, ...NGX_TIME_PICKER, ...NGX_DROP_DOWN_MODULE, {from: '@wm/components/input/epoch', name: 'EpochModule'}];\nconst FILE_UPLOAD_MODULE: ImportDef[] = [...MOBILE_FILE_UPLOAD_MODULE, {from: '@wm/components/input/file-upload', name: 'FileUploadModule'}];\nconst FOOTER_MODULE: ImportDef[] = [{from: '@wm/components/page/footer', name: 'FooterModule'}];\nconst HEADER_MODULE: ImportDef[] = [{from: '@wm/components/page/header', name: 'HeaderModule'}];\nconst IFRAME_DIALOG_MODULE: ImportDef[] = [...BASIC_MODULE, ...DIALOG_MODULE, {from: '@wm/components/dialogs/iframe-dialog', name: 'IframeDialogModule'}];\nconst LAYOUT_GRID_MODULE: ImportDef[] = [{from: '@wm/components/containers/layout-grid', name: 'LayoutGridModule'}];\nconst LOGIN_DIALOG_MODULE: ImportDef[] = [...DIALOG_MODULE, {from: '@wm/components/dialogs/login-dialog', name: 'LoginDialogModule'}];\nconst CARD_MODULE: ImportDef[] = [...NGX_DROP_DOWN_MODULE, ...MENU_MODULE, ...BASIC_MODULE, {from: '@wm/components/data/card', name: 'CardModule'}];\nconst MARQUEE_MODULE: ImportDef[] = [{from: '@wm/components/advanced/marquee', name: 'MarqueeModule'}];\nconst LEFT_PANEL_MODULE: ImportDef[] = [{from: '@wm/components/page/left-panel', name: 'LeftPanelModule'},\n {from: '@wm/mobile/components/page/left-panel', name: 'LeftPanelModule', as: 'WM_MobileLeftPanelModule', platformType: 'MOBILE'}];\nconst LIST_MODULE: ImportDef[] = [...PAGINATION_MODULE, ...INPUT_MODULE, {from: '@wm/components/data/list', name: 'ListModule'}];\nconst LOGIN_MODULE: ImportDef[] = [{from: '@wm/components/advanced/login', name: 'LoginModule'}];\nconst MOBILE_NAV_BAR_MODULE: ImportDef[] = [...LEFT_PANEL_MODULE, ...SEARCH_MODULE, ...PAGE_MODULE, {from: '@wm/mobile/components/page/mobile-navbar', name: 'MobileNavbarModule'}];\nconst MEDIA_LIST_MODULE: ImportDef[] = [...BASIC_MODULE, ...PAGE_MODULE, ...MOBILE_NAV_BAR_MODULE, {from: '@wm/mobile/components/data/media-list', name: 'MediaListModule'}];\nconst MOBILE_TAB_BAR_MODULE: ImportDef[] = [{from: '@wm/mobile/components/page/tab-bar', name: 'TabBarModule'}];\nconst NAVBAR_MODULE: ImportDef[] = [{from: '@wm/components/navigation/navbar', name: 'NavbarModule'}];\nconst POPOVER_MODULE: ImportDef[] = [...NGX_POPOVER_MODULE, ...BASIC_MODULE, {from: '@wm/components/navigation/popover', name: 'PopoverModule'}];\nconst PANEL_MODULE: ImportDef[] = [...MENU_MODULE, {from: '@wm/components/containers/panel', name: 'PanelModule'}];\nconst PARTIAL_DIALOG_MODULE: ImportDef[] = [...DIALOG_MODULE, {from: '@wm/components/dialogs/partial-dialog', name: 'PartialDialogModule'}];\nconst PREFAB_MODULE: ImportDef[] = [{from: '@wm/components/prefab', name: 'PrefabModule'}];\nconst RATING_MODULE: ImportDef[] = [{from: '@wm/components/input/rating', name: 'RatingModule'}];\nconst RICH_TEXT_EDITOR_MODULE: ImportDef[] = [{from: '@wm/components/basic/rich-text-editor', name: 'RichTextEditorModule'}];\nconst RIGHT_PANEL_MODULE: ImportDef[] = [{from: '@wm/components/page/right-panel', name: 'RightPanelModule'}];\nconst SEGMENTED_CONTROL_MODULE: ImportDef[] = [{from: '@wm/mobile/components/containers/segmented-control', name: 'SegmentedControlModule'}];\nconst SLIDER_MODULE: ImportDef[] = [...NG_FORM_MODULE, {from: '@wm/components/input/slider', name: 'SliderModule'}];\nconst TABS_MODULE: ImportDef[] = [{from: '@wm/components/containers/tabs', name: 'TabsModule'}];\nconst TABLE_MODULE: ImportDef[] = [...NG_FORM_MODULE, ...NG_REACTIVE_FORM_MODULE, ...PAGINATION_MODULE, ...MENU_MODULE, ...BASIC_MODULE, ...INPUT_MODULE, ...NGX_TOOL_TIP_MODULE, ...LIST_MODULE, {from: '@wm/components/data/table', name: 'TableModule'}];\nconst TILE_MODULE: ImportDef[] = [{from: '@wm/components/containers/tile', name: 'TileModule'}];\nconst TOP_NAV_MODULE: ImportDef[] = [{from: '@wm/components/page/top-nav', name: 'TopNavModule'}];\nconst TREE_MODULE: ImportDef[] = [{from: '@wm/components/basic/tree', name: 'TreeModule'}];\nconst WIZARD_MODULE: ImportDef[] = [...NG_FORM_MODULE, {from: '@wm/components/containers/wizard', name: 'WizardModule'}];\n\n\nconst LIVE_TABLE_MODULE: ImportDef[] = [...TABLE_MODULE, {from: '@wm/components/data/live-table', name: 'LiveTableModule'}];\nconst FORM_MODULE: ImportDef[] = [...NG_FORM_MODULE, ...NG_REACTIVE_FORM_MODULE, ...BASIC_MODULE, ...INPUT_MODULE, ...PAGE_MODULE, ...DESIGN_DIALOG_MODULE, {from: '@wm/components/data/form', name: 'FormModule'}];\n\nexport const WIDGET_IMPORTS: Map<string, ImportDef[]> = new Map([\n ['wm-accordion', ACCORDION_MODULE],\n ['wm-accordionpane', ACCORDION_MODULE],\n ['wm-anchor', BASIC_MODULE],\n ['wm-alertdialog', ALERT_DIALOG_MODULE],\n ['wm-audio', BASIC_MODULE],\n ['wm-barcodescanner', BARCODE_SCANNER_MODULE],\n ['wm-button', INPUT_MODULE],\n ['wm-buttongroup', INPUT_MODULE],\n ['wm-breadcrumb', BREAD_CRUMB_MODULE],\n ['wm-camera', CAMERA_MODULE],\n ['wm-calendar', CALENDAR_MODULE],\n ['wm-card', CARD_MODULE],\n ['wm-card-actions', CARD_MODULE],\n ['wm-card-content', CARD_MODULE],\n ['wm-card-footer', CARD_MODULE],\n ['wm-carousel', CAROUSEL_MODULE],\n ['wm-carousel-content', CAROUSEL_MODULE],\n ['wm-carousel-template', CAROUSEL_MODULE],\n ['wm-chart', CHART_MODULE],\n ['wm-checkbox', INPUT_MODULE],\n ['wm-checkboxset', INPUT_MODULE],\n ['wm-chips', CHIPS_MODULE],\n ['wm-colorpicker', COLOR_PICKER_MODULE],\n ['wm-confirmdialog', CONFIRM_DIALOG_MODULE],\n ['wm-content', CONTENT_MODULE],\n ['wm-currency', CURRENCY_MODULE],\n ['wm-date', EPOCH_MODULE],\n ['wm-datetime', EPOCH_MODULE],\n ['wm-dialog', DESIGN_DIALOG_MODULE],\n ['wm-footer', FOOTER_MODULE],\n ['wm-form', FORM_MODULE],\n ['wm-form-action', FORM_MODULE],\n ['wm-form-field', FORM_MODULE],\n ['wm-filter-field', FORM_MODULE],\n ['wm-fileupload', FILE_UPLOAD_MODULE],\n ['wm-gridrow', LAYOUT_GRID_MODULE],\n ['wm-gridcolumn', LAYOUT_GRID_MODULE],\n ['wm-header', HEADER_MODULE],\n ['wm-html', BASIC_MODULE],\n ['wm-icon', BASIC_MODULE],\n ['wm-iframe', BASIC_MODULE],\n ['wm-iframedialog', IFRAME_DIALOG_MODULE],\n ['wm-label', BASIC_MODULE],\n ['wm-layoutgrid', LAYOUT_GRID_MODULE],\n ['wm-left-panel', LEFT_PANEL_MODULE],\n ['wm-linearlayout', LINEAR_LAYOUT_MODULE],\n ['wm-linearlayoutitem', LINEAR_LAYOUT_MODULE],\n ['wm-list', LIST_MODULE],\n ['wm-livetable', LIVE_TABLE_MODULE],\n ['wm-login', LOGIN_MODULE],\n ['wm-logindialog', LOGIN_DIALOG_MODULE],\n ['wm-marquee', MARQUEE_MODULE],\n ['wm-menu', MENU_MODULE],\n ['wm-media-list', MEDIA_LIST_MODULE],\n ['wm-mobile-navbar', MOBILE_NAV_BAR_MODULE],\n ['wm-mobile-tabbar', MOBILE_TAB_BAR_MODULE],\n ['wm-nav', MENU_MODULE],\n ['wm-navbar', NAVBAR_MODULE],\n ['wm-nav-item', MENU_MODULE],\n ['wm-network-info-toaster', BASIC_MODULE],\n ['wm-number', INPUT_MODULE],\n ['wm-page', PAGE_MODULE],\n ['wm-layout', PAGE_MODULE],\n ['wm-page-content', PAGE_MODULE],\n ['wm-pagedialog', PARTIAL_DIALOG_MODULE],\n ['wm-pagination', PAGINATION_MODULE],\n ['wm-panel', PANEL_MODULE],\n ['wm-panel-footer', PANEL_MODULE],\n ['wm-picture', BASIC_MODULE],\n ['wm-popover', POPOVER_MODULE],\n ['wm-progress-bar', PROGRESS_MODULE],\n ['wm-prefab', PREFAB_MODULE],\n ['wm-prefab-container', PREFAB_MODULE],\n ['wm-progress-circle', PROGRESS_MODULE],\n ['wm-radioset', INPUT_MODULE],\n ['wm-rating', RATING_MODULE],\n ['wm-richtexteditor', RICH_TEXT_EDITOR_MODULE],\n ['wm-right-panel', RIGHT_PANEL_MODULE],\n ['wm-select', INPUT_MODULE],\n ['wm-search', SEARCH_MODULE],\n ['wm-segmented-content', SEGMENTED_CONTROL_MODULE],\n ['wm-segmented-control', SEGMENTED_CONTROL_MODULE],\n ['wm-slider', SLIDER_MODULE],\n ['wm-spinner', BASIC_MODULE],\n ['wm-switch', INPUT_MODULE],\n ['wm-table', TABLE_MODULE],\n ['wm-tabs', TABS_MODULE],\n ['wm-tabpane', TABS_MODULE],\n ['wm-text', INPUT_MODULE],\n ['wm-textarea', INPUT_MODULE],\n ['wm-time', EPOCH_MODULE],\n ['wm-tile', TILE_MODULE],\n ['wm-top-nav', TOP_NAV_MODULE],\n ['wm-tree', TREE_MODULE],\n ['wm-video', BASIC_MODULE],\n ['wm-wizard', WIZARD_MODULE],\n ['wm-wizardstep', WIZARD_MODULE],\n]);\n\n\n","import {\n HtmlParser,\n Element,\n Text,\n Comment,\n getHtmlTagDefinition, ParseSourceSpan\n} from '@angular/compiler';\nimport { WIDGET_IMPORTS } from './imports';\nimport { isMobileApp } from '@wm/core';\n\ndeclare const _;\n\nconst CSS_REGEX = {\n COMMENTS_FORMAT : /\\/\\*((?!\\*\\/).|\\n)+\\*\\//g,\n SELECTOR_FORMAT : /[^\\{\\}]*\\{/gi,\n SELECTOR_EXCLUDE_FORMAT : /(@keyframes|@media|@font-face|@comment[0-9]+|from|to|[0-9]+%)\\b/i\n};\n\nconst isString = v => typeof v === 'string';\n\ninterface IProviderInfo {\n nodeName: string;\n provide: Map<string, any>;\n}\n\nconst OVERRIDES = {\n 'accessroles': '*accessroles',\n 'ng-if': '*ngIf',\n 'showindevice': '*wmShowInDevice',\n 'ng-class': '[ngClass]',\n 'data-ng-class': '[ngClass]',\n 'data-ng-src': 'src',\n 'ng-src': 'src',\n 'data-ng-href': 'href',\n 'ng-href': 'href',\n 'ng-disabled': 'disabled',\n 'data-ng-disabled': 'disabled',\n 'ng-model': '[ngModelOptions]=\"{standalone: true}\" [(ngModel)]'\n};\n\nconst selfClosingTags = new Set(['img']);\n\nexport const getBoundToExpr = (value: string) => {\n if (!value) {\n return null;\n }\n\n value = value.trim();\n if (value.startsWith('bind:')) {\n return value.substr(5);\n }\n};\n\nconst quoteAttr = v => {\n return ('' + v) /* Forces the conversion to string. */\n .replace(/&/g, '&') /* This MUST be the 1st replacement. */\n .replace(/'/g, ''') /* The 4 other predefined entities, required. */\n .replace(/\"/g, '"')\n .replace(/</g, '<')\n .replace(/>/g, '>');\n};\n\nconst registry = new Map<string, any>();\nconst htmlParser = new HtmlParser();\nconst ignoreComments = true;\n\nconst empty = () => '';\n\nconst isEvent = name => name[0] === 'o' && name[1] === 'n' && name[2] === '-';\n\nconst getEventName = key => key.substr(3);\n\nconst processBinding = (attr, expr) => [`${attr.name}.bind`, quoteAttr(expr)];\n\nconst processEvent = attr => {\n const evtName = getEventName(attr.name);\n return [`${evtName}.event`, attr.value];\n};\n\n/**\n * Wraps the string with single quotes.\n * @param val\n */\nconst wrapWithApos = (val: string) => {\n return `'${val.replace(/&apos/g, '"').replace(/"/g, '\\\\"')}'`;\n};\nconst ELE_PREFIX = '.wm-app';\n\nconst processAttr = attr => {\n let overridden = OVERRIDES[attr.name];\n const value = attr.valueSpan ? attr.value : undefined;\n\n // do not append showInDevice attribute for mobile application.\n if (attr.name === 'showindevice' && isMobileApp()) {\n overridden = '';\n }\n if (overridden) {\n /**\n * wrap value for accessroles with ''.\n * since accessroles is a structural directive, it will be transpiled to [accessroles]\n * hence, the value against it should be a computed string\n */\n if (attr.name === 'accessroles' || attr.name === 'showindevice') {\n return [overridden, `'${value}'`];\n }\n return [overridden, quoteAttr(value)];\n }\n\n if (isEvent(attr.name)) {\n return processEvent(attr);\n }\n\n const boundExpr = getBoundToExpr(attr.value);\n if (boundExpr) {\n return processBinding(attr, boundExpr);\n }\n\n return [attr.name, quoteAttr(value)];\n};\n\nexport const getDataSource = (dataSetExpr: string): string => {\n const parts = dataSetExpr.split('.');\n if (parts[0] === 'Variables' || parts[0] === 'Widgets') {\n return `${parts[0]}.${parts[1]}`;\n }\n};\n\nconst widgetChildAttrs = (() => {\n const childAttrs = new Map();\n const validChildAttrs = [\n `required`\n ];\n return {\n set: attrs => {\n attrs.forEach((val, key) => {\n validChildAttrs.includes(key) && (childAttrs.set(key, val));\n });\n },\n get: attrs => {\n const fltrAttrs = new Map();\n childAttrs.forEach((val, key) => {\n !attrs.get(key) && fltrAttrs.set(key, val);\n });\n return fltrAttrs;\n },\n clear: () => {\n childAttrs.clear();\n }\n };\n})();\nexport const setChildAttrs = attrs => {\n widgetChildAttrs.set(attrs);\n return '';\n};\nexport const getChildAttrs = attrs => {\n return getAttrMarkup(widgetChildAttrs.get(attrs));\n};\nexport const clearChildAttrs = () => {\n widgetChildAttrs.clear();\n return '';\n};\nexport const getFormMarkupAttr = attrs => {\n if (attrs.get('datavalue.bind')) {\n const onDataValueBinding = getDataSource(attrs.get('datavalue.bind'));\n attrs.set('datavaluesource.bind', onDataValueBinding);\n }\n return getAttrMarkup(attrs);\n};\n\nconst getAttrMap = attrs => {\n const attrMap = new Map<string, string>();\n attrs.forEach(attr => {\n let [attrName, attrValue] = processAttr(attr);\n attrMap.set(attrName, attrValue);\n });\n\n if (attrMap.get('dataset.bind')) {\n const dataSource = getDataSource(attrMap.get('dataset.bind'));\n if (dataSource) {\n attrMap.set('datasource.bind', dataSource);\n }\n }\n\n return attrMap;\n};\n\nexport const getAttrMarkup = (attrs: Map<string, string>) => {\n let attrMarkup = '';\n attrs.forEach((v, k) => {\n attrMarkup += ` ${k}`;\n if (v) {\n v = v.trim();\n if (k === '[ngClass]' && v.startsWith('{')) {\n v = v.replace(/\"/g, `'`);\n }\n if (k === 'show.bind' && attrs.get('deferload') === 'true') {\n v = v + `\" *lazyLoad=\"${wrapWithApos(v)}`;\n }\n attrMarkup += `=\"${v}\"`;\n\n if (k === 'showindevice' && v !== 'all') {\n const condition = [];\n if (v.includes('xs')) {\n condition.push('Viewport.isMobileType');\n }\n if (v.includes('sm')) {\n condition.push('(Viewport.isTabletType && Viewport.orientation.isPortrait)');\n }\n if (v.includes('md')) {\n condition.push('(Viewport.isTabletType && Viewport.orientation.isLandscape)');\n }\n attrMarkup += ` *ngIf=\"${condition.join(' || ')}\"`;\n }\n }\n });\n\n return attrMarkup;\n};\n\nconst getRequiredProviders = (nodeDef: IBuildTaskDef, providers: Array<IProviderInfo>, nodeAttrs) => {\n if (!nodeDef.requires) {\n return [];\n }\n\n let requires = nodeDef.requires as any;\n\n if (isString(requires)) {\n requires = [requires];\n }\n\n if (!Array.isArray(requires)) {\n return [];\n }\n\n return requires.map(require => {\n // for dynamic table assigning parent provide map to the child,\n for (let i = nodeAttrs.length - 1; i >= 0; i-- ) {\n if (nodeAttrs[i].name === 'tableName') {\n return nodeDef[nodeAttrs[i].value];\n }\n }\n\n for (let i = providers.length - 1; i >= 0; i-- ) {\n if (providers[i].nodeName === require) {\n return providers[i].provide;\n }\n }\n });\n};\n\nconst DIMENSION_PROPS = ['padding', 'borderwidth', 'margin'];\n\nconst SEPARATOR = ' ', UNSET = 'unset';\n\nconst setDimensionProp = (cssObj, key, nv) => {\n let cssKey = key, val, top, right, bottom, left, suffix = '';\n\n function setVal(prop, value) {\n // if the value is UNSET, reset the existing value\n if (value === UNSET) {\n value = '';\n }\n cssObj[cssKey + prop + suffix] = value;\n }\n\n if (key === 'borderwidth') {\n suffix = 'width';\n cssKey = 'border';\n }\n\n val = nv;\n\n if (val.indexOf(UNSET) !== -1) {\n val = val.split(SEPARATOR);\n\n top = val[0];\n right = val[1] || val[0];\n bottom = val[2] || val[0];\n left = val[3] || val[1] || val[0];\n\n setVal('top', top);\n setVal('right', right);\n setVal('bottom', bottom);\n setVal('left', left);\n } else {\n if (key === 'borderwidth') {\n cssKey = 'borderwidth';\n }\n cssObj[cssKey] = nv;\n }\n};\n\nconst processDimensionAttributes = attrMap => {\n const attrKeys = Array.from(attrMap.keys());\n attrKeys.forEach((attrKey: any) => {\n if (DIMENSION_PROPS.includes(attrKey)) {\n const cssObj = {},\n attrValue = attrMap.get(attrKey);\n attrMap.delete(attrKey);\n setDimensionProp(cssObj, attrKey, attrValue);\n Object.keys(cssObj).forEach(key => {\n if (cssObj[key]) {\n attrMap.set(key, cssObj[key]);\n }\n });\n }\n });\n};\n\n// replace <:svg:svg> -> <svg>, <:svg:*> -> <svg:*>\nconst getNodeName = name => name.replace(':svg:svg', 'svg').replace(':svg:', 'svg:');\n\nexport const processNode = (node, importCollector: (i: ImportDef[]) => void, providers?: Array<IProviderInfo>) => {\n const nodeDef = registry.get(node.name);\n\n let pre, post, template;\n\n if (nodeDef) {\n pre = nodeDef.pre || empty;\n post = nodeDef.post || empty;\n template = nodeDef.template || empty;\n }\n\n let markup = '';\n let attrMap;\n let requiredProviders;\n let shared;\n\n if (!providers) {\n providers = [];\n }\n\n const isElementType = node instanceof Element;\n\n if (isElementType) {\n let provideInfo: IProviderInfo;\n\n if (nodeDef) {\n requiredProviders = getRequiredProviders(nodeDef, providers, node.attrs);\n shared = new Map();\n template(node, shared, ...requiredProviders);\n }\n\n attrMap = getAttrMap(node.attrs);\n processDimensionAttributes(attrMap);\n\n const nodeName = getNodeName(node.name);\n\n if (nodeDef) {\n markup = (<any>pre)(attrMap, shared, ...requiredProviders);\n if (nodeDef.provide) {\n provideInfo = {\n nodeName: node.name,\n provide: _.isFunction(nodeDef.provide) ? nodeDef.provide(attrMap, shared, ...requiredProviders) : nodeDef.provide\n };\n // For table node, assigning parent provide map to the child, as child requires some parent provide attrs.\n if (node.name === 'wm-table') {\n const tableColNodeDefn = registry.get('wm-table-column');\n tableColNodeDefn[_.find(node.attrs, (el) => el.name === 'name').value + provideInfo.provide.get('table_reference')] = provideInfo.provide;\n registry.set('wm-table-column', tableColNodeDefn);\n }\n providers.push(provideInfo);\n }\n } else {\n markup = `<${nodeName} ${getAttrMarkup(attrMap)}>`;\n }\n\n node.children.forEach((child: Node | any) => {\n if(child.attrs) {\n let showInDeviceAttr, accessRolesAttr, deferLoadAttr, showAttr;\n child.attrs.forEach(function(attr){\n if (attr.name === 'showindevice') {\n showInDeviceAttr = attr;\n } else if (attr.name === 'accessroles') {\n accessRolesAttr = attr;\n } else if (attr.name === 'deferload') {\n deferLoadAttr = attr;\n } else if (attr.name === 'show') {\n showAttr = attr;\n }\n });\n if((showInDeviceAttr && accessRolesAttr) || (showInDeviceAttr && deferLoadAttr) || (accessRolesAttr && deferLoadAttr)) {\n /* If more than one out of showindevice, accessroles and deferload exist for a widget, add ng-container wrappers to fix angular limitation\n of applying only one structural directive to an element.\n * */\n const noSpan = ({} as ParseSourceSpan);\n const showInDeviceContainer:any = showInDeviceAttr ? new Element('ng-container', [], [], noSpan, noSpan, noSpan) : '';\n const accessRolesContainer:any = accessRolesAttr ? new Element('ng-container', [], [], noSpan, noSpan, noSpan) : '';\n const deferLoadContainer:any = deferLoadAttr ? new Element('ng-container', [], [], noSpan, noSpan, noSpan) : '';\n if (showInDeviceContainer) {\n showInDeviceContainer.attrs.push(showInDeviceAttr);\n }\n if (accessRolesContainer) {\n accessRolesContainer.attrs.push(accessRolesAttr);\n }\n if (deferLoadContainer) {\n deferLoadContainer.attrs.push(deferLoadAttr);\n if (showAttr) {\n deferLoadContainer.attrs.push(showAttr);\n }\n }\n _.remove(child.attrs, function(attr) {\n return attr.name === 'showindevice' || attr.name === 'accessroles' || attr.name === 'deferload'\n });\n let childContainer, parentContainer;\n if (showInDeviceAttr && accessRolesAttr) {\n childContainer = showInDeviceContainer;\n parentContainer = accessRolesContainer;\n } else if (showInDeviceAttr && deferLoadAttr) {\n childContainer = showInDeviceContainer;\n parentContainer = deferLoadContainer;\n } else if (accessRolesAttr && deferLoadAttr) {\n childContainer = deferLoadContainer;\n parentContainer = accessRolesContainer;\n }\n // wrap current node elements inside first ng-container(childContainer) and that container's elements inside another ng-container(parentContainer)\n childContainer.children = [child];\n parentContainer.children = [childContainer];\n // if all three directives exist, create another wrapper for third ng-container(grandParentContainer)\n if (showInDeviceAttr && accessRolesAttr && deferLoadAttr) {\n const grandParentContainer = deferLoadContainer;\n grandParentContainer.children = [parentContainer];\n child = grandParentContainer;\n } else {\n child = parentContainer;\n }\n\n }\n }\n return markup += processNode(child, importCollector, providers);\n });\n\n if (nodeDef) {\n if (provideInfo) {\n providers.splice(providers.indexOf(provideInfo), 1);\n }\n markup += (<any>post)(attrMap, shared, ...requiredProviders);\n } else {\n if (node.endSourceSpan && !getHtmlTagDefinition(node.name).isVoid) {\n markup += `</${nodeName}>`;\n }\n }\n } else if (node instanceof Text) {\n markup += node.value;\n } else if (node instanceof Comment) {\n if (!ignoreComments) {\n markup += node.value;\n }\n }\n importCollector(WIDGET_IMPORTS.get(node.name));\n if (nodeDef && nodeDef.imports) {\n let imports = [];\n if (typeof nodeDef.imports === 'function') {\n imports = nodeDef.imports(attrMap);\n } else {\n imports = nodeDef.imports;\n }\n imports.forEach( i => {\n importCollector(WIDGET_IMPORTS.get(i));\n });\n }\n return markup;\n};\n\nexport const transpile = (markup: string = '') => {\n if (!markup.length) {\n return;\n }\n let requiredWMComponents = [];\n const nodes = htmlParser.parse(markup, '');\n\n if (nodes.errors.length) {\n return;\n }\n\n let output = '';\n for (const node of nodes.rootNodes) {\n output += processNode(node, (imports: ImportDef[]) => {\n if (imports) {\n requiredWMComponents = requiredWMComponents.concat(imports);\n }\n });\n }\n requiredWMComponents = _.uniqWith(requiredWMComponents, _.isEqual);\n requiredWMComponents = _.sortBy(requiredWMComponents, ['from', 'name']);\n return {\n markup: output,\n requiredWMComponents: requiredWMComponents\n };\n};\n\nexport const register = (nodeName: string, nodeDefFn: () => IBuildTaskDef) => registry.set(nodeName, nodeDefFn());\n\nexport interface ImportDef {\n from: string;\n name: string;\n as?: string;\n forRoot?: boolean;\n platformType?: string;\n}\n\nexport interface IBuildTaskDef {\n requires?: string | Array<string>;\n template?: (node: Element | Text | Comment, shared?: Map<any, any>, ...requires: Array<Map<any, any>>) => void;\n pre: (attrs: Map<string, string>, shared ?: Map<any, any>, ...requires: Array<Map<any, any>>) => string;\n provide?: (attrs: Map<string, string>, shared ?: Map<any, any>, ...requires: Array<Map<any, any>>) => Map<any, any>;\n post?: (attrs: Map<string, string>, shared ?: Map<any, any>, ...requires: Array<Map<any, any>>) => string;\n imports?: string[] | ((attrs: Map<string, string>) => string[]);\n}\n\nexport const scopeComponentStyles = (componentName, componentType, styles = '') => {\n componentName = componentName.toLowerCase();\n const comments = {};\n let commentCount = 0;\n if (styles.startsWith('/*DISABLE_SCOPING*/')) {\n return styles;\n }\n styles = styles.replace(CSS_REGEX.COMMENTS_FORMAT, comment => {\n const key = `@comment${commentCount++}{`;\n comments[key] = comment;\n return key;\n });\n styles = styles.replace(CSS_REGEX.SELECTOR_FORMAT, (selector) => {\n if (!CSS_REGEX.SELECTOR_EXCLUDE_FORMAT.test(selector)) {\n const firstNonSpaceCharIndex = selector.match(/\\S/).index;\n let prefixSpaceCharSeq = '';\n if (firstNonSpaceCharIndex > 0) {\n prefixSpaceCharSeq = selector.substring(0, firstNonSpaceCharIndex);\n selector = selector.substring(firstNonSpaceCharIndex);\n }\n if (!selector.startsWith('/*') && selector.trim().length > 0) {\n // splits the selector by commas and we iterate over the array and add page level scoping and join it.\n selector = selector.split(',').map(s => {\n let prefix = ELE_PREFIX;\n s = s.trim();\n const spaceIndex = s.indexOf(' ');\n if (s.startsWith(ELE_PREFIX)) {\n if (spaceIndex > 0) {\n prefix = s.substring(0, spaceIndex);\n s = s.substring(spaceIndex + 1);\n } else {\n return s;\n }\n }\n\n if (componentType === 0 || componentType === 'PAGE') {\n s = `${prefix} app-page-${componentName} ${s}`;\n } else if (componentType === 1 || componentType === 'PREFAB') {\n s = `${prefix} app-prefab-${componentName} ${s}`;\n } else if (componentType === 2 || componentType === 'PARTIAL') {\n s = `${prefix} app-partial-${componentName} ${s}`;\n }\n return s;\n }).join(',');\n }\n selector = prefixSpaceCharSeq + selector;\n }\n return selector;\n });\n for (const key in comments) {\n styles = styles.replace(key, comments[key]);\n }\n return styles;\n};\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -182,7 +182,7 @@ const isString = v => typeof v === 'string';
|
|
|
182
182
|
const OVERRIDES = {
|
|
183
183
|
'accessroles': '*accessroles',
|
|
184
184
|
'ng-if': '*ngIf',
|
|
185
|
-
'showindevice': '*
|
|
185
|
+
'showindevice': '*wmShowInDevice',
|
|
186
186
|
'ng-class': '[ngClass]',
|
|
187
187
|
'data-ng-class': '[ngClass]',
|
|
188
188
|
'data-ng-src': 'src',
|