reneco-advanced-input-module 0.0.1 → 0.0.3
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/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/ocr-file-uploader.voice-input-module.entry.cjs.js.map +1 -0
- package/dist/cjs/ocr-file-uploader_2.cjs.entry.js +4486 -0
- package/dist/cjs/ocr-file-uploader_2.cjs.entry.js.map +1 -0
- package/dist/cjs/voice-input-module.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +8 -2
- package/dist/collection/components/voice-input-module/voice-input-module.css +76 -0
- package/dist/collection/components/voice-input-module/voice-input-module.js +218 -72
- package/dist/collection/components/voice-input-module/voice-input-module.js.map +1 -1
- package/dist/collection/services/llm.service.js +2 -2
- package/dist/collection/services/llm.service.js.map +1 -1
- package/dist/collection/services/speech-to-text.service.js +2 -4
- package/dist/collection/services/speech-to-text.service.js.map +1 -1
- package/dist/collection/utils/schema-converter.js +1 -1
- package/dist/collection/utils/schema-converter.js.map +1 -1
- package/dist/components/ocr-file-uploader.js +9 -0
- package/dist/components/ocr-file-uploader.js.map +1 -0
- package/dist/components/{file-uploader2.js → ocr-file-uploader2.js} +16 -12
- package/dist/components/ocr-file-uploader2.js.map +1 -0
- package/dist/components/voice-input-module.js +3257 -93
- package/dist/components/voice-input-module.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/ocr-file-uploader.voice-input-module.entry.js.map +1 -0
- package/dist/esm/ocr-file-uploader_2.entry.js +4483 -0
- package/dist/esm/ocr-file-uploader_2.entry.js.map +1 -0
- package/dist/esm/voice-input-module.js +1 -1
- package/dist/types/components/voice-input-module/voice-input-module.d.ts +9 -1
- package/dist/types/components.d.ts +8 -31
- package/dist/types/services/speech-to-text.service.d.ts +1 -1
- package/dist/voice-input-module/ocr-file-uploader.voice-input-module.entry.esm.js.map +1 -0
- package/dist/voice-input-module/p-37de1da2.entry.js +3 -0
- package/dist/voice-input-module/p-37de1da2.entry.js.map +1 -0
- package/dist/voice-input-module/voice-input-module.esm.js +1 -1
- package/loader/cdn.js +1 -0
- package/loader/index.cjs.js +1 -0
- package/loader/index.d.ts +24 -0
- package/loader/index.es2017.js +1 -0
- package/loader/index.js +2 -0
- package/package.json +7 -3
- package/www/build/index.esm.js +2 -0
- package/www/build/index.esm.js.map +1 -0
- package/www/build/loader.esm.js.map +1 -0
- package/www/build/ocr-file-uploader.voice-input-module.entry.esm.js.map +1 -0
- package/www/build/p-37de1da2.entry.js +3 -0
- package/www/build/p-37de1da2.entry.js.map +1 -0
- package/www/build/p-6438474d.js +2 -0
- package/www/build/p-DQuL1Twl.js +2 -0
- package/www/build/p-DQuL1Twl.js.map +1 -0
- package/www/build/p-jmc2yzBp.js +3 -0
- package/www/build/p-jmc2yzBp.js.map +1 -0
- package/www/build/voice-input-module.esm.js +2 -0
- package/www/build/voice-input-module.esm.js.map +1 -0
- package/www/build/voice-input-module.js +33 -0
- package/www/host.config.json +15 -0
- package/www/index.html +1662 -0
- package/.editorconfig +0 -15
- package/.prettierrc.json +0 -13
- package/api-key-inject.js +0 -46
- package/dist/cjs/file-uploader.voice-input-module.entry.cjs.js.map +0 -1
- package/dist/cjs/file-uploader_2.cjs.entry.js +0 -1319
- package/dist/cjs/file-uploader_2.cjs.entry.js.map +0 -1
- package/dist/collection/components/file-uploader/file-uploader.css +0 -26
- package/dist/collection/components/file-uploader/file-uploader.js +0 -130
- package/dist/collection/components/file-uploader/file-uploader.js.map +0 -1
- package/dist/components/file-uploader.d.ts +0 -11
- package/dist/components/file-uploader.js +0 -9
- package/dist/components/file-uploader.js.map +0 -1
- package/dist/components/file-uploader2.js.map +0 -1
- package/dist/esm/file-uploader.voice-input-module.entry.js.map +0 -1
- package/dist/esm/file-uploader_2.entry.js +0 -1316
- package/dist/esm/file-uploader_2.entry.js.map +0 -1
- package/dist/types/components/file-uploader/file-uploader.d.ts +0 -8
- package/dist/voice-input-module/file-uploader.voice-input-module.entry.esm.js.map +0 -1
- package/dist/voice-input-module/p-7b4f33ba.entry.js +0 -2
- package/dist/voice-input-module/p-7b4f33ba.entry.js.map +0 -1
- package/env-config.js +0 -4
- package/inject-env.js +0 -20
- package/src/components/file-uploader/file-uploader.css +0 -26
- package/src/components/file-uploader/file-uploader.tsx +0 -100
- package/src/components/file-uploader/readme.md +0 -31
- package/src/components/voice-input-module/readme.md +0 -114
- package/src/components/voice-input-module/voice-input-module.css +0 -251
- package/src/components/voice-input-module/voice-input-module.tsx +0 -731
- package/src/components.d.ts +0 -158
- package/src/index.html +0 -663
- package/src/index.ts +0 -12
- package/src/services/audio-recorder.service.ts +0 -74
- package/src/services/llm.service.ts +0 -221
- package/src/services/speech-to-text.service.ts +0 -72
- package/src/types/form-schema.types.ts +0 -78
- package/src/types/service-providers.types.ts +0 -22
- package/src/utils/schema-converter.ts +0 -494
- package/stencil.config.ts +0 -24
- package/tsconfig.json +0 -30
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-converter.js","sourceRoot":"","sources":["../../src/utils/schema-converter.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,eAAe;IAC1B;;OAEG;IACH,MAAM,CAAC,sBAAsB,CAAC,OAAe;QAC3C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAE3D,IAAI,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACxC,CAAC;YAED,MAAM,MAAM,GAAe;gBACzB,MAAM,EAAE,EAAE;aACX,CAAC;YAEF,qCAAqC;YACrC,MAAM,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YACjD,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,CAAC,KAAK,GAAG,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC;gBAC9D,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC;YAC5E,CAAC;YAED,uBAAuB;YACvB,MAAM,MAAM,GAAG,MAAM,CAAC,gBAAgB,CAAC,yBAAyB,CAAC,CAAC;YAClE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACrB,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBACxC,IAAI,CAAC,IAAI;oBAAE,OAAO;gBAElB,MAAM,KAAK,GAAc;oBACvB,IAAI,EAAE,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;oBAC9F,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,IAAI;oBAC/E,WAAW,EAAE,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,SAAS;oBAC3D,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC;oBACxC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,SAAS;iBAClD,CAAC;gBAEF,wBAAwB;gBACxB,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,QAAQ,EAAE,CAAC;oBAC7C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CACxE,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CACzD,CAAC;oBACF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACvB,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;oBAC1B,CAAC;gBACH,CAAC;gBAED,+BAA+B;gBAC/B,MAAM,GAAG,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBACtC,MAAM,GAAG,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBACtC,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;gBAE9C,IAAI,GAAG;oBAAE,KAAK,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;gBACrC,IAAI,GAAG;oBAAE,KAAK,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;gBACrC,IAAI,OAAO;oBAAE,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;gBAErC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;YAC9B,CAAC,CAAC,CAAC;YAEH,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,kCAAkC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,sBAAsB,CAAC,QAAoB;QAChD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;YACjE,MAAM,IAAI,GAAG,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAEvC,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACnB,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC7C,CAAC;YACD,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;gBACzB,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;YACzD,CAAC;YAED,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE;;gBAC7D,4CAA4C;gBAC5C,MAAM,aAAa,GAAI,QAAgB,CAAC,SAAS,CAAC,CAAC;gBACnD,MAAM,gBAAgB,mCACjB,KAAK,KACR,OAAO,EAAE,MAAA,KAAK,CAAC,OAAO,mCAAI,aAAa,CAAC,6BAA6B;mBACtE,CAAC;gBAEF,MAAM,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;gBAC9E,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAEtB,MAAM,UAAU,GAAG,IAAI,aAAa,EAAE,CAAC;YACvC,OAAO,UAAU,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,kCAAkC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,0BAA0B,CAAC,OAAe,EAAE,IAAmB;QAC5E,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,QAAQ;gBACX,OAAO,QAAQ,CAAC;YAClB,KAAK,UAAU;gBACb,OAAO,QAAQ,CAAC;YAClB,KAAK,OAAO;gBACV,QAAQ,IAAI,EAAE,CAAC;oBACb,KAAK,QAAQ,CAAC;oBACd,KAAK,OAAO;wBACV,OAAO,QAAQ,CAAC;oBAClB,KAAK,MAAM,CAAC;oBACZ,KAAK,gBAAgB,CAAC;oBACtB,KAAK,MAAM;wBACT,OAAO,MAAM,CAAC;oBAChB,KAAK,UAAU;wBACb,OAAO,SAAS,CAAC;oBACnB;wBACE,OAAO,QAAQ,CAAC;gBACpB,CAAC;YACH;gBACE,OAAO,QAAQ,CAAC;QACpB,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,sBAAsB,CAAC,GAAa,EAAE,SAAiB,EAAE,KAAgB;QACtF,IAAI,OAAgB,CAAC;QAErB,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,QAAQ;gBACX,OAAO,GAAG,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACtC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBAClB,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;wBAC7B,MAAM,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;wBAClD,aAAa,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;wBAC5C,aAAa,CAAC,WAAW,GAAG,MAAM,CAAC;wBACnC,+CAA+C;wBAC/C,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;4BAC5D,aAAa,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;wBACjD,CAAC;wBACD,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;oBACrC,CAAC,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM;YAER,KAAK,SAAS;gBACZ,OAAO,GAAG,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBACrC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;gBACzC,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;oBACvD,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;gBAC1C,CAAC;gBACD,MAAM;YAER,KAAK,QAAQ;gBACX,OAAO,GAAG,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBACrC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACvC,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS;oBAAE,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC/E,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS;oBAAE,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC/E,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;oBAAE,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACzF,MAAM;YAER,KAAK,MAAM;gBACT,OAAO,GAAG,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBACrC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBACrC,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;oBAAE,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACzF,MAAM;YAER,SAAS,qBAAqB;gBAC5B,OAAO,GAAG,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBACrC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBACrC,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;oBAAE,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7F,CAAC;QAED,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACxC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAE3C,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACtB,OAAO,CAAC,YAAY,CAAC,aAAa,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACjD,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAGD;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAe,EAAE,wBAAgC,kBAAkB,EAAE,OAAkB,IAAI;;QACvH,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAE3D,IAAI,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACxC,CAAC;YAED,iCAAiC;YACjC,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAE7D,MAAM,MAAM,GAAG,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YACjD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAErE,MAAM,MAAM,GAAyB;gBACnC,MAAM,EAAE,EAAE;aACX,CAAC;YAEF,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACzC,gBAAgB;gBAChB,MAAM,IAAI,GAAG,MAAA,MAAA,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,0CAAE,WAAW,0CAAE,IAAI,EAAE,CAAC;gBACtE,IAAI,CAAC,IAAI;oBAAE,OAAO;gBAElB,MAAM,QAAQ,GAAG,MAAA,MAAA,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,0CAAE,WAAW,0CAAE,IAAI,EAAE,CAAC;gBACxE,MAAM,YAAY,GAAG,MAAA,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,0CAAE,WAAW,CAAC;gBACxE,MAAM,WAAW,GAAG,CAAA,MAAA,MAAA,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,0CAAE,WAAW,0CAAE,IAAI,GAAG,WAAW,EAAE,KAAI,MAAM,CAAC;gBAClG,MAAM,SAAS,GAAG,WAAW,KAAK,MAAM,CAAC;gBAEzC,iBAAiB;gBACjB,MAAM,QAAQ,GAAG,MAAA,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,0CAAE,WAAW,CAAC;gBAC1D,MAAM,gBAAgB,GAAG,MAAA,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,0CAAE,WAAW,CAAC;gBAC1E,MAAM,gBAAgB,GAAG,MAAA,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,0CAAE,WAAW,CAAC;gBAC1E,MAAM,gBAAgB,GAAG,MAAA,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,0CAAE,WAAW,CAAC;gBAC1E,MAAM,YAAY,GAAG,MAAA,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,0CAAE,WAAW,CAAC;gBAClE,MAAM,eAAe,GAAG,MAAA,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,0CAAE,WAAW,CAAC;gBACxE,MAAM,gBAAgB,GAAG,MAAA,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,0CAAE,WAAW,CAAC;gBAC1E,MAAM,cAAc,GAAG,MAAA,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,0CAAE,WAAW,CAAC;gBACtE,MAAM,iBAAiB,GAAG,CAAA,MAAA,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,0CAAE,WAAW,KAAI,SAAS,CAAC;gBACzF,MAAM,wBAAwB,GAAG,MAAA,OAAO,CAAC,aAAa,CAAC,oBAAoB,CAAC,0CAAE,WAAW,CAAC;gBAC1F,MAAM,mBAAmB,GAAG,MAAA,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,0CAAE,WAAW,CAAC;gBAChF,MAAM,mBAAmB,GAAG,MAAA,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,0CAAE,WAAW,CAAC;gBAChF,MAAM,UAAU,GAAG,MAAA,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,0CAAE,WAAW,CAAC;gBAC9D,MAAM,YAAY,GAAG,MAAA,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,0CAAE,WAAW,CAAC;gBAClE,MAAM,UAAU,GAAG,MAAA,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,0CAAE,WAAW,CAAC;gBAC9D,MAAM,mBAAmB,GAAG,MAAA,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,0CAAE,WAAW,CAAC;gBAChF,MAAM,uBAAuB,GAAG,MAAA,OAAO,CAAC,aAAa,CAAC,mBAAmB,CAAC,0CAAE,WAAW,CAAC;gBAExF,MAAM,KAAK,GAAsB;oBAC/B,IAAI,EAAE,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,CAAC;oBACtD,KAAK,EAAE,eAAe;oBACtB,WAAW,EAAE,QAAQ;oBACrB,QAAQ,EAAE,CAAA,wBAAwB,aAAxB,wBAAwB,uBAAxB,wBAAwB,CAAE,WAAW,EAAE,MAAK,UAAU;oBAChE,OAAO,EAAE,YAAY,IAAI,SAAS;oBAElC,QAAQ,EAAE,iBAAiB;oBAE3B,OAAO,EAAE,SAAS;oBAClB,EAAE,EAAE,QAAQ;oBACZ,UAAU,EAAE,gBAAgB;oBAC5B,UAAU,EAAE,gBAAgB;oBAC5B,UAAU,EAAE,gBAAgB;oBAC5B,MAAM,EAAE,YAAY;oBACpB,SAAS,EAAE,eAAe;oBAC1B,UAAU,EAAE,gBAAgB;oBAC5B,QAAQ,EAAE,cAAc;oBACxB,WAAW,EAAE,iBAAiB;oBAC9B,kBAAkB,EAAE,wBAAwB;oBAC5C,aAAa,EAAE,mBAAmB;oBAClC,aAAa,EAAE,mBAAmB;oBAClC,IAAI,EAAE,UAAU;oBAChB,MAAM,EAAE,YAAY;oBACpB,IAAI,EAAE,UAAU;oBAChB,aAAa,EAAE,mBAAmB;oBAClC,iBAAiB,EAAE,uBAAuB;iBAC3C,CAAC;gBAEF,wBAAwB;gBACxB,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,QAAQ,EAAE,CAAC;oBAC1C,IAAI,CAAC;wBACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,qBAAqB,kCAAkC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,iBAAiB,YAAY,aAAa,IAAI,EAAE,CAAC,CAAC;wBACnN,IAAI,CAAC,QAAQ,CAAC,EAAE;4BAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;wBAE5E,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;wBACnC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;4BACxB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gCAChC,KAAK,EAAE,IAAI,CAAC,EAAE;gCACd,KAAK,EAAE,IAAI,CAAC,WAAW;6BACxB,CAAC,CAAC,CAAC;4BACJ,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCACvB,KAAK,CAAC,aAAa,GAAG,OAAO,CAAC;gCAC9B,+DAA+D;gCAC/D,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;4BACvE,CAAC;wBACH,CAAC;6BAAM,CAAC;4BACN,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,IAAI,CAAC,CAAC;wBACzD,CAAC;oBACH,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAC;oBAC9D,CAAC;gBACH,CAAC;gBAED,IAAI,mBAAmB;oBAAE,KAAK,CAAC,GAAG,GAAG,UAAU,CAAC,mBAAmB,CAAC,CAAC;gBACrE,IAAI,mBAAmB;oBAAE,KAAK,CAAC,GAAG,GAAG,UAAU,CAAC,mBAAmB,CAAC,CAAC;gBACrE,IAAI,UAAU;oBAAE,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC;gBAE3C,qGAAqG;gBACrG,6EAA6E;gBAE7E,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;YAClC,CAAC;YAAA,CAAC;YAEF,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,kCAAkC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,QAAsC;QAC5D,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;YACjE,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAE3C,MAAM,CAAC,OAAO,CAAC,CAAG,QAAgB,CAAC,MAAM,CAAC,CAAC,CAAE,QAAgB,CAAC,MAAM,CAAC,CAAC,CAAE,QAAgB,CAAC,MAAM,CAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE;gBAC9H,MAAM,OAAO,GAAG,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC5C,MAAM,UAAU,GAAI,KAA2B,CAAC;gBAEhD,kDAAkD;gBAClD,6DAA6D;gBAE7D,eAAe;gBACf,MAAM,YAAY,GAAG,GAAG,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;gBACrD,YAAY,CAAC,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC;gBACjD,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;gBAElC,cAAc;gBACd,MAAM,OAAO,GAAG,GAAG,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;gBAC/C,OAAO,CAAC,WAAW,GAAG,UAAU,CAAC,KAAK,IAAI,OAAO,CAAC;gBAClD,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBAE7B,aAAa;gBACb,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;gBAC7C,MAAM,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;gBAC5C,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAE5B,gBAAgB;gBAChB,MAAM,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;gBACvD,aAAa,CAAC,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC;gBAChD,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;gBAEnC,uBAAuB;gBACvB,MAAM,YAAY,GAAG,GAAG,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;gBAC7D,YAAY,CAAC,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC;gBAC7E,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;gBAElC,iBAAiB;gBACjB,MAAM,SAAS,GAAG,GAAG,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;gBACpD,MAAM,OAAO,GAAG,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBAC3C,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,SAAS,EAAE,CAAC;oBACpC,SAAS,CAAC,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACrD,OAAO,CAAC,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACrD,CAAC;qBACI,CAAC;oBACJ,SAAS,CAAC,WAAW,GAAG,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC;oBAC/D,OAAO,CAAC,WAAW,GAAG,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,OAAO,CAAC;gBAC/D,CAAC;gBACD,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;gBAC/B,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBAE7B,YAAY;gBACZ,MAAM,SAAS,GAAG,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;gBAC/C,SAAS,CAAC,WAAW,GAAG,UAAU,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;gBACxE,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;gBAE/B,wDAAwD;gBACxD,MAAM,QAAQ,GAAG,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC7C,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC;gBACzC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAE9B,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACjC,MAAM,QAAQ,GAAG,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBAC7C,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC;oBACxC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAChC,CAAC;gBAED,MAAM,IAAI,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBACrC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,EAAE,CAAC;gBACjC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAE1B,MAAM,UAAU,GAAG,GAAG,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;gBACnD,UAAU,CAAC,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC;gBAC/C,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;gBAEhC,MAAM,UAAU,GAAG,GAAG,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;gBACnD,UAAU,CAAC,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC;gBAC/C,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;gBAEhC,MAAM,UAAU,GAAG,GAAG,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;gBACnD,UAAU,CAAC,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC;gBAC/C,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;gBAEhC,MAAM,UAAU,GAAG,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;gBACjD,UAAU,CAAC,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC;gBAC7C,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;gBAEhC,MAAM,QAAQ,GAAG,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC7C,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC;gBACzC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAE9B,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;gBACzC,MAAM,CAAC,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC;gBACrC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAE5B,MAAM,cAAc,GAAG,GAAG,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;gBAC1D,cAAc,CAAC,WAAW,GAAG,UAAU,CAAC,aAAa,CAAC;gBACtD,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;gBAEpC,MAAM,gBAAgB,GAAG,GAAG,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;gBAChE,gBAAgB,CAAC,WAAW,GAAG,UAAU,CAAC,iBAAiB,CAAC;gBAC5D,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;gBAEtC,MAAM,eAAe,GAAG,GAAG,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;gBAC3D,eAAe,CAAC,WAAW,GAAG,UAAU,CAAC,aAAa,CAAC;gBACvD,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;gBAErC,MAAM,eAAe,GAAG,GAAG,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;gBAC3D,eAAe,CAAC,WAAW,GAAG,UAAU,CAAC,aAAa,CAAC;gBACvD,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;gBAErC,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;gBACzC,MAAM,CAAC,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC;gBACrC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAE5B,wBAAwB;gBACxB,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAExB,MAAM,UAAU,GAAG,IAAI,aAAa,EAAE,CAAC;YACvC,OAAO,UAAU,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,kCAAkC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,wBAAwB,CAAC,WAAmB;QACzD,qDAAqD;QACrD,QAAQ,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC;YAClC,KAAK,SAAS,CAAC;YACf,KAAK,MAAM;gBACT,OAAO,QAAQ,CAAC;YAClB,KAAK,YAAY;gBACf,OAAO,MAAM,CAAC;YAChB,KAAK,iBAAiB,CAAC;YACvB,KAAK,qBAAqB,CAAC;YAC3B,KAAK,YAAY;gBACf,OAAO,QAAQ,CAAC;YAClB,KAAK,UAAU;gBACb,OAAO,UAAU,CAAC,CAAC,wBAAwB;YAC7C,KAAK,QAAQ;gBACX,OAAO,QAAQ,CAAC,CAAC,yCAAyC;YAC5D,KAAK,UAAU;gBACb,OAAO,SAAS,CAAC;YACnB,KAAK,YAAY;gBACf,OAAO,QAAQ,CAAC;YAClB;gBACE,OAAO,QAAQ,CAAC;QACpB,CAAC;IACH,CAAC;CAqBF","sourcesContent":["import { FormSchema, FormField, FormSchemaFieldsOnly, FormSchemaFieldsOnlyExtended, FormFieldExtended } from '../types/form-schema.types';\r\n\r\nexport class SchemaConverter {\r\n /**\r\n * Convert XML form definition to JSON schema\r\n */\r\n static convertXmlToJsonLegacy(xmlForm: string): FormSchema {\r\n try {\r\n const parser = new DOMParser();\r\n const xmlDoc = parser.parseFromString(xmlForm, 'text/xml');\r\n \r\n if (xmlDoc.querySelector('parsererror')) {\r\n throw new Error('Invalid XML format');\r\n }\r\n\r\n const schema: FormSchema = {\r\n schema: {}\r\n };\r\n\r\n // Extract form title and description\r\n const formElement = xmlDoc.querySelector('form');\r\n if (formElement) {\r\n schema.title = formElement.getAttribute('title') || undefined;\r\n schema.description = formElement.getAttribute('description') || undefined;\r\n }\r\n\r\n // Process input fields\r\n const inputs = xmlDoc.querySelectorAll('input, select, textarea');\r\n inputs.forEach(input => {\r\n const name = input.getAttribute('name');\r\n if (!name) return;\r\n\r\n const field: FormField = {\r\n type: this.mapXmlTypeToJsonTypeLegacy(input.tagName.toLowerCase(), input.getAttribute('type')),\r\n title: input.getAttribute('title') || input.getAttribute('placeholder') || name,\r\n description: input.getAttribute('description') || undefined,\r\n required: input.hasAttribute('required'),\r\n default: input.getAttribute('value') || undefined\r\n };\r\n\r\n // Handle select options\r\n if (input.tagName.toLowerCase() === 'select') {\r\n const options = Array.from(input.querySelectorAll('option')).map(option => \r\n option.textContent || option.getAttribute('value') || ''\r\n );\r\n if (options.length > 0) {\r\n field.options = options;\r\n }\r\n }\r\n\r\n // Handle validation attributes\r\n const min = input.getAttribute('min');\r\n const max = input.getAttribute('max');\r\n const pattern = input.getAttribute('pattern');\r\n\r\n if (min) field.min = parseFloat(min);\r\n if (max) field.max = parseFloat(max);\r\n if (pattern) field.pattern = pattern;\r\n\r\n schema.schema[name] = field;\r\n });\r\n\r\n return schema;\r\n } catch (error) {\r\n throw new Error(`XML to JSON conversion failed: ${error.message}`);\r\n }\r\n }\r\n\r\n /**\r\n * Convert JSON schema to XML form definition\r\n */\r\n static convertJsonToXmlLegacy(jsonForm: FormSchema): string {\r\n try {\r\n const doc = document.implementation.createDocument('', '', null);\r\n const form = doc.createElement('form');\r\n \r\n if (jsonForm.title) {\r\n form.setAttribute('title', jsonForm.title);\r\n }\r\n if (jsonForm.description) {\r\n form.setAttribute('description', jsonForm.description);\r\n }\r\n\r\n Object.entries(jsonForm.schema).forEach(([fieldName, field]) => {\r\n // Inject default value from root if present\r\n const valueFromRoot = (jsonForm as any)[fieldName];\r\n const fieldWithDefault = {\r\n ...field,\r\n default: field.default ?? valueFromRoot // field.default has priority\r\n };\r\n\r\n const element = this.createXmlElementLegacy(doc, fieldName, fieldWithDefault);\r\n if (element) {\r\n form.appendChild(element);\r\n }\r\n });\r\n\r\n doc.appendChild(form);\r\n\r\n const serializer = new XMLSerializer();\r\n return serializer.serializeToString(doc);\r\n } catch (error) {\r\n throw new Error(`JSON to XML conversion failed: ${error.message}`);\r\n }\r\n }\r\n\r\n private static mapXmlTypeToJsonTypeLegacy(tagName: string, type: string | null): FormField['type'] {\r\n switch (tagName) {\r\n case 'select':\r\n return 'select';\r\n case 'textarea':\r\n return 'string';\r\n case 'input':\r\n switch (type) {\r\n case 'number':\r\n case 'range':\r\n return 'number';\r\n case 'date':\r\n case 'datetime-local':\r\n case 'time':\r\n return 'date';\r\n case 'checkbox':\r\n return 'boolean';\r\n default:\r\n return 'string';\r\n }\r\n default:\r\n return 'string';\r\n }\r\n }\r\n\r\n private static createXmlElementLegacy(doc: Document, fieldName: string, field: FormField): Element | null {\r\n let element: Element;\r\n\r\n switch (field.type) {\r\n case 'select':\r\n element = doc.createElement('select');\r\n if (field.options) {\r\n field.options.forEach(option => {\r\n const optionElement = doc.createElement('option');\r\n optionElement.setAttribute('value', option);\r\n optionElement.textContent = option;\r\n // Set selected if it matches the default value\r\n if (field.default !== undefined && field.default === option) {\r\n optionElement.setAttribute('selected', 'true');\r\n }\r\n element.appendChild(optionElement);\r\n });\r\n }\r\n break;\r\n\r\n case 'boolean':\r\n element = doc.createElement('input');\r\n element.setAttribute('type', 'checkbox');\r\n if (field.default === true || field.default === 'true') {\r\n element.setAttribute('checked', 'true');\r\n }\r\n break;\r\n\r\n case 'number':\r\n element = doc.createElement('input');\r\n element.setAttribute('type', 'number');\r\n if (field.min !== undefined) element.setAttribute('min', field.min.toString());\r\n if (field.max !== undefined) element.setAttribute('max', field.max.toString());\r\n if (field.default !== undefined) element.setAttribute('value', field.default.toString());\r\n break;\r\n\r\n case 'date':\r\n element = doc.createElement('input');\r\n element.setAttribute('type', 'date');\r\n if (field.default !== undefined) element.setAttribute('value', field.default.toString());\r\n break;\r\n\r\n default: // string, text, etc.\r\n element = doc.createElement('input');\r\n element.setAttribute('type', 'text');\r\n if (field.default !== undefined) element.setAttribute('value', field.default.toString());\r\n }\r\n\r\n element.setAttribute('name', fieldName);\r\n element.setAttribute('title', field.title);\r\n\r\n if (field.description) {\r\n element.setAttribute('description', field.description);\r\n }\r\n if (field.required) {\r\n element.setAttribute('required', 'true');\r\n }\r\n if (field.pattern) {\r\n element.setAttribute('pattern', field.pattern);\r\n }\r\n\r\n return element;\r\n }\r\n\r\n \r\n /**\r\n * Convert new XML form definition to JSON schema\r\n */\r\n static async convertXmlToJson(xmlForm: string, classificationRootURL: string = \"http://localhost\", lang: 'fr'|'en' = 'en'): Promise<FormSchemaFieldsOnly> {\r\n try {\r\n const parser = new DOMParser();\r\n const xmlDoc = parser.parseFromString(xmlForm, 'text/xml');\r\n\r\n if (xmlDoc.querySelector('parsererror')) {\r\n throw new Error('Invalid XML format');\r\n }\r\n\r\n // Root Xforms element (optional)\r\n const xforms = xmlDoc.querySelector('Xforms');\r\n if (!xforms) throw new Error('No Xforms root element found');\r\n\r\n const fields = xforms.querySelectorAll('Fields');\r\n if (fields.length === 0) throw new Error('No Fields elements found');\r\n\r\n const schema: FormSchemaFieldsOnly = {\r\n fields: {}\r\n };\r\n\r\n for (const fieldEl of Array.from(fields)) {\r\n // Read key info\r\n const name = fieldEl.querySelector('SystemName')?.textContent?.trim();\r\n if (!name) return;\r\n\r\n const helpText = fieldEl.querySelector('HelpText')?.textContent?.trim();\r\n const defaultValue = fieldEl.querySelector('DefaultValue')?.textContent;\r\n const enabledText = fieldEl.querySelector('Enabled')?.textContent?.trim().toLowerCase() || 'true';\r\n const isEnabled = enabledText === 'true';\r\n\r\n // keep as memory\r\n const field_ID = fieldEl.querySelector('ID')?.textContent;\r\n const field_TFie_PK_ID = fieldEl.querySelector('TFie_PK_ID')?.textContent;\r\n const field_TVal_PK_ID = fieldEl.querySelector('TVal_PK_ID')?.textContent;\r\n const field_TFIn_PK_ID = fieldEl.querySelector('TFIn_PK_ID')?.textContent;\r\n const field_isForm = fieldEl.querySelector('isForm')?.textContent;\r\n const field_LabelText = fieldEl.querySelector('LabelText')?.textContent;\r\n const field_SystemName = fieldEl.querySelector('SystemName')?.textContent;\r\n const field_CssStyle = fieldEl.querySelector('CssStyle')?.textContent;\r\n const field_ControlType = fieldEl.querySelector('ControlType')?.textContent || 'TextBox';\r\n const field_ValidationRequired = fieldEl.querySelector('ValidationRequired')?.textContent;\r\n const field_ValidationMin = fieldEl.querySelector('ValidationMin')?.textContent;\r\n const field_ValidationMax = fieldEl.querySelector('ValidationMax')?.textContent;\r\n const field_Mask = fieldEl.querySelector('Mask')?.textContent;\r\n const field_TypeId = fieldEl.querySelector('TypeId')?.textContent;\r\n const field_Unit = fieldEl.querySelector('Unit')?.textContent;\r\n const field_TFie_Fullpath = fieldEl.querySelector('TFie_Fullpath')?.textContent;\r\n const field_TVal_FK_Parent_ID = fieldEl.querySelector('TVal_FK_Parent_ID')?.textContent;\r\n\r\n const field: FormFieldExtended = {\r\n type: this.mapControlTypeToJsonType(field_ControlType),\r\n title: field_LabelText,\r\n description: helpText,\r\n required: field_ValidationRequired?.toLowerCase() === 'required',\r\n default: defaultValue || undefined,\r\n\r\n realType: field_ControlType,\r\n\r\n Enabled: isEnabled,\r\n ID: field_ID,\r\n TFie_PK_ID: field_TFie_PK_ID,\r\n TVal_PK_ID: field_TVal_PK_ID,\r\n TFIn_PK_ID: field_TFIn_PK_ID,\r\n isForm: field_isForm,\r\n LabelText: field_LabelText,\r\n SystemName: field_SystemName,\r\n CssStyle: field_CssStyle,\r\n ControlType: field_ControlType,\r\n ValidationRequired: field_ValidationRequired,\r\n ValidationMin: field_ValidationMin,\r\n ValidationMax: field_ValidationMax,\r\n Mask: field_Mask,\r\n TypeId: field_TypeId,\r\n Unit: field_Unit,\r\n TFie_Fullpath: field_TFie_Fullpath,\r\n TVal_FK_Parent_ID: field_TVal_FK_Parent_ID\r\n };\r\n\r\n // Handle select options\r\n if (field.type.toLowerCase() === 'select') {\r\n try {\r\n const response = await fetch(`${classificationRootURL}/api/v1/classification/getList/${field.ControlType.toLowerCase() == 'termpicker' ? \"position\" : \"thesaurus\"}/?StartNodeID=${field_TypeId}&Language=${lang}`);\r\n if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`);\r\n\r\n const data = await response.json();\r\n if (Array.isArray(data)) {\r\n const options = data.map(item => ({\r\n value: item.ID,\r\n label: item.System_Name\r\n }));\r\n if (options.length > 0) {\r\n field.pickerOptions = options;\r\n // TODO on degage les quotes simples temporairement, a corriger\r\n field.options = options.map(option => option.label.replace(\"'\", \"\"));\r\n }\r\n } else {\r\n console.error(\"Unexpected API response format:\", data);\r\n }\r\n } catch (error) {\r\n console.error(\"Error fetching classification data:\", error);\r\n }\r\n }\r\n\r\n if (field_ValidationMin) field.min = parseFloat(field_ValidationMin);\r\n if (field_ValidationMax) field.max = parseFloat(field_ValidationMax);\r\n if (field_Mask) field.pattern = field_Mask;\r\n\r\n // Optional: Add any other fields you want to track, e.g. min, max, pattern (not clearly in your XML)\r\n // You could also add the raw ControlType for round-trip fidelity if you want\r\n\r\n schema.fields[field_ID] = field;\r\n };\r\n\r\n return schema;\r\n } catch (error) {\r\n throw new Error(`XML to JSON conversion failed: ${error.message}`);\r\n }\r\n }\r\n\r\n /**\r\n * Convert JSON schema back to your new XML form definition format\r\n */\r\n static convertJsonToXml(jsonForm: FormSchemaFieldsOnlyExtended): string {\r\n try {\r\n const doc = document.implementation.createDocument('', '', null);\r\n const xforms = doc.createElement('Xforms');\r\n\r\n Object.entries(( (jsonForm as any).schema ? (jsonForm as any).schema : (jsonForm as any).fields )).forEach(([fieldID, field]) => {\r\n const fieldEl = doc.createElement('Fields');\r\n const fieldToUse = (field as FormFieldExtended);\r\n\r\n // Set all subelements based on your XML structure\r\n // ID, PK IDs etc are missing here, so omit or generate dummy\r\n\r\n // <SystemName>\r\n const systemNameEl = doc.createElement('SystemName');\r\n systemNameEl.textContent = fieldToUse.SystemName;\r\n fieldEl.appendChild(systemNameEl);\r\n\r\n // <LabelText>\r\n const labelEl = doc.createElement('LabelText');\r\n labelEl.textContent = fieldToUse.title || fieldID;\r\n fieldEl.appendChild(labelEl);\r\n\r\n // <HelpText>\r\n const helpEl = doc.createElement('HelpText');\r\n helpEl.textContent = fieldToUse.description;\r\n fieldEl.appendChild(helpEl);\r\n\r\n // <ControlType>\r\n const controlTypeEl = doc.createElement('ControlType');\r\n controlTypeEl.textContent = fieldToUse.realType;\r\n fieldEl.appendChild(controlTypeEl);\r\n\r\n // <ValidationRequired>\r\n const validationEl = doc.createElement('ValidationRequired');\r\n validationEl.textContent = fieldToUse.required ? 'Required' : 'Not Required';\r\n fieldEl.appendChild(validationEl);\r\n\r\n // <DefaultValue>\r\n const defaultEl = doc.createElement('DefaultValue');\r\n const valueEl = doc.createElement('Value');\r\n if (jsonForm[fieldID] !== undefined) {\r\n defaultEl.textContent = jsonForm[fieldID].toString();\r\n valueEl.textContent = jsonForm[fieldID].toString();\r\n }\r\n else {\r\n defaultEl.textContent = fieldToUse.default || fieldToUse.value;\r\n valueEl.textContent = fieldToUse.value || fieldToUse.default;\r\n }\r\n fieldEl.appendChild(defaultEl);\r\n fieldEl.appendChild(valueEl);\r\n\r\n // <Enabled>\r\n const enabledEl = doc.createElement('Enabled');\r\n enabledEl.textContent = fieldToUse.Enabled === false ? 'False' : 'True';\r\n fieldEl.appendChild(enabledEl);\r\n\r\n // Add <isForm> Field to distinguish Field or Header etc\r\n const isFormEl = doc.createElement('isForm');\r\n isFormEl.textContent = fieldToUse.isForm;\r\n fieldEl.appendChild(isFormEl);\r\n\r\n if (fieldToUse.type === 'header') {\r\n const headerEl = doc.createElement('Header');\r\n headerEl.textContent = fieldToUse.title;\r\n fieldEl.appendChild(headerEl);\r\n }\r\n \r\n const idEl = doc.createElement('ID');\r\n idEl.textContent = fieldToUse.ID;\r\n fieldEl.appendChild(idEl);\r\n\r\n const tfiePkIdEl = doc.createElement('TFie_PK_ID');\r\n tfiePkIdEl.textContent = fieldToUse.TFie_PK_ID;\r\n fieldEl.appendChild(tfiePkIdEl);\r\n\r\n const tvalPkIdEl = doc.createElement('TVal_PK_ID');\r\n tvalPkIdEl.textContent = fieldToUse.TVal_PK_ID;\r\n fieldEl.appendChild(tvalPkIdEl);\r\n\r\n const tfInPkIdEl = doc.createElement('TFIn_PK_ID');\r\n tfInPkIdEl.textContent = fieldToUse.TFIn_PK_ID;\r\n fieldEl.appendChild(tfInPkIdEl);\r\n\r\n const cssStyleEl = doc.createElement('CssStyle');\r\n cssStyleEl.textContent = fieldToUse.CssStyle;\r\n fieldEl.appendChild(cssStyleEl);\r\n\r\n const typeIdEl = doc.createElement('TypeId');\r\n typeIdEl.textContent = fieldToUse.TypeId;\r\n fieldEl.appendChild(typeIdEl);\r\n\r\n const unitEl = doc.createElement('Unit');\r\n unitEl.textContent = fieldToUse.Unit;\r\n fieldEl.appendChild(unitEl);\r\n\r\n const tfieFullPathEl = doc.createElement('TFie_Fullpath');\r\n tfieFullPathEl.textContent = fieldToUse.TFie_Fullpath;\r\n fieldEl.appendChild(tfieFullPathEl);\r\n\r\n const tvalFkParentIdEl = doc.createElement('TVal_FK_Parent_ID');\r\n tvalFkParentIdEl.textContent = fieldToUse.TVal_FK_Parent_ID;\r\n fieldEl.appendChild(tvalFkParentIdEl);\r\n\r\n const validationMinEl = doc.createElement('ValidationMin');\r\n validationMinEl.textContent = fieldToUse.ValidationMin;\r\n fieldEl.appendChild(validationMinEl);\r\n\r\n const validationMaxEl = doc.createElement('ValidationMax');\r\n validationMaxEl.textContent = fieldToUse.ValidationMax;\r\n fieldEl.appendChild(validationMaxEl);\r\n\r\n const maskEl = doc.createElement('Mask');\r\n maskEl.textContent = fieldToUse.Mask;\r\n fieldEl.appendChild(maskEl);\r\n\r\n // Append to Xforms root\r\n xforms.appendChild(fieldEl);\r\n });\r\n\r\n doc.appendChild(xforms);\r\n\r\n const serializer = new XMLSerializer();\r\n return serializer.serializeToString(doc);\r\n } catch (error) {\r\n throw new Error(`JSON to XML conversion failed: ${error.message}`);\r\n }\r\n }\r\n\r\n private static mapControlTypeToJsonType(controlType: string): FormField['type'] {\r\n // Map your ControlType XML field to JSON field types\r\n switch (controlType.toLowerCase()) {\r\n case 'textbox':\r\n case 'text':\r\n return 'string';\r\n case 'datepicker':\r\n return 'date';\r\n case 'thesauruspicker':\r\n case 'thesauruspicker-ddl':\r\n case 'termpicker':\r\n return 'select';\r\n case 'dbpicker':\r\n return 'dbpicker'; // custom type if needed\r\n case 'header':\r\n return 'header'; // special type to handle header elements\r\n case 'checkbox':\r\n return 'boolean';\r\n case 'realpicker':\r\n return 'number';\r\n default:\r\n return 'string';\r\n }\r\n }\r\n\r\n // private static mapJsonTypeToControlType(type: string): string {\r\n // switch (type.toLowerCase()) {\r\n // case 'string':\r\n // return 'TextBox';\r\n // case 'date':\r\n // return 'DatePicker';\r\n // case 'select':\r\n // return 'ThesaurusPicker';\r\n // case 'dbpicker':\r\n // return 'DBPicker';\r\n // case 'boolean':\r\n // return 'CheckBox';\r\n // case 'header':\r\n // return 'Header';\r\n // default:\r\n // return 'TextBox';\r\n // }\r\n // }\r\n\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"schema-converter.js","sourceRoot":"","sources":["../../src/utils/schema-converter.ts"],"names":[],"mappings":"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","sourcesContent":["import { FormSchema, FormField, FormSchemaFieldsOnly, FormSchemaFieldsOnlyExtended, FormFieldExtended } from '../types/form-schema.types';\r\n\r\nexport class SchemaConverter {\r\n /**\r\n * Convert XML form definition to JSON schema\r\n */\r\n static convertXmlToJsonLegacy(xmlForm: string): FormSchema {\r\n try {\r\n const parser = new DOMParser();\r\n const xmlDoc = parser.parseFromString(xmlForm, 'text/xml');\r\n \r\n if (xmlDoc.querySelector('parsererror')) {\r\n throw new Error('Invalid XML format');\r\n }\r\n\r\n const schema: FormSchema = {\r\n schema: {}\r\n };\r\n\r\n // Extract form title and description\r\n const formElement = xmlDoc.querySelector('form');\r\n if (formElement) {\r\n schema.title = formElement.getAttribute('title') || undefined;\r\n schema.description = formElement.getAttribute('description') || undefined;\r\n }\r\n\r\n // Process input fields\r\n const inputs = xmlDoc.querySelectorAll('input, select, textarea');\r\n inputs.forEach(input => {\r\n const name = input.getAttribute('name');\r\n if (!name) return;\r\n\r\n const field: FormField = {\r\n type: this.mapXmlTypeToJsonTypeLegacy(input.tagName.toLowerCase(), input.getAttribute('type')),\r\n title: input.getAttribute('title') || input.getAttribute('placeholder') || name,\r\n description: input.getAttribute('description') || undefined,\r\n required: input.hasAttribute('required'),\r\n default: input.getAttribute('value') || undefined\r\n };\r\n\r\n // Handle select options\r\n if (input.tagName.toLowerCase() === 'select') {\r\n const options = Array.from(input.querySelectorAll('option')).map(option => \r\n option.textContent || option.getAttribute('value') || ''\r\n );\r\n if (options.length > 0) {\r\n field.options = options;\r\n }\r\n }\r\n\r\n // Handle validation attributes\r\n const min = input.getAttribute('min');\r\n const max = input.getAttribute('max');\r\n const pattern = input.getAttribute('pattern');\r\n\r\n if (min) field.min = parseFloat(min);\r\n if (max) field.max = parseFloat(max);\r\n if (pattern) field.pattern = pattern;\r\n\r\n schema.schema[name] = field;\r\n });\r\n\r\n return schema;\r\n } catch (error) {\r\n throw new Error(`XML to JSON conversion failed: ${error.message}`);\r\n }\r\n }\r\n\r\n /**\r\n * Convert JSON schema to XML form definition\r\n */\r\n static convertJsonToXmlLegacy(jsonForm: FormSchema): string {\r\n try {\r\n const doc = document.implementation.createDocument('', '', null);\r\n const form = doc.createElement('form');\r\n \r\n if (jsonForm.title) {\r\n form.setAttribute('title', jsonForm.title);\r\n }\r\n if (jsonForm.description) {\r\n form.setAttribute('description', jsonForm.description);\r\n }\r\n\r\n Object.entries(jsonForm.schema).forEach(([fieldName, field]) => {\r\n // Inject default value from root if present\r\n const valueFromRoot = (jsonForm as any)[fieldName];\r\n const fieldWithDefault = {\r\n ...field,\r\n default: field.default ?? valueFromRoot // field.default has priority\r\n };\r\n\r\n const element = this.createXmlElementLegacy(doc, fieldName, fieldWithDefault);\r\n if (element) {\r\n form.appendChild(element);\r\n }\r\n });\r\n\r\n doc.appendChild(form);\r\n\r\n const serializer = new XMLSerializer();\r\n return serializer.serializeToString(doc);\r\n } catch (error) {\r\n throw new Error(`JSON to XML conversion failed: ${error.message}`);\r\n }\r\n }\r\n\r\n private static mapXmlTypeToJsonTypeLegacy(tagName: string, type: string | null): FormField['type'] {\r\n switch (tagName) {\r\n case 'select':\r\n return 'select';\r\n case 'textarea':\r\n return 'string';\r\n case 'input':\r\n switch (type) {\r\n case 'number':\r\n case 'range':\r\n return 'number';\r\n case 'date':\r\n case 'datetime-local':\r\n case 'time':\r\n return 'date';\r\n case 'checkbox':\r\n return 'boolean';\r\n default:\r\n return 'string';\r\n }\r\n default:\r\n return 'string';\r\n }\r\n }\r\n\r\n private static createXmlElementLegacy(doc: Document, fieldName: string, field: FormField): Element | null {\r\n let element: Element;\r\n\r\n switch (field.type) {\r\n case 'select':\r\n element = doc.createElement('select');\r\n if (field.options) {\r\n field.options.forEach(option => {\r\n const optionElement = doc.createElement('option');\r\n optionElement.setAttribute('value', option);\r\n optionElement.textContent = option;\r\n // Set selected if it matches the default value\r\n if (field.default !== undefined && field.default === option) {\r\n optionElement.setAttribute('selected', 'true');\r\n }\r\n element.appendChild(optionElement);\r\n });\r\n }\r\n break;\r\n\r\n case 'boolean':\r\n element = doc.createElement('input');\r\n element.setAttribute('type', 'checkbox');\r\n if (field.default === true || field.default === 'true') {\r\n element.setAttribute('checked', 'true');\r\n }\r\n break;\r\n\r\n case 'number':\r\n element = doc.createElement('input');\r\n element.setAttribute('type', 'number');\r\n if (field.min !== undefined) element.setAttribute('min', field.min.toString());\r\n if (field.max !== undefined) element.setAttribute('max', field.max.toString());\r\n if (field.default !== undefined) element.setAttribute('value', field.default.toString());\r\n break;\r\n\r\n case 'date':\r\n element = doc.createElement('input');\r\n element.setAttribute('type', 'date');\r\n if (field.default !== undefined) element.setAttribute('value', field.default.toString());\r\n break;\r\n\r\n default: // string, text, etc.\r\n element = doc.createElement('input');\r\n element.setAttribute('type', 'text');\r\n if (field.default !== undefined) element.setAttribute('value', field.default.toString());\r\n }\r\n\r\n element.setAttribute('name', fieldName);\r\n element.setAttribute('title', field.title);\r\n\r\n if (field.description) {\r\n element.setAttribute('description', field.description);\r\n }\r\n if (field.required) {\r\n element.setAttribute('required', 'true');\r\n }\r\n if (field.pattern) {\r\n element.setAttribute('pattern', field.pattern);\r\n }\r\n\r\n return element;\r\n }\r\n\r\n \r\n /**\r\n * Convert new XML form definition to JSON schema\r\n */\r\n static async convertXmlToJson(xmlForm: string, classificationRootURL: string = \"http://localhost\", lang: 'fr'|'en' = 'en'): Promise<FormSchemaFieldsOnly> {\r\n try {\r\n const parser = new DOMParser();\r\n const xmlDoc = parser.parseFromString(xmlForm, 'text/xml');\r\n\r\n if (xmlDoc.querySelector('parsererror')) {\r\n throw new Error('Invalid XML format');\r\n }\r\n\r\n // Root Xforms element (optional)\r\n const xforms = xmlDoc.querySelector('Xforms');\r\n if (!xforms) throw new Error('No Xforms root element found');\r\n\r\n const fields = xforms.querySelectorAll('Fields');\r\n if (fields.length === 0) throw new Error('No Fields elements found');\r\n\r\n const schema: FormSchemaFieldsOnly = {\r\n fields: {}\r\n };\r\n\r\n for (const fieldEl of Array.from(fields)) {\r\n // Read key info\r\n const name = fieldEl.querySelector('SystemName')?.textContent?.trim();\r\n if (!name) return;\r\n\r\n const helpText = fieldEl.querySelector('HelpText')?.textContent?.trim();\r\n const defaultValue = fieldEl.querySelector('DefaultValue')?.textContent;\r\n const enabledText = fieldEl.querySelector('Enabled')?.textContent?.trim().toLowerCase() || 'true';\r\n const isEnabled = enabledText === 'true';\r\n\r\n // keep as memory\r\n const field_ID = fieldEl.querySelector('ID')?.textContent;\r\n const field_TFie_PK_ID = fieldEl.querySelector('TFie_PK_ID')?.textContent;\r\n const field_TVal_PK_ID = fieldEl.querySelector('TVal_PK_ID')?.textContent;\r\n const field_TFIn_PK_ID = fieldEl.querySelector('TFIn_PK_ID')?.textContent;\r\n const field_isForm = fieldEl.querySelector('isForm')?.textContent;\r\n const field_LabelText = fieldEl.querySelector('LabelText')?.textContent;\r\n const field_SystemName = fieldEl.querySelector('SystemName')?.textContent;\r\n const field_CssStyle = fieldEl.querySelector('CssStyle')?.textContent;\r\n const field_ControlType = fieldEl.querySelector('ControlType')?.textContent || 'TextBox';\r\n const field_ValidationRequired = fieldEl.querySelector('ValidationRequired')?.textContent;\r\n const field_ValidationMin = fieldEl.querySelector('ValidationMin')?.textContent;\r\n const field_ValidationMax = fieldEl.querySelector('ValidationMax')?.textContent;\r\n const field_Mask = fieldEl.querySelector('Mask')?.textContent;\r\n const field_TypeId = fieldEl.querySelector('TypeId')?.textContent;\r\n const field_Unit = fieldEl.querySelector('Unit')?.textContent;\r\n const field_TFie_Fullpath = fieldEl.querySelector('TFie_Fullpath')?.textContent;\r\n const field_TVal_FK_Parent_ID = fieldEl.querySelector('TVal_FK_Parent_ID')?.textContent;\r\n\r\n const field: FormFieldExtended = {\r\n type: this.mapControlTypeToJsonType(field_ControlType),\r\n title: field_LabelText,\r\n description: helpText,\r\n required: field_ValidationRequired?.toLowerCase() === 'required',\r\n default: defaultValue || undefined,\r\n\r\n realType: field_ControlType,\r\n\r\n Enabled: isEnabled,\r\n ID: field_ID,\r\n TFie_PK_ID: field_TFie_PK_ID,\r\n TVal_PK_ID: field_TVal_PK_ID,\r\n TFIn_PK_ID: field_TFIn_PK_ID,\r\n isForm: field_isForm,\r\n LabelText: field_LabelText,\r\n SystemName: field_SystemName,\r\n CssStyle: field_CssStyle,\r\n ControlType: field_ControlType,\r\n ValidationRequired: field_ValidationRequired,\r\n ValidationMin: field_ValidationMin,\r\n ValidationMax: field_ValidationMax,\r\n Mask: field_Mask,\r\n TypeId: field_TypeId,\r\n Unit: field_Unit,\r\n TFie_Fullpath: field_TFie_Fullpath,\r\n TVal_FK_Parent_ID: field_TVal_FK_Parent_ID\r\n };\r\n\r\n // Handle select options\r\n if (field.type.toLowerCase() === 'select') {\r\n try {\r\n const response = await fetch(`${classificationRootURL}/ng/api/v1/classification/getList/${field.ControlType.toLowerCase() == 'termpicker' ? \"Position\" : \"Thesaurus\"}/?StartNodeID=${field_TypeId}`);\r\n if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`);\r\n\r\n const data = await response.json();\r\n if (Array.isArray(data)) {\r\n const options = data.map(item => ({\r\n value: item.ID,\r\n label: item.System_Name\r\n }));\r\n if (options.length > 0) {\r\n field.pickerOptions = options;\r\n // TODO on degage les quotes simples temporairement, a corriger\r\n field.options = options.map(option => option.label.replace(\"'\", \"\"));\r\n }\r\n } else {\r\n console.error(\"Unexpected API response format:\", data);\r\n }\r\n } catch (error) {\r\n console.error(\"Error fetching classification data:\", error);\r\n }\r\n }\r\n\r\n if (field_ValidationMin) field.min = parseFloat(field_ValidationMin);\r\n if (field_ValidationMax) field.max = parseFloat(field_ValidationMax);\r\n if (field_Mask) field.pattern = field_Mask;\r\n\r\n // Optional: Add any other fields you want to track, e.g. min, max, pattern (not clearly in your XML)\r\n // You could also add the raw ControlType for round-trip fidelity if you want\r\n\r\n schema.fields[field_ID] = field;\r\n };\r\n\r\n return schema;\r\n } catch (error) {\r\n throw new Error(`XML to JSON conversion failed: ${error.message}`);\r\n }\r\n }\r\n\r\n /**\r\n * Convert JSON schema back to your new XML form definition format\r\n */\r\n static convertJsonToXml(jsonForm: FormSchemaFieldsOnlyExtended): string {\r\n try {\r\n const doc = document.implementation.createDocument('', '', null);\r\n const xforms = doc.createElement('Xforms');\r\n\r\n Object.entries(( (jsonForm as any).schema ? (jsonForm as any).schema : (jsonForm as any).fields )).forEach(([fieldID, field]) => {\r\n const fieldEl = doc.createElement('Fields');\r\n const fieldToUse = (field as FormFieldExtended);\r\n\r\n // Set all subelements based on your XML structure\r\n // ID, PK IDs etc are missing here, so omit or generate dummy\r\n\r\n // <SystemName>\r\n const systemNameEl = doc.createElement('SystemName');\r\n systemNameEl.textContent = fieldToUse.SystemName;\r\n fieldEl.appendChild(systemNameEl);\r\n\r\n // <LabelText>\r\n const labelEl = doc.createElement('LabelText');\r\n labelEl.textContent = fieldToUse.title || fieldID;\r\n fieldEl.appendChild(labelEl);\r\n\r\n // <HelpText>\r\n const helpEl = doc.createElement('HelpText');\r\n helpEl.textContent = fieldToUse.description;\r\n fieldEl.appendChild(helpEl);\r\n\r\n // <ControlType>\r\n const controlTypeEl = doc.createElement('ControlType');\r\n controlTypeEl.textContent = fieldToUse.realType;\r\n fieldEl.appendChild(controlTypeEl);\r\n\r\n // <ValidationRequired>\r\n const validationEl = doc.createElement('ValidationRequired');\r\n validationEl.textContent = fieldToUse.required ? 'Required' : 'Not Required';\r\n fieldEl.appendChild(validationEl);\r\n\r\n // <DefaultValue>\r\n const defaultEl = doc.createElement('DefaultValue');\r\n const valueEl = doc.createElement('Value');\r\n if (jsonForm[fieldID] !== undefined) {\r\n defaultEl.textContent = jsonForm[fieldID].toString();\r\n valueEl.textContent = jsonForm[fieldID].toString();\r\n }\r\n else {\r\n defaultEl.textContent = fieldToUse.default || fieldToUse.value;\r\n valueEl.textContent = fieldToUse.value || fieldToUse.default;\r\n }\r\n fieldEl.appendChild(defaultEl);\r\n fieldEl.appendChild(valueEl);\r\n\r\n // <Enabled>\r\n const enabledEl = doc.createElement('Enabled');\r\n enabledEl.textContent = fieldToUse.Enabled === false ? 'False' : 'True';\r\n fieldEl.appendChild(enabledEl);\r\n\r\n // Add <isForm> Field to distinguish Field or Header etc\r\n const isFormEl = doc.createElement('isForm');\r\n isFormEl.textContent = fieldToUse.isForm;\r\n fieldEl.appendChild(isFormEl);\r\n\r\n if (fieldToUse.type === 'header') {\r\n const headerEl = doc.createElement('Header');\r\n headerEl.textContent = fieldToUse.title;\r\n fieldEl.appendChild(headerEl);\r\n }\r\n \r\n const idEl = doc.createElement('ID');\r\n idEl.textContent = fieldToUse.ID;\r\n fieldEl.appendChild(idEl);\r\n\r\n const tfiePkIdEl = doc.createElement('TFie_PK_ID');\r\n tfiePkIdEl.textContent = fieldToUse.TFie_PK_ID;\r\n fieldEl.appendChild(tfiePkIdEl);\r\n\r\n const tvalPkIdEl = doc.createElement('TVal_PK_ID');\r\n tvalPkIdEl.textContent = fieldToUse.TVal_PK_ID;\r\n fieldEl.appendChild(tvalPkIdEl);\r\n\r\n const tfInPkIdEl = doc.createElement('TFIn_PK_ID');\r\n tfInPkIdEl.textContent = fieldToUse.TFIn_PK_ID;\r\n fieldEl.appendChild(tfInPkIdEl);\r\n\r\n const cssStyleEl = doc.createElement('CssStyle');\r\n cssStyleEl.textContent = fieldToUse.CssStyle;\r\n fieldEl.appendChild(cssStyleEl);\r\n\r\n const typeIdEl = doc.createElement('TypeId');\r\n typeIdEl.textContent = fieldToUse.TypeId;\r\n fieldEl.appendChild(typeIdEl);\r\n\r\n const unitEl = doc.createElement('Unit');\r\n unitEl.textContent = fieldToUse.Unit;\r\n fieldEl.appendChild(unitEl);\r\n\r\n const tfieFullPathEl = doc.createElement('TFie_Fullpath');\r\n tfieFullPathEl.textContent = fieldToUse.TFie_Fullpath;\r\n fieldEl.appendChild(tfieFullPathEl);\r\n\r\n const tvalFkParentIdEl = doc.createElement('TVal_FK_Parent_ID');\r\n tvalFkParentIdEl.textContent = fieldToUse.TVal_FK_Parent_ID;\r\n fieldEl.appendChild(tvalFkParentIdEl);\r\n\r\n const validationMinEl = doc.createElement('ValidationMin');\r\n validationMinEl.textContent = fieldToUse.ValidationMin;\r\n fieldEl.appendChild(validationMinEl);\r\n\r\n const validationMaxEl = doc.createElement('ValidationMax');\r\n validationMaxEl.textContent = fieldToUse.ValidationMax;\r\n fieldEl.appendChild(validationMaxEl);\r\n\r\n const maskEl = doc.createElement('Mask');\r\n maskEl.textContent = fieldToUse.Mask;\r\n fieldEl.appendChild(maskEl);\r\n\r\n // Append to Xforms root\r\n xforms.appendChild(fieldEl);\r\n });\r\n\r\n doc.appendChild(xforms);\r\n\r\n const serializer = new XMLSerializer();\r\n return serializer.serializeToString(doc);\r\n } catch (error) {\r\n throw new Error(`JSON to XML conversion failed: ${error.message}`);\r\n }\r\n }\r\n\r\n private static mapControlTypeToJsonType(controlType: string): FormField['type'] {\r\n // Map your ControlType XML field to JSON field types\r\n switch (controlType.toLowerCase()) {\r\n case 'textbox':\r\n case 'text':\r\n return 'string';\r\n case 'datepicker':\r\n return 'date';\r\n case 'thesauruspicker':\r\n case 'thesauruspicker-ddl':\r\n case 'termpicker':\r\n return 'select';\r\n case 'dbpicker':\r\n return 'dbpicker'; // custom type if needed\r\n case 'header':\r\n return 'header'; // special type to handle header elements\r\n case 'checkbox':\r\n return 'boolean';\r\n case 'realpicker':\r\n return 'number';\r\n default:\r\n return 'string';\r\n }\r\n }\r\n\r\n // private static mapJsonTypeToControlType(type: string): string {\r\n // switch (type.toLowerCase()) {\r\n // case 'string':\r\n // return 'TextBox';\r\n // case 'date':\r\n // return 'DatePicker';\r\n // case 'select':\r\n // return 'ThesaurusPicker';\r\n // case 'dbpicker':\r\n // return 'DBPicker';\r\n // case 'boolean':\r\n // return 'CheckBox';\r\n // case 'header':\r\n // return 'Header';\r\n // default:\r\n // return 'TextBox';\r\n // }\r\n // }\r\n\r\n}\r\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { O as OcrFileUploader$1, d as defineCustomElement$1 } from './ocr-file-uploader2.js';
|
|
2
|
+
|
|
3
|
+
const OcrFileUploader = OcrFileUploader$1;
|
|
4
|
+
const defineCustomElement = defineCustomElement$1;
|
|
5
|
+
|
|
6
|
+
export { OcrFileUploader, defineCustomElement };
|
|
7
|
+
//# sourceMappingURL=ocr-file-uploader.js.map
|
|
8
|
+
|
|
9
|
+
//# sourceMappingURL=ocr-file-uploader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"ocr-file-uploader.js","mappings":";;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';
|
|
2
2
|
|
|
3
|
-
const
|
|
3
|
+
const ocrFileUploaderCss = ".upload-container{display:inline-block;cursor:pointer;width:50px;height:50px}.upload-button{display:flex;align-items:center;justify-content:center;transition:transform 0.2s ease, box-shadow 0.2s ease;user-select:none}.upload-button svg{width:50px;height:50px;stroke:#44ee44}.upload-button:hover svg{transform:scale(1.05);stroke:#33dd33}";
|
|
4
4
|
|
|
5
|
-
const
|
|
5
|
+
const OcrFileUploader = /*@__PURE__*/ proxyCustomElement(class OcrFileUploader extends HTMLElement {
|
|
6
6
|
constructor() {
|
|
7
7
|
super();
|
|
8
8
|
this.__registerHost();
|
|
@@ -49,6 +49,9 @@ const FileUploader = /*@__PURE__*/ proxyCustomElement(class FileUploader extends
|
|
|
49
49
|
}
|
|
50
50
|
else {
|
|
51
51
|
try {
|
|
52
|
+
if (this.jsonSchema) {
|
|
53
|
+
formData.append('json_schema', this.jsonSchema);
|
|
54
|
+
}
|
|
52
55
|
const response = await fetch('http://127.0.0.1:5001/api/convert-to-json', {
|
|
53
56
|
method: 'POST',
|
|
54
57
|
body: formData
|
|
@@ -71,28 +74,29 @@ const FileUploader = /*@__PURE__*/ proxyCustomElement(class FileUploader extends
|
|
|
71
74
|
};
|
|
72
75
|
}
|
|
73
76
|
render() {
|
|
74
|
-
return (h("div", { key: '
|
|
77
|
+
return (h("div", { key: 'fecf4f7a1151d5a93092dcd7f34f61bbb5020a3a', class: "upload-container", onClick: this.triggerUpload }, h("input", { key: '5dae519517ce2c93a5bedb54ec454aa7f0842670', type: "file", ref: el => (this.fileInput = el), onChange: this.handleFileChange, style: { display: 'none' } }), h("div", { key: '856fae3bb684b769fbd1869d6e7ed96d4bd4706c', class: "upload-button" }, h("svg", { key: '94b1f879d42904038a34f574607a46dcd6075fa2', viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: '020370d673d73a845aea7c15cfece3daa5214a78', d: "M13.5 3H12H8C6.34315 3 5 4.34315 5 6V18C5 19.6569 6.34315 21 8 21H12M13.5 3L19 8.625M13.5 3V7.625C13.5 8.17728 13.9477 8.625 14.5 8.625H19M19 8.625V11.8125", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }), h("path", { key: '3e14a32c1533e66de5da8bdcac5206196bd6302b', d: "M17.5 21L17.5 15M17.5 15L20 17.5M17.5 15L15 17.5", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" })))));
|
|
75
78
|
}
|
|
76
|
-
static get style() { return
|
|
77
|
-
}, [257, "file-uploader", {
|
|
79
|
+
static get style() { return ocrFileUploaderCss; }
|
|
80
|
+
}, [257, "ocr-file-uploader", {
|
|
78
81
|
"batch": [4],
|
|
79
|
-
"callback": [16]
|
|
82
|
+
"callback": [16],
|
|
83
|
+
"jsonSchema": [1, "json-schema"]
|
|
80
84
|
}]);
|
|
81
85
|
function defineCustomElement() {
|
|
82
86
|
if (typeof customElements === "undefined") {
|
|
83
87
|
return;
|
|
84
88
|
}
|
|
85
|
-
const components = ["file-uploader"];
|
|
89
|
+
const components = ["ocr-file-uploader"];
|
|
86
90
|
components.forEach(tagName => { switch (tagName) {
|
|
87
|
-
case "file-uploader":
|
|
91
|
+
case "ocr-file-uploader":
|
|
88
92
|
if (!customElements.get(tagName)) {
|
|
89
|
-
customElements.define(tagName,
|
|
93
|
+
customElements.define(tagName, OcrFileUploader);
|
|
90
94
|
}
|
|
91
95
|
break;
|
|
92
96
|
} });
|
|
93
97
|
}
|
|
94
98
|
|
|
95
|
-
export {
|
|
96
|
-
//# sourceMappingURL=file-uploader2.js.map
|
|
99
|
+
export { OcrFileUploader as O, defineCustomElement as d };
|
|
100
|
+
//# sourceMappingURL=ocr-file-uploader2.js.map
|
|
97
101
|
|
|
98
|
-
//# sourceMappingURL=file-uploader2.js.map
|
|
102
|
+
//# sourceMappingURL=ocr-file-uploader2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"ocr-file-uploader2.js","mappings":"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","names":["__stencil_proxyCustomElement"],"sources":["node_modules/ocr-file-uploader/dist/collection/components/ocr-file-uploader/ocr-file-uploader.css?tag=ocr-file-uploader&encapsulation=shadow","node_modules/ocr-file-uploader/dist/collection/components/ocr-file-uploader/ocr-file-uploader.js"],"sourcesContent":["\r\n.upload-container {\r\n display: inline-block;\r\n cursor: pointer;\r\n width: 50px;\r\n height: 50px;\r\n}\r\n\r\n.upload-button {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n transition: transform 0.2s ease, box-shadow 0.2s ease;\r\n user-select: none;\r\n}\r\n\r\n.upload-button svg {\r\n width: 50px;\r\n height: 50px;\r\n stroke: #44ee44;\r\n}\r\n\r\n.upload-button:hover svg{\r\n transform: scale(1.05);\r\n stroke: #33dd33;\r\n}","import { h } from \"@stencil/core\";\nexport class OcrFileUploader {\n constructor() {\n this.batch = false;\n this.triggerUpload = () => {\n this.fileInput.click();\n };\n this.handleFileChange = async (event) => {\n const input = event.target;\n if (!input.files || input.files.length === 0)\n return;\n const file = input.files[0];\n // Here you can handle the file upload to your API\n console.log('Selected file:', file);\n const formData = new FormData();\n formData.append('file', file);\n if (this.batch) {\n try {\n const response = await fetch('http://127.0.0.1:5001/api/convert-to-xml', {\n method: 'POST',\n body: formData\n });\n if (!response.ok) {\n console.error(\"There has been an error!:\", response);\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n // get the file as a blob\n const blob = await response.blob();\n // create a download link\n const url = window.URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = 'result-' + Date.now().toString() + '.xlsx'; // filename\n document.body.appendChild(a);\n a.click();\n a.remove();\n window.URL.revokeObjectURL(url);\n }\n catch (err) {\n console.error(err);\n alert('Error uploading file');\n }\n }\n else {\n try {\n if (this.jsonSchema) {\n formData.append('json_schema', this.jsonSchema);\n }\n const response = await fetch('http://127.0.0.1:5001/api/convert-to-json', {\n method: 'POST',\n body: formData\n });\n if (!response.ok) {\n console.error(\"There has been an error!:\", response);\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n const data = await response.json();\n console.log('Upload successful:', data);\n if (this.callback && data[0] && data[0].content) {\n this.callback(data[0].content);\n }\n }\n catch (err) {\n console.error(err);\n alert('Error uploading file');\n }\n }\n };\n }\n render() {\n return (h(\"div\", { key: 'fecf4f7a1151d5a93092dcd7f34f61bbb5020a3a', class: \"upload-container\", onClick: this.triggerUpload }, h(\"input\", { key: '5dae519517ce2c93a5bedb54ec454aa7f0842670', type: \"file\", ref: el => (this.fileInput = el), onChange: this.handleFileChange, style: { display: 'none' } }), h(\"div\", { key: '856fae3bb684b769fbd1869d6e7ed96d4bd4706c', class: \"upload-button\" }, h(\"svg\", { key: '94b1f879d42904038a34f574607a46dcd6075fa2', viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" }, h(\"path\", { key: '020370d673d73a845aea7c15cfece3daa5214a78', d: \"M13.5 3H12H8C6.34315 3 5 4.34315 5 6V18C5 19.6569 6.34315 21 8 21H12M13.5 3L19 8.625M13.5 3V7.625C13.5 8.17728 13.9477 8.625 14.5 8.625H19M19 8.625V11.8125\", \"stroke-width\": \"2\", \"stroke-linecap\": \"round\", \"stroke-linejoin\": \"round\" }), h(\"path\", { key: '3e14a32c1533e66de5da8bdcac5206196bd6302b', d: \"M17.5 21L17.5 15M17.5 15L20 17.5M17.5 15L15 17.5\", \"stroke-width\": \"2\", \"stroke-linecap\": \"round\", \"stroke-linejoin\": \"round\" })))));\n }\n static get is() { return \"ocr-file-uploader\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ocr-file-uploader.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ocr-file-uploader.css\"]\n };\n }\n static get properties() {\n return {\n \"batch\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": false,\n \"attribute\": \"batch\",\n \"defaultValue\": \"false\"\n },\n \"callback\": {\n \"type\": \"unknown\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"Function\",\n \"resolved\": \"Function\",\n \"references\": {\n \"Function\": {\n \"location\": \"global\",\n \"id\": \"global::Function\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"\"\n },\n \"getter\": false,\n \"setter\": false\n },\n \"jsonSchema\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": false,\n \"attribute\": \"json-schema\"\n }\n };\n }\n}\n"],"version":3}
|