ngx-rs-ant 2.1.2 → 2.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dynamic-params/dynamic-params.component.d.ts +6 -1
- package/esm2020/data-grid/data-grid.component.mjs +7 -1
- package/esm2020/dynamic-params/dynamic-params.component.mjs +9 -4
- package/esm2020/form/form.component.mjs +31 -4
- package/esm2020/util/utils.mjs +59 -1
- package/fesm2015/ngx-rs-ant.mjs +102 -5
- package/fesm2015/ngx-rs-ant.mjs.map +1 -1
- package/fesm2020/ngx-rs-ant.mjs +101 -5
- package/fesm2020/ngx-rs-ant.mjs.map +1 -1
- package/form/form.component.d.ts +2 -1
- package/package.json +1 -1
- package/util/utils.d.ts +1 -0
package/esm2020/util/utils.mjs
CHANGED
|
@@ -218,4 +218,62 @@ export function deepClone(obj) {
|
|
|
218
218
|
}
|
|
219
219
|
return result;
|
|
220
220
|
}
|
|
221
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy91dGlsL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLHNCQUFzQixDQUFDO0FBRTFDLE9BQU8sRUFBQyxjQUFjLEVBQUUsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sZ0JBQWdCLE1BQU0saUNBQWlDLENBQUM7QUFFL0QsTUFBTSxVQUFVLFlBQVksQ0FBQyxPQUFlO0lBQzFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ3JDLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUFDLE9BQWU7SUFDNUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDcEMsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsT0FBZTtJQUM1QyxPQUFPLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztBQUNwQyxDQUFDO0FBRUQsU0FBUyxPQUFPLENBQUMsT0FBZSxFQUFFLElBQVksRUFBRSxJQUFzQztJQUNwRixNQUFNLENBQUM7UUFDTCxXQUFXLEVBQUUsSUFBSTtRQUNqQixPQUFPO1FBQ1AsSUFBSSxFQUFFLElBQUk7UUFDVixZQUFZLEVBQUUsS0FBSztRQUNuQixRQUFRLEVBQUUsR0FBRztRQUNiLFFBQVEsRUFBRSxHQUFHO1FBQ2IsV0FBVyxFQUFFLEVBQUMsS0FBSyxFQUFFLHNCQUFzQixFQUFDO0tBQzdDLEVBQUU7UUFDRCxTQUFTLEVBQUUsU0FBUztRQUNwQixRQUFRLEVBQUUsY0FBYztLQUN6QixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLE1BQWMsRUFBRSxNQUFjO0lBQzdELE9BQU8sTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFN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Q0FBQztTQUMvQjtLQUNGO1NBQU07UUFDTCxNQUFNLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUMzQixXQUFXO1FBQ1gsS0FBSyxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQUU7WUFDckIsSUFBSSxHQUFHLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUMzQixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQ25DO1NBQ0Y7S0FDRjtJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbm90aWZ5IGZyb20gXCJkZXZleHRyZW1lL3VpL25vdGlmeVwiO1xyXG5pbXBvcnQge0R4VmFsaWRhdG9yQ29tcG9uZW50fSBmcm9tIFwiZGV2ZXh0cmVtZS1hbmd1bGFyXCI7XHJcbmltcG9ydCB7Zmlyc3RWYWx1ZUZyb20sIG9mfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgdmFsaWRhdGlvbkVuZ2luZSBmcm9tIFwiZGV2ZXh0cmVtZS91aS92YWxpZGF0aW9uX2VuZ2luZVwiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG5vdGlmeV9lcnJvcihtZXNzYWdlOiBzdHJpbmcpIHtcclxuICBfbm90aWZ5KG1lc3NhZ2UsIDEyMDAwLCAnd2FybmluZycpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbm90aWZ5X3dhcm5pbmcobWVzc2FnZTogc3RyaW5nKSB7XHJcbiAgX25vdGlmeShtZXNzYWdlLCA4MDAwLCAnd2FybmluZycpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbm90aWZ5X3N1Y2Nlc3MobWVzc2FnZTogc3RyaW5nKSB7XHJcbiAgX25vdGlmeShtZXNzYWdlLCA0MDAwLCAnc3VjY2VzcycpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBfbm90aWZ5KG1lc3NhZ2U6IHN0cmluZywgdGltZTogbnVtYmVyLCB0eXBlOiAnZGFuZ2VyJyB8ICd3YXJuaW5nJyB8ICdzdWNjZXNzJykge1xyXG4gIG5vdGlmeSh7XHJcbiAgICBkaXNwbGF5VGltZTogdGltZSxcclxuICAgIG1lc3NhZ2UsXHJcbiAgICB0eXBlOiB0eXBlLFxyXG4gICAgY2xvc2VPblN3aXBlOiBmYWxzZSxcclxuICAgIG1pbldpZHRoOiAyMDAsXHJcbiAgICBtYXhXaWR0aDogNTAwLFxyXG4gICAgd3JhcHBlckF0dHI6IHtjbGFzczogJ2dsb2JhbC10b2FzdC1tZXNzYWdlJ31cclxuICB9LCB7XHJcbiAgICBkaXJlY3Rpb246ICd1cC1wdXNoJyxcclxuICAgIHBvc2l0aW9uOiAnYm90dG9tIHJpZ2h0J1xyXG4gIH0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbG9jYWxlU29ydE1ldGhvZCh2YWx1ZTE6IHN0cmluZywgdmFsdWUyOiBzdHJpbmcpIHtcclxuICByZXR1cm4gdmFsdWUxLmxvY2FsZUNvbXBhcmUodmFsdWUyKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGZpbGVfdHlwZV9pY29uKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgY29uc3QgdHlwZSA9IG5hbWUuc3Vic3RyaW5nKG5hbWUubGFzdEluZGV4T2YoJy4nKSArIDEpLnRvTG9jYWxlTG93ZXJDYXNlKCk7XHJcbiAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICBjYXNlICdkb2MnOlxyXG4gICAgY2FzZSAnZG9jeCc6XHJcbiAgICAgIHJldHVybiAnd29yZCc7XHJcbiAgICBjYXNlICd4bHMnOlxyXG4gICAgY2FzZSAneGxzeCc6XHJcbiAgICBjYXNlICdjc3YnOlxyXG4gICAgICByZXR1cm4gJ2V4Y2VsJztcclxuICAgIGNhc2UgJ3BwdCc6XHJcbiAgICBjYXNlICdwcHR4JzpcclxuICAgICAgcmV0dXJuICdwcHQnO1xyXG4gICAgY2FzZSAncGRmJzpcclxuICAgICAgcmV0dXJuICdwZGYnO1xyXG4gICAgY2FzZSAndHh0JzpcclxuICAgIGNhc2UgJ3htbCc6XHJcbiAgICBjYXNlICdqc29uJzpcclxuICAgIGNhc2UgJ2pzJzpcclxuICAgICAgcmV0dXJuICd0ZXh0JztcclxuICAgIGNhc2UgJ3BuZyc6XHJcbiAgICBjYXNlICdqcGcnOlxyXG4gICAgY2FzZSAnanBlZyc6XHJcbiAgICBjYXNlICdnaWYnOlxyXG4gICAgY2FzZSAnYm1wJzpcclxuICAgICAgcmV0dXJuICdpbWFnZSc7XHJcbiAgICBjYXNlICd6aXAnOlxyXG4gICAgY2FzZSAncmFyJzpcclxuICAgIGNhc2UgJzd6JzpcclxuICAgIGNhc2UgJ2phcic6XHJcbiAgICAgIHJldHVybiAnemlwJztcclxuICAgIGRlZmF1bHQ6XHJcbiAgICAgIHJldHVybiAndW5rbm93bic7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc3VwcG9ydF9wcmV2aWV3X2V4dCgpOiBzdHJpbmdbXSB7XHJcbiAgcmV0dXJuIFsncGRmJywgJ3BuZycsICdqcGcnLCAnanBlZycsICdnaWYnLCAnYm1wJywgJ2RvYycsICdkb2N4JywgJ3R4dCcsICd4bWwnLCAnanNvbicsICdqcycsICd4bHMnLCAneGxzeCcsICdjc3YnLCAncHB0JywgJ3BwdHgnXTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdF9maWxlX3NpemUoc2l6ZTogbnVtYmVyKTogc3RyaW5nIHtcclxuICBjb25zdCBsYWJlbHMgPSBbJ2InLCAnS2InLCAnTWInLCAnR2InXTtcclxuICBjb25zdCBjb3VudCA9IGxhYmVscy5sZW5ndGggLSAxO1xyXG4gIGxldCBpID0gMDtcclxuICB3aGlsZSAoaSA8IGNvdW50ICYmIHNpemUgPj0gMTAyNCkge1xyXG4gICAgc2l6ZSAvPSAxMDI0O1xyXG4gICAgaSsrO1xyXG4gIH1cclxuICByZXR1cm4gTWF0aC5yb3VuZChzaXplICogMTAwKSAvIDEwMCArIFwiIFwiICsgbGFiZWxzW2ldO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZmlsZW5hbWVfZnJvbV9kaXNwb3NpdGlvbihkaXNwb3NpdGlvbjogc3RyaW5nKSB7XHJcbiAgY29uc3QgZmlsZW5hbWVQYWlyID0gZGlzcG9zaXRpb24uc3BsaXQoJzsnKS5maWx0ZXIoc3RyID0+IC9eZmlsZW5hbWU9Ly50ZXN0KHN0ci50cmltKCkpKS5wb3AoKTtcclxuICBpZiAoZmlsZW5hbWVQYWlyKSB7XHJcbiAgICBsZXQgc3RyID0gZmlsZW5hbWVQYWlyLnRyaW0oKTtcclxuICAgIHN0ciA9IHN0ci5zcGxpdCgnPScpWzFdO1xyXG4gICAgc3RyID0gc3RyLnJlcGxhY2UoL1snXCJdL2csICcnKTtcclxuICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQoc3RyKTtcclxuICB9IGVsc2Uge1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZG93bmxvYWRfZmlsZShibG9iOiBCbG9iLCBmaWxlbmFtZTogc3RyaW5nLCBjYWxsYmFjaz86IEZ1bmN0aW9uKSB7XHJcbiAgY29uc3QgdXJsID0gd2luZG93LndlYmtpdFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcbiAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpO1xyXG4gIGEuc2V0QXR0cmlidXRlKCdzdHlsZScsICdkaXNwbGF5Om5vbmUnKTtcclxuICBhLnNldEF0dHJpYnV0ZSgnaHJlZicsIHVybCk7XHJcbiAgYS5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgZGVjb2RlVVJJQ29tcG9uZW50KGZpbGVuYW1lKSk7XHJcbiAgYS5jbGljaygpO1xyXG4gIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgaWYgKGNhbGxiYWNrKSB7XHJcbiAgICAgIGNhbGxiYWNrKCk7XHJcbiAgICB9XHJcbiAgICBhLnJlbW92ZSgpO1xyXG4gIH0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGUodmFsaWRhdG9yOiBEeFZhbGlkYXRvckNvbXBvbmVudCk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gIHJldHVybiBuZXcgUHJvbWlzZTxib29sZWFuPihyZXNvbHZlID0+IHtcclxuICAgIGlmICghdmFsaWRhdG9yKSB7XHJcbiAgICAgIHJlc29sdmUodHJ1ZSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCB2YWxpZGF0ZVJlc3VsdCA9IHZhbGlkYXRvci5pbnN0YW5jZS52YWxpZGF0ZSgpO1xyXG4gICAgaWYgKCF2YWxpZGF0ZVJlc3VsdC5pc1ZhbGlkKSB7XHJcbiAgICAgIHJlc29sdmUoZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgaWYgKHZhbGlkYXRlUmVzdWx0LnN0YXR1cyA9PT0gJ3BlbmRpbmcnKSB7XHJcbiAgICAgIHZhbGlkYXRlUmVzdWx0LmNvbXBsZXRlPy50aGVuKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQuaXNWYWxpZCkge1xyXG4gICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVzb2x2ZShmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJlc29sdmUodHJ1ZSk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZV9ncm91cCh2YWxpZGF0aW9uR3JvdXBDb21wb25lbnQ6IGFueSk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gIGlmICghdmFsaWRhdGlvbkdyb3VwQ29tcG9uZW50KSB7XHJcbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20ob2YodHJ1ZSkpO1xyXG4gIH1cclxuICByZXR1cm4gdmFsaWRhdGVHcm91cCh2YWxpZGF0aW9uR3JvdXBDb21wb25lbnQuaW5zdGFuY2UsIHZhbGlkYXRpb25Hcm91cENvbXBvbmVudC5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpXHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZV9ncm91cF9ieV9uYW1lKG5hbWU6IHN0cmluZywgYnJva2VuRWxlbWVudFBhcmVudDogRWxlbWVudCk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gIGNvbnN0IHZhbGlkYXRpb25Hcm91cCA9IHZhbGlkYXRpb25FbmdpbmUuZ2V0R3JvdXBDb25maWcobmFtZSk7XHJcbiAgaWYgKCF2YWxpZGF0aW9uR3JvdXApIHtcclxuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbShvZih0cnVlKSk7XHJcbiAgfVxyXG4gIHJldHVybiB2YWxpZGF0ZUdyb3VwKHZhbGlkYXRpb25Hcm91cCwgYnJva2VuRWxlbWVudFBhcmVudCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHZhbGlkYXRlR3JvdXAodmFsaWRhdGlvbkdyb3VwOiBhbnksIGJyb2tlbkVsZW1lbnRQYXJlbnQ6IEVsZW1lbnQpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICBsZXQgc291cmNlTm9kZTtcclxuICBjb25zdCB0YXJnZXRDbGFzc05hbWUgPSAnZHgtZmllbGQnO1xyXG4gIGNvbnN0IGZpbmRUYXJnZXROb2RlID0gKG5vZGU6IGFueSkgPT4ge1xyXG4gICAgc291cmNlTm9kZSA9IG5vZGU7XHJcbiAgICB3aGlsZSAodHJ1ZSkge1xyXG4gICAgICBpZiAobm9kZS5jbGFzc0xpc3QuY29udGFpbnModGFyZ2V0Q2xhc3NOYW1lKSkge1xyXG4gICAgICAgIHJldHVybiBub2RlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG5vZGUgPSBub2RlLnBhcmVudEVsZW1lbnQ7XHJcbiAgICAgICAgaWYgKG5vZGUgPT09IGJyb2tlbkVsZW1lbnRQYXJlbnQpIHtcclxuICAgICAgICAgIHJldHVybiBzb3VyY2VOb2RlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH07XHJcbiAgcmV0dXJuIG5ldyBQcm9taXNlPGJvb2xlYW4+KHJlc29sdmUgPT4ge1xyXG4gICAgY29uc3QgdmFsaWRhdGVSZXN1bHQgPSB2YWxpZGF0aW9uR3JvdXAudmFsaWRhdGUoKTtcclxuICAgIGlmICghdmFsaWRhdGVSZXN1bHQuaXNWYWxpZCkge1xyXG4gICAgICBjb25zdCBicm9rZW5FbGVtZW50ID0gKHZhbGlkYXRlUmVzdWx0LmJyb2tlblJ1bGVzPy5bMF0gYXMgYW55KS52YWxpZGF0b3IuZWxlbWVudCgpO1xyXG4gICAgICBmaW5kVGFyZ2V0Tm9kZShicm9rZW5FbGVtZW50KS5zY3JvbGxJbnRvVmlldyh7XHJcbiAgICAgICAgYmxvY2s6ICdjZW50ZXInLFxyXG4gICAgICAgIGlubGluZTogJ2NlbnRlcidcclxuICAgICAgfSk7XHJcbiAgICAgIHJlc29sdmUoZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgaWYgKHZhbGlkYXRlUmVzdWx0LnN0YXR1cyA9PT0gJ3BlbmRpbmcnKSB7XHJcbiAgICAgIHZhbGlkYXRlUmVzdWx0LmNvbXBsZXRlPy50aGVuKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQuaXNWYWxpZCkge1xyXG4gICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc3QgYnJva2VuRWxlbWVudCA9IChyZXN1bHQuYnJva2VuUnVsZXM/LlswXSBhcyBhbnkpLnZhbGlkYXRvci5lbGVtZW50KCk7XHJcbiAgICAgICAgICBmaW5kVGFyZ2V0Tm9kZShicm9rZW5FbGVtZW50KS5zY3JvbGxJbnRvVmlldyh7XHJcbiAgICAgICAgICAgIGJsb2NrOiAnY2VudGVyJyxcclxuICAgICAgICAgICAgaW5saW5lOiAnY2VudGVyJ1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICByZXNvbHZlKGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmVzb2x2ZSh0cnVlKTtcclxuICAgIH1cclxuICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG9wZW5Ccm93c2VyVGFiKHBsdWdpbk5hbWU6IHN0cmluZywgdGl0bGU/OiBzdHJpbmcsIHBsdWdpbkNvbmZpZz86IGFueSwgcGFyYW1zPzogYW55KSB7XHJcbiAgcmV0dXJuIHdpbmRvdy5vcGVuKCdjdXN0b20vJyArIHBsdWdpbk5hbWUgKyAnP3RpdGxlPScgKyBlbmNvZGVVUklDb21wb25lbnQodGl0bGUgfHwgJycpXHJcbiAgICArICcmcGx1Z2luQ29uZmlnPScgKyBlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkocGx1Z2luQ29uZmlnIHx8IHt9KSlcclxuICAgICsgJyZwYXJhbXM9JyArIGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShwYXJhbXMgfHwge30pKSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkZWVwQ2xvbmU8VD4ob2JqOiBhbnkpOiBUIHtcclxuICAvLyDlpoLmnpzmmK/ln7rnoYDmlbDmja7nsbvlnovvvIznm7TmjqXov5Tlm55cclxuICBpZiAodHlwZW9mIG9iaiAhPT0gJ29iamVjdCcgfHwgb2JqID09PSBudWxsKSB7XHJcbiAgICByZXR1cm4gb2JqO1xyXG4gIH1cclxuICAvLyDojrflj5blr7nosaHnmoTmnoTpgKDlh73mlbBcclxuICBjb25zdCBjb25zdHJ1Y3RvciA9IG9iai5jb25zdHJ1Y3RvcjtcclxuICAvLyDlpITnkIbmlbDnu4Tlkozlr7nosaFcclxuICBsZXQgcmVzdWx0OiBhbnk7XHJcbiAgaWYgKGNvbnN0cnVjdG9yID09PSBBcnJheSkge1xyXG4gICAgcmVzdWx0ID0gW107XHJcbiAgICAvLyDpgY3ljobmlbDnu4TvvIzpgJLlvZLmt7Hmi7fotJ1cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb2JqLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHJlc3VsdFtpXSA9IGRlZXBDbG9uZShvYmpbaV0pO1xyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICByZXN1bHQgPSBuZXcgY29uc3RydWN0b3IoKTtcclxuICAgIC8vIOmAkuW9kuaLt+i0neWvueixoeWxnuaAp1xyXG4gICAgZm9yIChjb25zdCBrZXkgaW4gb2JqKSB7XHJcbiAgICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICAgIHJlc3VsdFtrZXldID0gZGVlcENsb25lKG9ialtrZXldKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gcmVzdWx0O1xyXG59XHJcbiJdfQ==
|
|
221
|
+
export function evaluateFilter(filter, model) {
|
|
222
|
+
if (!Array.isArray(filter)) {
|
|
223
|
+
return false;
|
|
224
|
+
}
|
|
225
|
+
if (typeof filter[0] === 'string') {
|
|
226
|
+
return evaluateCondition(filter, model);
|
|
227
|
+
}
|
|
228
|
+
// 复合条件,约定统一为and/or
|
|
229
|
+
let currentOperator = filter[1].toUpperCase();
|
|
230
|
+
const results = [];
|
|
231
|
+
for (let i = 0; i < filter.length; i += 2) {
|
|
232
|
+
const subFilter = filter[i];
|
|
233
|
+
results.push(evaluateFilter(subFilter, model));
|
|
234
|
+
}
|
|
235
|
+
switch (currentOperator) {
|
|
236
|
+
case 'AND':
|
|
237
|
+
return results.every(boolValue => boolValue);
|
|
238
|
+
case 'OR':
|
|
239
|
+
return results.some(boolValue => boolValue);
|
|
240
|
+
}
|
|
241
|
+
return false;
|
|
242
|
+
}
|
|
243
|
+
function evaluateCondition(condition, model) {
|
|
244
|
+
const [key, conditionType, value] = condition;
|
|
245
|
+
const modelValue = model[key];
|
|
246
|
+
switch (conditionType) {
|
|
247
|
+
case '=':
|
|
248
|
+
if (value == '$null$') {
|
|
249
|
+
return !modelValue;
|
|
250
|
+
}
|
|
251
|
+
return modelValue == value || (Array.isArray(modelValue) && modelValue.includes(value));
|
|
252
|
+
case '<>':
|
|
253
|
+
if (value == '$null$') {
|
|
254
|
+
return !!modelValue;
|
|
255
|
+
}
|
|
256
|
+
return modelValue !== value && (!Array.isArray(modelValue) || !modelValue.includes(value));
|
|
257
|
+
case '>':
|
|
258
|
+
return modelValue > value;
|
|
259
|
+
case '<':
|
|
260
|
+
return modelValue < value;
|
|
261
|
+
case '>=':
|
|
262
|
+
return modelValue >= value;
|
|
263
|
+
case '<=':
|
|
264
|
+
return modelValue <= value;
|
|
265
|
+
case 'contains':
|
|
266
|
+
return typeof modelValue === 'string' && typeof value === 'string' && modelValue.includes(value);
|
|
267
|
+
case 'startsWith':
|
|
268
|
+
return typeof modelValue === 'string' && typeof value === 'string' && modelValue.startsWith(value);
|
|
269
|
+
case 'endsWith':
|
|
270
|
+
return typeof modelValue === 'string' && typeof value === 'string' && modelValue.endsWith(value);
|
|
271
|
+
case 'in':
|
|
272
|
+
return Array.isArray(value) && value.includes(modelValue);
|
|
273
|
+
case 'ni':
|
|
274
|
+
return Array.isArray(value) && !value.includes(modelValue);
|
|
275
|
+
default:
|
|
276
|
+
return false;
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy91dGlsL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLHNCQUFzQixDQUFDO0FBRTFDLE9BQU8sRUFBQyxjQUFjLEVBQUUsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sZ0JBQWdCLE1BQU0saUNBQWlDLENBQUM7QUFFL0QsTUFBTSxVQUFVLFlBQVksQ0FBQyxPQUFlO0lBQzFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ3JDLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUFDLE9BQWU7SUFDNUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDcEMsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsT0FBZTtJQUM1QyxPQUFPLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztBQUNwQyxDQUFDO0FBRUQsU0FBUyxPQUFPLENBQUMsT0FBZSxFQUFFLElBQVksRUFBRSxJQUFzQztJQUNwRixNQUFNLENBQUM7UUFDTCxXQUFXLEVBQUUsSUFBSTtRQUNqQixPQUFPO1FBQ1AsSUFBSSxFQUFFLElBQUk7UUFDVixZQUFZLEVBQUUsS0FBSztRQUNuQixRQUFRLEVBQUUsR0FBRztRQUNiLFFBQVEsRUFBRSxHQUFHO1FBQ2IsV0FBVyxFQUFFLEVBQUMsS0FBSyxFQUFFLHNCQUFzQixFQUFDO0tBQzdDLEVBQUU7UUFDRCxTQUFTLEVBQUUsU0FBUztRQUNwQixRQUFRLEVBQUUsY0FBYztLQUN6QixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLE1BQWMsRUFBRSxNQUFjO0lBQzdELE9BQU8sTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFN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USxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25HLEtBQUssWUFBWTtZQUNmLE9BQU8sT0FBTyxVQUFVLEtBQUssUUFBUSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JHLEtBQUssVUFBVTtZQUNiLE9BQU8sT0FBTyxVQUFVLEtBQUssUUFBUSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25HLEtBQUssSUFBSTtZQUNQLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzVELEtBQUssSUFBSTtZQUNQLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDN0Q7WUFDRSxPQUFPLEtBQUssQ0FBQztLQUNoQjtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbm90aWZ5IGZyb20gXCJkZXZleHRyZW1lL3VpL25vdGlmeVwiO1xyXG5pbXBvcnQge0R4VmFsaWRhdG9yQ29tcG9uZW50fSBmcm9tIFwiZGV2ZXh0cmVtZS1hbmd1bGFyXCI7XHJcbmltcG9ydCB7Zmlyc3RWYWx1ZUZyb20sIG9mfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgdmFsaWRhdGlvbkVuZ2luZSBmcm9tIFwiZGV2ZXh0cmVtZS91aS92YWxpZGF0aW9uX2VuZ2luZVwiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG5vdGlmeV9lcnJvcihtZXNzYWdlOiBzdHJpbmcpIHtcclxuICBfbm90aWZ5KG1lc3NhZ2UsIDEyMDAwLCAnd2FybmluZycpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbm90aWZ5X3dhcm5pbmcobWVzc2FnZTogc3RyaW5nKSB7XHJcbiAgX25vdGlmeShtZXNzYWdlLCA4MDAwLCAnd2FybmluZycpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbm90aWZ5X3N1Y2Nlc3MobWVzc2FnZTogc3RyaW5nKSB7XHJcbiAgX25vdGlmeShtZXNzYWdlLCA0MDAwLCAnc3VjY2VzcycpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBfbm90aWZ5KG1lc3NhZ2U6IHN0cmluZywgdGltZTogbnVtYmVyLCB0eXBlOiAnZGFuZ2VyJyB8ICd3YXJuaW5nJyB8ICdzdWNjZXNzJykge1xyXG4gIG5vdGlmeSh7XHJcbiAgICBkaXNwbGF5VGltZTogdGltZSxcclxuICAgIG1lc3NhZ2UsXHJcbiAgICB0eXBlOiB0eXBlLFxyXG4gICAgY2xvc2VPblN3aXBlOiBmYWxzZSxcclxuICAgIG1pbldpZHRoOiAyMDAsXHJcbiAgICBtYXhXaWR0aDogNTAwLFxyXG4gICAgd3JhcHBlckF0dHI6IHtjbGFzczogJ2dsb2JhbC10b2FzdC1tZXNzYWdlJ31cclxuICB9LCB7XHJcbiAgICBkaXJlY3Rpb246ICd1cC1wdXNoJyxcclxuICAgIHBvc2l0aW9uOiAnYm90dG9tIHJpZ2h0J1xyXG4gIH0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbG9jYWxlU29ydE1ldGhvZCh2YWx1ZTE6IHN0cmluZywgdmFsdWUyOiBzdHJpbmcpIHtcclxuICByZXR1cm4gdmFsdWUxLmxvY2FsZUNvbXBhcmUodmFsdWUyKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGZpbGVfdHlwZV9pY29uKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgY29uc3QgdHlwZSA9IG5hbWUuc3Vic3RyaW5nKG5hbWUubGFzdEluZGV4T2YoJy4nKSArIDEpLnRvTG9jYWxlTG93ZXJDYXNlKCk7XHJcbiAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICBjYXNlICdkb2MnOlxyXG4gICAgY2FzZSAnZG9jeCc6XHJcbiAgICAgIHJldHVybiAnd29yZCc7XHJcbiAgICBjYXNlICd4bHMnOlxyXG4gICAgY2FzZSAneGxzeCc6XHJcbiAgICBjYXNlICdjc3YnOlxyXG4gICAgICByZXR1cm4gJ2V4Y2VsJztcclxuICAgIGNhc2UgJ3BwdCc6XHJcbiAgICBjYXNlICdwcHR4JzpcclxuICAgICAgcmV0dXJuICdwcHQnO1xyXG4gICAgY2FzZSAncGRmJzpcclxuICAgICAgcmV0dXJuICdwZGYnO1xyXG4gICAgY2FzZSAndHh0JzpcclxuICAgIGNhc2UgJ3htbCc6XHJcbiAgICBjYXNlICdqc29uJzpcclxuICAgIGNhc2UgJ2pzJzpcclxuICAgICAgcmV0dXJuICd0ZXh0JztcclxuICAgIGNhc2UgJ3BuZyc6XHJcbiAgICBjYXNlICdqcGcnOlxyXG4gICAgY2FzZSAnanBlZyc6XHJcbiAgICBjYXNlICdnaWYnOlxyXG4gICAgY2FzZSAnYm1wJzpcclxuICAgICAgcmV0dXJuICdpbWFnZSc7XHJcbiAgICBjYXNlICd6aXAnOlxyXG4gICAgY2FzZSAncmFyJzpcclxuICAgIGNhc2UgJzd6JzpcclxuICAgIGNhc2UgJ2phcic6XHJcbiAgICAgIHJldHVybiAnemlwJztcclxuICAgIGRlZmF1bHQ6XHJcbiAgICAgIHJldHVybiAndW5rbm93bic7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc3VwcG9ydF9wcmV2aWV3X2V4dCgpOiBzdHJpbmdbXSB7XHJcbiAgcmV0dXJuIFsncGRmJywgJ3BuZycsICdqcGcnLCAnanBlZycsICdnaWYnLCAnYm1wJywgJ2RvYycsICdkb2N4JywgJ3R4dCcsICd4bWwnLCAnanNvbicsICdqcycsICd4bHMnLCAneGxzeCcsICdjc3YnLCAncHB0JywgJ3BwdHgnXTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdF9maWxlX3NpemUoc2l6ZTogbnVtYmVyKTogc3RyaW5nIHtcclxuICBjb25zdCBsYWJlbHMgPSBbJ2InLCAnS2InLCAnTWInLCAnR2InXTtcclxuICBjb25zdCBjb3VudCA9IGxhYmVscy5sZW5ndGggLSAxO1xyXG4gIGxldCBpID0gMDtcclxuICB3aGlsZSAoaSA8IGNvdW50ICYmIHNpemUgPj0gMTAyNCkge1xyXG4gICAgc2l6ZSAvPSAxMDI0O1xyXG4gICAgaSsrO1xyXG4gIH1cclxuICByZXR1cm4gTWF0aC5yb3VuZChzaXplICogMTAwKSAvIDEwMCArIFwiIFwiICsgbGFiZWxzW2ldO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZmlsZW5hbWVfZnJvbV9kaXNwb3NpdGlvbihkaXNwb3NpdGlvbjogc3RyaW5nKSB7XHJcbiAgY29uc3QgZmlsZW5hbWVQYWlyID0gZGlzcG9zaXRpb24uc3BsaXQoJzsnKS5maWx0ZXIoc3RyID0+IC9eZmlsZW5hbWU9Ly50ZXN0KHN0ci50cmltKCkpKS5wb3AoKTtcclxuICBpZiAoZmlsZW5hbWVQYWlyKSB7XHJcbiAgICBsZXQgc3RyID0gZmlsZW5hbWVQYWlyLnRyaW0oKTtcclxuICAgIHN0ciA9IHN0ci5zcGxpdCgnPScpWzFdO1xyXG4gICAgc3RyID0gc3RyLnJlcGxhY2UoL1snXCJdL2csICcnKTtcclxuICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQoc3RyKTtcclxuICB9IGVsc2Uge1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZG93bmxvYWRfZmlsZShibG9iOiBCbG9iLCBmaWxlbmFtZTogc3RyaW5nLCBjYWxsYmFjaz86IEZ1bmN0aW9uKSB7XHJcbiAgY29uc3QgdXJsID0gd2luZG93LndlYmtpdFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcbiAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpO1xyXG4gIGEuc2V0QXR0cmlidXRlKCdzdHlsZScsICdkaXNwbGF5Om5vbmUnKTtcclxuICBhLnNldEF0dHJpYnV0ZSgnaHJlZicsIHVybCk7XHJcbiAgYS5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgZGVjb2RlVVJJQ29tcG9uZW50KGZpbGVuYW1lKSk7XHJcbiAgYS5jbGljaygpO1xyXG4gIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgaWYgKGNhbGxiYWNrKSB7XHJcbiAgICAgIGNhbGxiYWNrKCk7XHJcbiAgICB9XHJcbiAgICBhLnJlbW92ZSgpO1xyXG4gIH0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGUodmFsaWRhdG9yOiBEeFZhbGlkYXRvckNvbXBvbmVudCk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gIHJldHVybiBuZXcgUHJvbWlzZTxib29sZWFuPihyZXNvbHZlID0+IHtcclxuICAgIGlmICghdmFsaWRhdG9yKSB7XHJcbiAgICAgIHJlc29sdmUodHJ1ZSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCB2YWxpZGF0ZVJlc3VsdCA9IHZhbGlkYXRvci5pbnN0YW5jZS52YWxpZGF0ZSgpO1xyXG4gICAgaWYgKCF2YWxpZGF0ZVJlc3VsdC5pc1ZhbGlkKSB7XHJcbiAgICAgIHJlc29sdmUoZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgaWYgKHZhbGlkYXRlUmVzdWx0LnN0YXR1cyA9PT0gJ3BlbmRpbmcnKSB7XHJcbiAgICAgIHZhbGlkYXRlUmVzdWx0LmNvbXBsZXRlPy50aGVuKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQuaXNWYWxpZCkge1xyXG4gICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVzb2x2ZShmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJlc29sdmUodHJ1ZSk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZV9ncm91cCh2YWxpZGF0aW9uR3JvdXBDb21wb25lbnQ6IGFueSk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gIGlmICghdmFsaWRhdGlvbkdyb3VwQ29tcG9uZW50KSB7XHJcbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20ob2YodHJ1ZSkpO1xyXG4gIH1cclxuICByZXR1cm4gdmFsaWRhdGVHcm91cCh2YWxpZGF0aW9uR3JvdXBDb21wb25lbnQuaW5zdGFuY2UsIHZhbGlkYXRpb25Hcm91cENvbXBvbmVudC5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpXHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZV9ncm91cF9ieV9uYW1lKG5hbWU6IHN0cmluZywgYnJva2VuRWxlbWVudFBhcmVudDogRWxlbWVudCk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gIGNvbnN0IHZhbGlkYXRpb25Hcm91cCA9IHZhbGlkYXRpb25FbmdpbmUuZ2V0R3JvdXBDb25maWcobmFtZSk7XHJcbiAgaWYgKCF2YWxpZGF0aW9uR3JvdXApIHtcclxuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbShvZih0cnVlKSk7XHJcbiAgfVxyXG4gIHJldHVybiB2YWxpZGF0ZUdyb3VwKHZhbGlkYXRpb25Hcm91cCwgYnJva2VuRWxlbWVudFBhcmVudCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHZhbGlkYXRlR3JvdXAodmFsaWRhdGlvbkdyb3VwOiBhbnksIGJyb2tlbkVsZW1lbnRQYXJlbnQ6IEVsZW1lbnQpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICBsZXQgc291cmNlTm9kZTtcclxuICBjb25zdCB0YXJnZXRDbGFzc05hbWUgPSAnZHgtZmllbGQnO1xyXG4gIGNvbnN0IGZpbmRUYXJnZXROb2RlID0gKG5vZGU6IGFueSkgPT4ge1xyXG4gICAgc291cmNlTm9kZSA9IG5vZGU7XHJcbiAgICB3aGlsZSAodHJ1ZSkge1xyXG4gICAgICBpZiAobm9kZS5jbGFzc0xpc3QuY29udGFpbnModGFyZ2V0Q2xhc3NOYW1lKSkge1xyXG4gICAgICAgIHJldHVybiBub2RlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG5vZGUgPSBub2RlLnBhcmVudEVsZW1lbnQ7XHJcbiAgICAgICAgaWYgKG5vZGUgPT09IGJyb2tlbkVsZW1lbnRQYXJlbnQpIHtcclxuICAgICAgICAgIHJldHVybiBzb3VyY2VOb2RlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH07XHJcbiAgcmV0dXJuIG5ldyBQcm9taXNlPGJvb2xlYW4+KHJlc29sdmUgPT4ge1xyXG4gICAgY29uc3QgdmFsaWRhdGVSZXN1bHQgPSB2YWxpZGF0aW9uR3JvdXAudmFsaWRhdGUoKTtcclxuICAgIGlmICghdmFsaWRhdGVSZXN1bHQuaXNWYWxpZCkge1xyXG4gICAgICBjb25zdCBicm9rZW5FbGVtZW50ID0gKHZhbGlkYXRlUmVzdWx0LmJyb2tlblJ1bGVzPy5bMF0gYXMgYW55KS52YWxpZGF0b3IuZWxlbWVudCgpO1xyXG4gICAgICBmaW5kVGFyZ2V0Tm9kZShicm9rZW5FbGVtZW50KS5zY3JvbGxJbnRvVmlldyh7XHJcbiAgICAgICAgYmxvY2s6ICdjZW50ZXInLFxyXG4gICAgICAgIGlubGluZTogJ2NlbnRlcidcclxuICAgICAgfSk7XHJcbiAgICAgIHJlc29sdmUoZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgaWYgKHZhbGlkYXRlUmVzdWx0LnN0YXR1cyA9PT0gJ3BlbmRpbmcnKSB7XHJcbiAgICAgIHZhbGlkYXRlUmVzdWx0LmNvbXBsZXRlPy50aGVuKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQuaXNWYWxpZCkge1xyXG4gICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc3QgYnJva2VuRWxlbWVudCA9IChyZXN1bHQuYnJva2VuUnVsZXM/LlswXSBhcyBhbnkpLnZhbGlkYXRvci5lbGVtZW50KCk7XHJcbiAgICAgICAgICBmaW5kVGFyZ2V0Tm9kZShicm9rZW5FbGVtZW50KS5zY3JvbGxJbnRvVmlldyh7XHJcbiAgICAgICAgICAgIGJsb2NrOiAnY2VudGVyJyxcclxuICAgICAgICAgICAgaW5saW5lOiAnY2VudGVyJ1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICByZXNvbHZlKGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmVzb2x2ZSh0cnVlKTtcclxuICAgIH1cclxuICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG9wZW5Ccm93c2VyVGFiKHBsdWdpbk5hbWU6IHN0cmluZywgdGl0bGU/OiBzdHJpbmcsIHBsdWdpbkNvbmZpZz86IGFueSwgcGFyYW1zPzogYW55KSB7XHJcbiAgcmV0dXJuIHdpbmRvdy5vcGVuKCdjdXN0b20vJyArIHBsdWdpbk5hbWUgKyAnP3RpdGxlPScgKyBlbmNvZGVVUklDb21wb25lbnQodGl0bGUgfHwgJycpXHJcbiAgICArICcmcGx1Z2luQ29uZmlnPScgKyBlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkocGx1Z2luQ29uZmlnIHx8IHt9KSlcclxuICAgICsgJyZwYXJhbXM9JyArIGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShwYXJhbXMgfHwge30pKSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkZWVwQ2xvbmU8VD4ob2JqOiBhbnkpOiBUIHtcclxuICAvLyDlpoLmnpzmmK/ln7rnoYDmlbDmja7nsbvlnovvvIznm7TmjqXov5Tlm55cclxuICBpZiAodHlwZW9mIG9iaiAhPT0gJ29iamVjdCcgfHwgb2JqID09PSBudWxsKSB7XHJcbiAgICByZXR1cm4gb2JqO1xyXG4gIH1cclxuICAvLyDojrflj5blr7nosaHnmoTmnoTpgKDlh73mlbBcclxuICBjb25zdCBjb25zdHJ1Y3RvciA9IG9iai5jb25zdHJ1Y3RvcjtcclxuICAvLyDlpITnkIbmlbDnu4Tlkozlr7nosaFcclxuICBsZXQgcmVzdWx0OiBhbnk7XHJcbiAgaWYgKGNvbnN0cnVjdG9yID09PSBBcnJheSkge1xyXG4gICAgcmVzdWx0ID0gW107XHJcbiAgICAvLyDpgY3ljobmlbDnu4TvvIzpgJLlvZLmt7Hmi7fotJ1cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb2JqLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHJlc3VsdFtpXSA9IGRlZXBDbG9uZShvYmpbaV0pO1xyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICByZXN1bHQgPSBuZXcgY29uc3RydWN0b3IoKTtcclxuICAgIC8vIOmAkuW9kuaLt+i0neWvueixoeWxnuaAp1xyXG4gICAgZm9yIChjb25zdCBrZXkgaW4gb2JqKSB7XHJcbiAgICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICAgIHJlc3VsdFtrZXldID0gZGVlcENsb25lKG9ialtrZXldKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZXZhbHVhdGVGaWx0ZXIoZmlsdGVyOiBhbnksIG1vZGVsOiBhbnkpOiBib29sZWFuIHtcclxuICBpZiAoIUFycmF5LmlzQXJyYXkoZmlsdGVyKSkge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICBpZiAodHlwZW9mIGZpbHRlclswXSA9PT0gJ3N0cmluZycpIHtcclxuICAgIHJldHVybiBldmFsdWF0ZUNvbmRpdGlvbihmaWx0ZXIsIG1vZGVsKTtcclxuICB9XHJcbiAgLy8g5aSN5ZCI5p2h5Lu277yM57qm5a6a57uf5LiA5Li6YW5kL29yXHJcbiAgbGV0IGN1cnJlbnRPcGVyYXRvciA9IGZpbHRlclsxXS50b1VwcGVyQ2FzZSgpO1xyXG4gIGNvbnN0IHJlc3VsdHMgPSBbXTtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbHRlci5sZW5ndGg7IGkgKz0gMikge1xyXG4gICAgY29uc3Qgc3ViRmlsdGVyID0gZmlsdGVyW2ldO1xyXG4gICAgcmVzdWx0cy5wdXNoKGV2YWx1YXRlRmlsdGVyKHN1YkZpbHRlciwgbW9kZWwpKTtcclxuICB9XHJcbiAgc3dpdGNoIChjdXJyZW50T3BlcmF0b3IpIHtcclxuICAgIGNhc2UgJ0FORCc6XHJcbiAgICAgIHJldHVybiByZXN1bHRzLmV2ZXJ5KGJvb2xWYWx1ZSA9PiBib29sVmFsdWUpO1xyXG4gICAgY2FzZSAnT1InOlxyXG4gICAgICByZXR1cm4gcmVzdWx0cy5zb21lKGJvb2xWYWx1ZSA9PiBib29sVmFsdWUpO1xyXG4gIH1cclxuICByZXR1cm4gZmFsc2U7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGV2YWx1YXRlQ29uZGl0aW9uKGNvbmRpdGlvbjogYW55LCBtb2RlbDogYW55KTogYm9vbGVhbiB7XHJcbiAgY29uc3QgW2tleSwgY29uZGl0aW9uVHlwZSwgdmFsdWVdID0gY29uZGl0aW9uO1xyXG4gIGNvbnN0IG1vZGVsVmFsdWUgPSBtb2RlbFtrZXldO1xyXG4gIHN3aXRjaCAoY29uZGl0aW9uVHlwZSkge1xyXG4gICAgY2FzZSAnPSc6XHJcbiAgICAgIGlmICh2YWx1ZSA9PSAnJG51bGwkJykge1xyXG4gICAgICAgIHJldHVybiAhbW9kZWxWYWx1ZTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbW9kZWxWYWx1ZSA9PSB2YWx1ZSB8fCAoQXJyYXkuaXNBcnJheShtb2RlbFZhbHVlKSAmJiBtb2RlbFZhbHVlLmluY2x1ZGVzKHZhbHVlKSk7XHJcbiAgICBjYXNlICc8Pic6XHJcbiAgICAgIGlmICh2YWx1ZSA9PSAnJG51bGwkJykge1xyXG4gICAgICAgIHJldHVybiAhIW1vZGVsVmFsdWU7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIG1vZGVsVmFsdWUgIT09IHZhbHVlICYmICghQXJyYXkuaXNBcnJheShtb2RlbFZhbHVlKSB8fCAhbW9kZWxWYWx1ZS5pbmNsdWRlcyh2YWx1ZSkpO1xyXG4gICAgY2FzZSAnPic6XHJcbiAgICAgIHJldHVybiBtb2RlbFZhbHVlID4gdmFsdWU7XHJcbiAgICBjYXNlICc8JzpcclxuICAgICAgcmV0dXJuIG1vZGVsVmFsdWUgPCB2YWx1ZTtcclxuICAgIGNhc2UgJz49JzpcclxuICAgICAgcmV0dXJuIG1vZGVsVmFsdWUgPj0gdmFsdWU7XHJcbiAgICBjYXNlICc8PSc6XHJcbiAgICAgIHJldHVybiBtb2RlbFZhbHVlIDw9IHZhbHVlO1xyXG4gICAgY2FzZSAnY29udGFpbnMnOlxyXG4gICAgICByZXR1cm4gdHlwZW9mIG1vZGVsVmFsdWUgPT09ICdzdHJpbmcnICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgbW9kZWxWYWx1ZS5pbmNsdWRlcyh2YWx1ZSk7XHJcbiAgICBjYXNlICdzdGFydHNXaXRoJzpcclxuICAgICAgcmV0dXJuIHR5cGVvZiBtb2RlbFZhbHVlID09PSAnc3RyaW5nJyAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIG1vZGVsVmFsdWUuc3RhcnRzV2l0aCh2YWx1ZSk7XHJcbiAgICBjYXNlICdlbmRzV2l0aCc6XHJcbiAgICAgIHJldHVybiB0eXBlb2YgbW9kZWxWYWx1ZSA9PT0gJ3N0cmluZycgJiYgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiBtb2RlbFZhbHVlLmVuZHNXaXRoKHZhbHVlKTtcclxuICAgIGNhc2UgJ2luJzpcclxuICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmluY2x1ZGVzKG1vZGVsVmFsdWUpO1xyXG4gICAgY2FzZSAnbmknOlxyXG4gICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgIXZhbHVlLmluY2x1ZGVzKG1vZGVsVmFsdWUpO1xyXG4gICAgZGVmYXVsdDpcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxufVxyXG4iXX0=
|
package/fesm2015/ngx-rs-ant.mjs
CHANGED
|
@@ -2017,6 +2017,64 @@ function deepClone(obj) {
|
|
|
2017
2017
|
}
|
|
2018
2018
|
}
|
|
2019
2019
|
return result;
|
|
2020
|
+
}
|
|
2021
|
+
function evaluateFilter(filter, model) {
|
|
2022
|
+
if (!Array.isArray(filter)) {
|
|
2023
|
+
return false;
|
|
2024
|
+
}
|
|
2025
|
+
if (typeof filter[0] === 'string') {
|
|
2026
|
+
return evaluateCondition(filter, model);
|
|
2027
|
+
}
|
|
2028
|
+
// 复合条件,约定统一为and/or
|
|
2029
|
+
let currentOperator = filter[1].toUpperCase();
|
|
2030
|
+
const results = [];
|
|
2031
|
+
for (let i = 0; i < filter.length; i += 2) {
|
|
2032
|
+
const subFilter = filter[i];
|
|
2033
|
+
results.push(evaluateFilter(subFilter, model));
|
|
2034
|
+
}
|
|
2035
|
+
switch (currentOperator) {
|
|
2036
|
+
case 'AND':
|
|
2037
|
+
return results.every(boolValue => boolValue);
|
|
2038
|
+
case 'OR':
|
|
2039
|
+
return results.some(boolValue => boolValue);
|
|
2040
|
+
}
|
|
2041
|
+
return false;
|
|
2042
|
+
}
|
|
2043
|
+
function evaluateCondition(condition, model) {
|
|
2044
|
+
const [key, conditionType, value] = condition;
|
|
2045
|
+
const modelValue = model[key];
|
|
2046
|
+
switch (conditionType) {
|
|
2047
|
+
case '=':
|
|
2048
|
+
if (value == '$null$') {
|
|
2049
|
+
return !modelValue;
|
|
2050
|
+
}
|
|
2051
|
+
return modelValue == value || (Array.isArray(modelValue) && modelValue.includes(value));
|
|
2052
|
+
case '<>':
|
|
2053
|
+
if (value == '$null$') {
|
|
2054
|
+
return !!modelValue;
|
|
2055
|
+
}
|
|
2056
|
+
return modelValue !== value && (!Array.isArray(modelValue) || !modelValue.includes(value));
|
|
2057
|
+
case '>':
|
|
2058
|
+
return modelValue > value;
|
|
2059
|
+
case '<':
|
|
2060
|
+
return modelValue < value;
|
|
2061
|
+
case '>=':
|
|
2062
|
+
return modelValue >= value;
|
|
2063
|
+
case '<=':
|
|
2064
|
+
return modelValue <= value;
|
|
2065
|
+
case 'contains':
|
|
2066
|
+
return typeof modelValue === 'string' && typeof value === 'string' && modelValue.includes(value);
|
|
2067
|
+
case 'startsWith':
|
|
2068
|
+
return typeof modelValue === 'string' && typeof value === 'string' && modelValue.startsWith(value);
|
|
2069
|
+
case 'endsWith':
|
|
2070
|
+
return typeof modelValue === 'string' && typeof value === 'string' && modelValue.endsWith(value);
|
|
2071
|
+
case 'in':
|
|
2072
|
+
return Array.isArray(value) && value.includes(modelValue);
|
|
2073
|
+
case 'ni':
|
|
2074
|
+
return Array.isArray(value) && !value.includes(modelValue);
|
|
2075
|
+
default:
|
|
2076
|
+
return false;
|
|
2077
|
+
}
|
|
2020
2078
|
}
|
|
2021
2079
|
|
|
2022
2080
|
class CustomTemplateDirective {
|
|
@@ -2552,6 +2610,9 @@ class UniqueId {
|
|
|
2552
2610
|
UniqueId.__ID_COUNTER = 1;
|
|
2553
2611
|
|
|
2554
2612
|
class FormComponent extends UniqueId {
|
|
2613
|
+
get _validatorGroupName() {
|
|
2614
|
+
return this.getUniqueId();
|
|
2615
|
+
}
|
|
2555
2616
|
constructor(viewContainerRef, service, elementRef) {
|
|
2556
2617
|
super('rs-form');
|
|
2557
2618
|
this.viewContainerRef = viewContainerRef;
|
|
@@ -2600,6 +2661,11 @@ class FormComponent extends UniqueId {
|
|
|
2600
2661
|
this.extraValidator = this.config.extraValidator;
|
|
2601
2662
|
if (this.onlyFrontEnd) {
|
|
2602
2663
|
this.loading = false;
|
|
2664
|
+
this.onDataLoaded.emit({
|
|
2665
|
+
id: this.getUniqueId(),
|
|
2666
|
+
config: this.config,
|
|
2667
|
+
model: this.model
|
|
2668
|
+
});
|
|
2603
2669
|
}
|
|
2604
2670
|
else if (this.copyOid || this.oid) {
|
|
2605
2671
|
this.service.getOne(this.tenant, this.className, this.copyOid || this.oid, this.template, this.copyOid)
|
|
@@ -2669,14 +2735,30 @@ class FormComponent extends UniqueId {
|
|
|
2669
2735
|
}
|
|
2670
2736
|
}
|
|
2671
2737
|
validate() {
|
|
2672
|
-
return
|
|
2738
|
+
return new Promise((resolve) => {
|
|
2739
|
+
const promises = Array.from(this.elementRef.nativeElement.querySelectorAll('rs-form')).map((item) => {
|
|
2740
|
+
return validate_group_by_name(item.getAttribute('validator-group-name'), this.elementRef.nativeElement);
|
|
2741
|
+
});
|
|
2742
|
+
// 添加顶级元素的验证 Promise
|
|
2743
|
+
promises.push(validate_group_by_name(this.getUniqueId(), this.elementRef.nativeElement));
|
|
2744
|
+
// 使用 Promise.all 等待所有 Promise 完成
|
|
2745
|
+
Promise.all(promises)
|
|
2746
|
+
.then((results) => {
|
|
2747
|
+
if (results.every((isValid) => isValid)) {
|
|
2748
|
+
resolve(true);
|
|
2749
|
+
}
|
|
2750
|
+
else {
|
|
2751
|
+
resolve(false);
|
|
2752
|
+
}
|
|
2753
|
+
});
|
|
2754
|
+
});
|
|
2673
2755
|
}
|
|
2674
2756
|
submit() {
|
|
2675
2757
|
this.formSubmitter.instance.element().click();
|
|
2676
2758
|
}
|
|
2677
2759
|
}
|
|
2678
2760
|
FormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FormComponent, deps: [{ token: i0.ViewContainerRef }, { token: FormService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
2679
|
-
FormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: FormComponent, selector: "rs-form", inputs: { tenant: "tenant", className: "className", oid: "oid", copyOid: "copyOid", template: "template", extraAttrMap: "extraAttrMap", params: "params", tabViewContainerRef: "tabViewContainerRef", onlyFrontEnd: "onlyFrontEnd", model: "model", readonly: "readonly" }, outputs: { onDataLoaded: "onDataLoaded", submitCallback: "submitCallback" }, providers: [FormService], viewQueries: [{ propertyName: "formSubmitter", first: true, predicate: ["formSubmitter"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<dx-load-panel [container]=\"viewContainerRef.element.nativeElement\" [showPane]=\"false\"\r\n [visible]=\"loading\">\r\n <dxo-position [of]=\"viewContainerRef.element.nativeElement\"></dxo-position>\r\n</dx-load-panel>\r\n<ng-container *ngIf=\"!loading\">\r\n <rs-box-container [config]=\"config\"\r\n [params]=\"params\"\r\n [context]=\"context\"\r\n [tabViewContainerRef]=\"tabViewContainerRef\"\r\n [readonly]=\"readonly\"></rs-box-container>\r\n <dx-text-box height=\"0\" style=\"border: none;\">\r\n <dx-validator [validationGroup]=\"getUniqueId()\">\r\n <dxi-validation-rule *ngIf=\"extraValidator\" type=\"async\"\r\n [validationCallback]=\"extraValidate\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n <div *ngIf=\"extraValidateMessage\" class=\"dx-field\">\r\n <div class=\"dx-field-value\">\r\n <div class=\"dx-toast-error dx-toast-content\">\r\n <div class=\"dx-toast-message\">{{ extraValidateMessage }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <dx-button #formSubmitter [visible]=\"false\" (onClick)=\"submitForm()\"></dx-button>\r\n</ng-container>\r\n", styles: [":host{padding:12px 24px 20px}:host dx-validation-group{display:flex;flex-flow:column nowrap}:host dx-validation-group .dx-field{top:16px}:host dx-validation-group .dx-field .dx-field-value .dx-toast-content{padding:4px 8px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: BoxContainerComponent, selector: "rs-box-container", inputs: ["id", "editMode", "config", "params", "context", "readonly", "tabViewContainerRef"] }, { kind: "component", type: i6.DxoPositionComponent, selector: "dxo-position", inputs: ["at", "boundary", "boundaryOffset", "collision", "my", "of", "offset"] }, { kind: "component", type: i3.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }, { kind: "component", type: i6.DxiValidationRuleComponent, selector: "dxi-validation-rule", inputs: ["message", "trim", "type", "ignoreEmptyValue", "max", "min", "reevaluate", "validationCallback", "comparisonTarget", "comparisonType", "pattern"] }, { kind: "component", type: i6$1.DxLoadPanelComponent, selector: "dx-load-panel", inputs: ["animation", "closeOnOutsideClick", "container", "copyRootClassesToWrapper", "deferRendering", "delay", "elementAttr", "focusStateEnabled", "height", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "indicatorSrc", "maxHeight", "maxWidth", "message", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showIndicator", "showPane", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "animationChange", "closeOnOutsideClickChange", "containerChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "delayChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "indicatorSrcChange", "maxHeightChange", "maxWidthChange", "messageChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showIndicatorChange", "showPaneChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { kind: "component", type: i7.DxTextBoxComponent, selector: "dx-text-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "isDirty", "isValid", "label", "labelMode", "mask", "maskChar", "maskInvalidMessage", "maskRules", "maxLength", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showMaskMode", "spellcheck", "stylingMode", "tabIndex", "text", "useMaskedValue", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isDirtyChange", "isValidChange", "labelChange", "labelModeChange", "maskChange", "maskCharChange", "maskInvalidMessageChange", "maskRulesChange", "maxLengthChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showMaskModeChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useMaskedValueChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "component", type: i8.DxValidatorComponent, selector: "dx-validator", inputs: ["adapter", "elementAttr", "height", "name", "validationGroup", "validationRules", "width"], outputs: ["onDisposing", "onInitialized", "onOptionChanged", "onValidated", "adapterChange", "elementAttrChange", "heightChange", "nameChange", "validationGroupChange", "validationRulesChange", "widthChange"] }] });
|
|
2761
|
+
FormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: FormComponent, selector: "rs-form", inputs: { tenant: "tenant", className: "className", oid: "oid", copyOid: "copyOid", template: "template", extraAttrMap: "extraAttrMap", params: "params", tabViewContainerRef: "tabViewContainerRef", onlyFrontEnd: "onlyFrontEnd", model: "model", readonly: "readonly" }, outputs: { onDataLoaded: "onDataLoaded", submitCallback: "submitCallback" }, host: { properties: { "attr.validator-group-name": "this._validatorGroupName" } }, providers: [FormService], viewQueries: [{ propertyName: "formSubmitter", first: true, predicate: ["formSubmitter"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<dx-load-panel [container]=\"viewContainerRef.element.nativeElement\" [showPane]=\"false\"\r\n [visible]=\"loading\">\r\n <dxo-position [of]=\"viewContainerRef.element.nativeElement\"></dxo-position>\r\n</dx-load-panel>\r\n<ng-container *ngIf=\"!loading\">\r\n <rs-box-container [config]=\"config\"\r\n [params]=\"params\"\r\n [context]=\"context\"\r\n [tabViewContainerRef]=\"tabViewContainerRef\"\r\n [readonly]=\"readonly\"></rs-box-container>\r\n <dx-text-box height=\"0\" style=\"border: none;\">\r\n <dx-validator [validationGroup]=\"getUniqueId()\">\r\n <dxi-validation-rule *ngIf=\"extraValidator\" type=\"async\"\r\n [validationCallback]=\"extraValidate\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n <div *ngIf=\"extraValidateMessage\" class=\"dx-field\">\r\n <div class=\"dx-field-value\">\r\n <div class=\"dx-toast-error dx-toast-content\">\r\n <div class=\"dx-toast-message\">{{ extraValidateMessage }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <dx-button #formSubmitter [visible]=\"false\" (onClick)=\"submitForm()\"></dx-button>\r\n</ng-container>\r\n", styles: [":host{padding:12px 24px 20px}:host dx-validation-group{display:flex;flex-flow:column nowrap}:host dx-validation-group .dx-field{top:16px}:host dx-validation-group .dx-field .dx-field-value .dx-toast-content{padding:4px 8px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: BoxContainerComponent, selector: "rs-box-container", inputs: ["id", "editMode", "config", "params", "context", "readonly", "tabViewContainerRef"] }, { kind: "component", type: i6.DxoPositionComponent, selector: "dxo-position", inputs: ["at", "boundary", "boundaryOffset", "collision", "my", "of", "offset"] }, { kind: "component", type: i3.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }, { kind: "component", type: i6.DxiValidationRuleComponent, selector: "dxi-validation-rule", inputs: ["message", "trim", "type", "ignoreEmptyValue", "max", "min", "reevaluate", "validationCallback", "comparisonTarget", "comparisonType", "pattern"] }, { kind: "component", type: i6$1.DxLoadPanelComponent, selector: "dx-load-panel", inputs: ["animation", "closeOnOutsideClick", "container", "copyRootClassesToWrapper", "deferRendering", "delay", "elementAttr", "focusStateEnabled", "height", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "indicatorSrc", "maxHeight", "maxWidth", "message", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showIndicator", "showPane", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "animationChange", "closeOnOutsideClickChange", "containerChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "delayChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "indicatorSrcChange", "maxHeightChange", "maxWidthChange", "messageChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showIndicatorChange", "showPaneChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { kind: "component", type: i7.DxTextBoxComponent, selector: "dx-text-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "isDirty", "isValid", "label", "labelMode", "mask", "maskChar", "maskInvalidMessage", "maskRules", "maxLength", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showMaskMode", "spellcheck", "stylingMode", "tabIndex", "text", "useMaskedValue", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isDirtyChange", "isValidChange", "labelChange", "labelModeChange", "maskChange", "maskCharChange", "maskInvalidMessageChange", "maskRulesChange", "maxLengthChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showMaskModeChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useMaskedValueChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "component", type: i8.DxValidatorComponent, selector: "dx-validator", inputs: ["adapter", "elementAttr", "height", "name", "validationGroup", "validationRules", "width"], outputs: ["onDisposing", "onInitialized", "onOptionChanged", "onValidated", "adapterChange", "elementAttrChange", "heightChange", "nameChange", "validationGroupChange", "validationRulesChange", "widthChange"] }] });
|
|
2680
2762
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FormComponent, decorators: [{
|
|
2681
2763
|
type: Component,
|
|
2682
2764
|
args: [{ selector: 'rs-form', providers: [FormService], template: "<dx-load-panel [container]=\"viewContainerRef.element.nativeElement\" [showPane]=\"false\"\r\n [visible]=\"loading\">\r\n <dxo-position [of]=\"viewContainerRef.element.nativeElement\"></dxo-position>\r\n</dx-load-panel>\r\n<ng-container *ngIf=\"!loading\">\r\n <rs-box-container [config]=\"config\"\r\n [params]=\"params\"\r\n [context]=\"context\"\r\n [tabViewContainerRef]=\"tabViewContainerRef\"\r\n [readonly]=\"readonly\"></rs-box-container>\r\n <dx-text-box height=\"0\" style=\"border: none;\">\r\n <dx-validator [validationGroup]=\"getUniqueId()\">\r\n <dxi-validation-rule *ngIf=\"extraValidator\" type=\"async\"\r\n [validationCallback]=\"extraValidate\"></dxi-validation-rule>\r\n </dx-validator>\r\n </dx-text-box>\r\n <div *ngIf=\"extraValidateMessage\" class=\"dx-field\">\r\n <div class=\"dx-field-value\">\r\n <div class=\"dx-toast-error dx-toast-content\">\r\n <div class=\"dx-toast-message\">{{ extraValidateMessage }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <dx-button #formSubmitter [visible]=\"false\" (onClick)=\"submitForm()\"></dx-button>\r\n</ng-container>\r\n", styles: [":host{padding:12px 24px 20px}:host dx-validation-group{display:flex;flex-flow:column nowrap}:host dx-validation-group .dx-field{top:16px}:host dx-validation-group .dx-field .dx-field-value .dx-toast-content{padding:4px 8px}\n"] }]
|
|
@@ -2709,6 +2791,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
2709
2791
|
type: Output
|
|
2710
2792
|
}], submitCallback: [{
|
|
2711
2793
|
type: Output
|
|
2794
|
+
}], _validatorGroupName: [{
|
|
2795
|
+
type: HostBinding,
|
|
2796
|
+
args: ['attr.validator-group-name']
|
|
2712
2797
|
}] } });
|
|
2713
2798
|
|
|
2714
2799
|
class InstanceLinkTemplateComponent {
|
|
@@ -2913,6 +2998,13 @@ class DataGridComponent {
|
|
|
2913
2998
|
$event.editorOptions.onEnterKey = (e) => {
|
|
2914
2999
|
e.component.blur();
|
|
2915
3000
|
};
|
|
3001
|
+
$event.editorOptions.onPaste = (e) => {
|
|
3002
|
+
const inputElement = e.element.querySelector('input');
|
|
3003
|
+
setTimeout(() => {
|
|
3004
|
+
var _a;
|
|
3005
|
+
inputElement.value = (_a = inputElement.value) === null || _a === void 0 ? void 0 : _a.trim();
|
|
3006
|
+
});
|
|
3007
|
+
};
|
|
2916
3008
|
}
|
|
2917
3009
|
this.onEditorPreparing.emit($event);
|
|
2918
3010
|
}
|
|
@@ -3230,21 +3322,24 @@ class DynamicParamsComponent {
|
|
|
3230
3322
|
this.multipleRow = false;
|
|
3231
3323
|
this.keyPlaceholder = '参数名';
|
|
3232
3324
|
this.valuePlaceholder = '参数值';
|
|
3325
|
+
this.paramsChange = new EventEmitter();
|
|
3233
3326
|
this.required = false;
|
|
3234
3327
|
this.readonly = false;
|
|
3235
3328
|
}
|
|
3236
3329
|
add() {
|
|
3237
3330
|
this.params.push({ name: '', value: '' });
|
|
3331
|
+
this.paramsChange.emit(this.params);
|
|
3238
3332
|
}
|
|
3239
3333
|
delete(index) {
|
|
3240
3334
|
this.params.splice(index, 1);
|
|
3335
|
+
this.paramsChange.emit(this.params);
|
|
3241
3336
|
}
|
|
3242
3337
|
}
|
|
3243
3338
|
DynamicParamsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DynamicParamsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3244
|
-
DynamicParamsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DynamicParamsComponent, selector: "rs-dynamic-params", inputs: { label: "label", showHelp: "showHelp", multipleRow: "multipleRow", keyPlaceholder: "keyPlaceholder", valuePlaceholder: "valuePlaceholder", params: "params", required: "required", readonly: "readonly" }, queries: [{ propertyName: "tooltipContentTemplate", first: true, predicate: TooltipContentTemplateDirective, descendants: true }], ngImport: i0, template: "<div class=\"dx-field\">\n <div class=\"dx-field-label\">\n <span>{{ label }}</span>\n <span *ngIf=\"required\" class=\"required-mark\"> *</span>\n <i *ngIf=\"showHelp\" #dynamicParamsSpan class=\"coast-icon-help cursor-pointer\">\n <dx-tooltip [target]=\"dynamicParamsSpan\"\n [position]=\"'top'\"\n [showEvent]=\"'mouseover'\"\n [hideEvent]=\"'mouseout'\">\n <div *dxTemplate=\"let data of 'content'\"\n style=\"display: flex; flex-flow: column nowrap;align-items: flex-start;\">\n <ng-container [ngTemplateOutlet]=\"tooltipContentTemplate.templateRef\"></ng-container>\n </div>\n </dx-tooltip>\n </i>\n <dx-button type=\"default\" stylingMode=\"text\" icon=\"coast-icon coast-icon-add\" (onClick)=\"add()\"\n [disabled]=\"readonly\"></dx-button>\n </div>\n <div class=\"dx-field-value\">\n <div *ngFor=\"let param of params; let index = index\" class=\"param\">\n <div class=\"param-entry\" [ngStyle]=\" { flexDirection : multipleRow ? 'column' : 'row' } \">\n <dx-text-box [placeholder]=\"keyPlaceholder\" [(value)]=\"param.name\" [disabled]=\"readonly\"></dx-text-box>\n <dx-text-box [placeholder]=\"valuePlaceholder\" [(value)]=\"param.value\" [disabled]=\"readonly\"></dx-text-box>\n </div>\n <div class=\"param-operation\">\n <dx-button type=\"danger\" stylingMode=\"text\" icon=\"coast-icon coast-icon-close\"\n (onClick)=\"delete(index)\" [disabled]=\"readonly\"></dx-button>\n </div>\n </div>\n </div>\n</div>\n", styles: [":host .dx-field .dx-field-value .param{margin-bottom:4px;display:flex;flex-flow:row nowrap}:host .dx-field .dx-field-value .param .param-entry{flex:1;display:flex;flex-wrap:nowrap}:host .dx-field .dx-field-value .param .param-entry dx-text-box{flex:1}:host .dx-field .dx-field-value .param .param-operation{flex:none;display:flex;flex-flow:row nowrap}:host .dx-field .dx-field-value .param .param-operation dx-button{flex:none}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2$2.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i3.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }, { kind: "component", type: i7.DxTextBoxComponent, selector: "dx-text-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "isDirty", "isValid", "label", "labelMode", "mask", "maskChar", "maskInvalidMessage", "maskRules", "maxLength", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showMaskMode", "spellcheck", "stylingMode", "tabIndex", "text", "useMaskedValue", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isDirtyChange", "isValidChange", "labelChange", "labelModeChange", "maskChange", "maskCharChange", "maskInvalidMessageChange", "maskRulesChange", "maxLengthChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showMaskModeChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useMaskedValueChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "component", type: i5$2.DxTooltipComponent, selector: "dx-tooltip", inputs: ["animation", "closeOnOutsideClick", "container", "contentTemplate", "copyRootClassesToWrapper", "deferRendering", "disabled", "elementAttr", "height", "hideEvent", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showEvent", "target", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "disabledChange", "elementAttrChange", "heightChange", "hideEventChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showEventChange", "targetChange", "visibleChange", "widthChange", "wrapperAttrChange"] }] });
|
|
3339
|
+
DynamicParamsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DynamicParamsComponent, selector: "rs-dynamic-params", inputs: { label: "label", showHelp: "showHelp", multipleRow: "multipleRow", keyPlaceholder: "keyPlaceholder", valuePlaceholder: "valuePlaceholder", params: "params", required: "required", readonly: "readonly" }, outputs: { paramsChange: "paramsChange" }, queries: [{ propertyName: "tooltipContentTemplate", first: true, predicate: TooltipContentTemplateDirective, descendants: true }], ngImport: i0, template: "<div class=\"dx-field\">\n <div class=\"dx-field-label\">\n <span>{{ label }}</span>\n <span *ngIf=\"required\" class=\"required-mark\"> *</span>\n <i *ngIf=\"showHelp\" #dynamicParamsSpan class=\"coast-icon-help cursor-pointer\">\n <dx-tooltip [target]=\"dynamicParamsSpan\"\n [position]=\"'top'\"\n [showEvent]=\"'mouseover'\"\n [hideEvent]=\"'mouseout'\">\n <div *dxTemplate=\"let data of 'content'\"\n style=\"display: flex; flex-flow: column nowrap;align-items: flex-start;\">\n <ng-container [ngTemplateOutlet]=\"tooltipContentTemplate.templateRef\"></ng-container>\n </div>\n </dx-tooltip>\n </i>\n <dx-button type=\"default\" stylingMode=\"text\" icon=\"coast-icon coast-icon-add\" (onClick)=\"add()\"\n [disabled]=\"readonly\"></dx-button>\n </div>\n <div class=\"dx-field-value\">\n <div *ngFor=\"let param of params; let index = index\" class=\"param\">\n <div class=\"param-entry\" [ngStyle]=\" { flexDirection : multipleRow ? 'column' : 'row' } \">\n <dx-text-box [placeholder]=\"keyPlaceholder\" [(value)]=\"param.name\" (onValueChanged)=\"paramsChange.emit(params)\"\n [disabled]=\"readonly\"></dx-text-box>\n <dx-text-box [placeholder]=\"valuePlaceholder\" [(value)]=\"param.value\"\n (onValueChanged)=\"paramsChange.emit(params)\" [disabled]=\"readonly\"></dx-text-box>\n </div>\n <div class=\"param-operation\">\n <dx-button type=\"danger\" stylingMode=\"text\" icon=\"coast-icon coast-icon-close\"\n (onClick)=\"delete(index)\" [disabled]=\"readonly\"></dx-button>\n </div>\n </div>\n </div>\n</div>\n", styles: [":host .dx-field .dx-field-value .param{margin-bottom:4px;display:flex;flex-flow:row nowrap}:host .dx-field .dx-field-value .param .param-entry{flex:1;display:flex;flex-wrap:nowrap}:host .dx-field .dx-field-value .param .param-entry dx-text-box{flex:1}:host .dx-field .dx-field-value .param .param-operation{flex:none;display:flex;flex-flow:row nowrap}:host .dx-field .dx-field-value .param .param-operation dx-button{flex:none}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2$2.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i3.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }, { kind: "component", type: i7.DxTextBoxComponent, selector: "dx-text-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "isDirty", "isValid", "label", "labelMode", "mask", "maskChar", "maskInvalidMessage", "maskRules", "maxLength", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showMaskMode", "spellcheck", "stylingMode", "tabIndex", "text", "useMaskedValue", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isDirtyChange", "isValidChange", "labelChange", "labelModeChange", "maskChange", "maskCharChange", "maskInvalidMessageChange", "maskRulesChange", "maxLengthChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showMaskModeChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useMaskedValueChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "component", type: i5$2.DxTooltipComponent, selector: "dx-tooltip", inputs: ["animation", "closeOnOutsideClick", "container", "contentTemplate", "copyRootClassesToWrapper", "deferRendering", "disabled", "elementAttr", "height", "hideEvent", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showEvent", "target", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "disabledChange", "elementAttrChange", "heightChange", "hideEventChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showEventChange", "targetChange", "visibleChange", "widthChange", "wrapperAttrChange"] }] });
|
|
3245
3340
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DynamicParamsComponent, decorators: [{
|
|
3246
3341
|
type: Component,
|
|
3247
|
-
args: [{ selector: 'rs-dynamic-params', template: "<div class=\"dx-field\">\n <div class=\"dx-field-label\">\n <span>{{ label }}</span>\n <span *ngIf=\"required\" class=\"required-mark\"> *</span>\n <i *ngIf=\"showHelp\" #dynamicParamsSpan class=\"coast-icon-help cursor-pointer\">\n <dx-tooltip [target]=\"dynamicParamsSpan\"\n [position]=\"'top'\"\n [showEvent]=\"'mouseover'\"\n [hideEvent]=\"'mouseout'\">\n <div *dxTemplate=\"let data of 'content'\"\n style=\"display: flex; flex-flow: column nowrap;align-items: flex-start;\">\n <ng-container [ngTemplateOutlet]=\"tooltipContentTemplate.templateRef\"></ng-container>\n </div>\n </dx-tooltip>\n </i>\n <dx-button type=\"default\" stylingMode=\"text\" icon=\"coast-icon coast-icon-add\" (onClick)=\"add()\"\n [disabled]=\"readonly\"></dx-button>\n </div>\n <div class=\"dx-field-value\">\n <div *ngFor=\"let param of params; let index = index\" class=\"param\">\n <div class=\"param-entry\" [ngStyle]=\" { flexDirection : multipleRow ? 'column' : 'row' } \">\n <dx-text-box [placeholder]=\"keyPlaceholder\" [(value)]=\"param.name\" [disabled]=\"readonly\"></dx-text-box>\n <dx-text-box [placeholder]=\"valuePlaceholder\" [(value)]=\"param.value\" [disabled]=\"readonly\"></dx-text-box>\n </div>\n <div class=\"param-operation\">\n <dx-button type=\"danger\" stylingMode=\"text\" icon=\"coast-icon coast-icon-close\"\n (onClick)=\"delete(index)\" [disabled]=\"readonly\"></dx-button>\n </div>\n </div>\n </div>\n</div>\n", styles: [":host .dx-field .dx-field-value .param{margin-bottom:4px;display:flex;flex-flow:row nowrap}:host .dx-field .dx-field-value .param .param-entry{flex:1;display:flex;flex-wrap:nowrap}:host .dx-field .dx-field-value .param .param-entry dx-text-box{flex:1}:host .dx-field .dx-field-value .param .param-operation{flex:none;display:flex;flex-flow:row nowrap}:host .dx-field .dx-field-value .param .param-operation dx-button{flex:none}\n"] }]
|
|
3342
|
+
args: [{ selector: 'rs-dynamic-params', template: "<div class=\"dx-field\">\n <div class=\"dx-field-label\">\n <span>{{ label }}</span>\n <span *ngIf=\"required\" class=\"required-mark\"> *</span>\n <i *ngIf=\"showHelp\" #dynamicParamsSpan class=\"coast-icon-help cursor-pointer\">\n <dx-tooltip [target]=\"dynamicParamsSpan\"\n [position]=\"'top'\"\n [showEvent]=\"'mouseover'\"\n [hideEvent]=\"'mouseout'\">\n <div *dxTemplate=\"let data of 'content'\"\n style=\"display: flex; flex-flow: column nowrap;align-items: flex-start;\">\n <ng-container [ngTemplateOutlet]=\"tooltipContentTemplate.templateRef\"></ng-container>\n </div>\n </dx-tooltip>\n </i>\n <dx-button type=\"default\" stylingMode=\"text\" icon=\"coast-icon coast-icon-add\" (onClick)=\"add()\"\n [disabled]=\"readonly\"></dx-button>\n </div>\n <div class=\"dx-field-value\">\n <div *ngFor=\"let param of params; let index = index\" class=\"param\">\n <div class=\"param-entry\" [ngStyle]=\" { flexDirection : multipleRow ? 'column' : 'row' } \">\n <dx-text-box [placeholder]=\"keyPlaceholder\" [(value)]=\"param.name\" (onValueChanged)=\"paramsChange.emit(params)\"\n [disabled]=\"readonly\"></dx-text-box>\n <dx-text-box [placeholder]=\"valuePlaceholder\" [(value)]=\"param.value\"\n (onValueChanged)=\"paramsChange.emit(params)\" [disabled]=\"readonly\"></dx-text-box>\n </div>\n <div class=\"param-operation\">\n <dx-button type=\"danger\" stylingMode=\"text\" icon=\"coast-icon coast-icon-close\"\n (onClick)=\"delete(index)\" [disabled]=\"readonly\"></dx-button>\n </div>\n </div>\n </div>\n</div>\n", styles: [":host .dx-field .dx-field-value .param{margin-bottom:4px;display:flex;flex-flow:row nowrap}:host .dx-field .dx-field-value .param .param-entry{flex:1;display:flex;flex-wrap:nowrap}:host .dx-field .dx-field-value .param .param-entry dx-text-box{flex:1}:host .dx-field .dx-field-value .param .param-operation{flex:none;display:flex;flex-flow:row nowrap}:host .dx-field .dx-field-value .param .param-operation dx-button{flex:none}\n"] }]
|
|
3248
3343
|
}], propDecorators: { label: [{
|
|
3249
3344
|
type: Input
|
|
3250
3345
|
}], showHelp: [{
|
|
@@ -3257,6 +3352,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
3257
3352
|
type: Input
|
|
3258
3353
|
}], params: [{
|
|
3259
3354
|
type: Input
|
|
3355
|
+
}], paramsChange: [{
|
|
3356
|
+
type: Output
|
|
3260
3357
|
}], required: [{
|
|
3261
3358
|
type: Input
|
|
3262
3359
|
}], readonly: [{
|
|
@@ -3939,5 +4036,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
3939
4036
|
* Generated bundle index. Do not edit.
|
|
3940
4037
|
*/
|
|
3941
4038
|
|
|
3942
|
-
export { BoxContainerComponent, BoxContainerModule, CamundaBpmnEditorComponent, CamundaBpmnEditorModule, CamundaBpmnViewerComponent, CamundaBpmnViewerModule, CellComponentBase, CellConfigBase, ChangeFilter, CodeEditorComponent, CodeEditorModule, CustomTemplateDirective, DataGridComponent, DataGridFactory, DataGridModule, DataGridService, DrawerComponent, DrawerModule, DrawerService, DynamicParamsComponent, DynamicParamsModule, FieldSelectorComponent, FormComponent, FormItemComponentBase, FormItemConfigBase, FormModule, FormService, FullscreenDirective, IconSelectorComponent, IconSelectorModule, ItemConfigComponent, ItemStyleComponent, ModalComponent, ModalComponentBase, ModalConfigBase, ModalModule, ModalService, PageItemComponentBase, PageItemConfigBase, PdfViewerComponent, PluginManager, RowButtonsTemplateDirective, TooltipContentTemplateDirective, WebsocketModule, WebsocketService, deepClone, download_file, file_type_icon, filename_from_disposition, format_file_size, localeSortMethod, notify_error, notify_success, notify_warning, openBrowserTab, support_preview_ext, validate, validate_group, validate_group_by_name };
|
|
4039
|
+
export { BoxContainerComponent, BoxContainerModule, CamundaBpmnEditorComponent, CamundaBpmnEditorModule, CamundaBpmnViewerComponent, CamundaBpmnViewerModule, CellComponentBase, CellConfigBase, ChangeFilter, CodeEditorComponent, CodeEditorModule, CustomTemplateDirective, DataGridComponent, DataGridFactory, DataGridModule, DataGridService, DrawerComponent, DrawerModule, DrawerService, DynamicParamsComponent, DynamicParamsModule, FieldSelectorComponent, FormComponent, FormItemComponentBase, FormItemConfigBase, FormModule, FormService, FullscreenDirective, IconSelectorComponent, IconSelectorModule, ItemConfigComponent, ItemStyleComponent, ModalComponent, ModalComponentBase, ModalConfigBase, ModalModule, ModalService, PageItemComponentBase, PageItemConfigBase, PdfViewerComponent, PluginManager, RowButtonsTemplateDirective, TooltipContentTemplateDirective, WebsocketModule, WebsocketService, deepClone, download_file, evaluateFilter, file_type_icon, filename_from_disposition, format_file_size, localeSortMethod, notify_error, notify_success, notify_warning, openBrowserTab, support_preview_ext, validate, validate_group, validate_group_by_name };
|
|
3943
4040
|
//# sourceMappingURL=ngx-rs-ant.mjs.map
|