diff --git a/package.json b/package.json index 58b4a37..add3dbf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mobx-restful-table", - "version": "2.2.11", + "version": "2.3.0", "license": "LGPL-3.0", "author": "shiy2008@gmail.com", "description": "A Pagination Table & Scroll List component suite for CRUD operation, which is based on MobX RESTful & React.", @@ -46,9 +46,9 @@ "@parcel/packager-ts": "~2.15.1", "@parcel/transformer-typescript-tsc": "~2.15.1", "@parcel/transformer-typescript-types": "~2.15.1", - "@types/lodash": "^4.17.16", - "@types/node": "^22.15.19", - "@types/react": "^19.1.4", + "@types/lodash": "^4.17.17", + "@types/node": "^22.15.21", + "@types/react": "^19.1.5", "@types/react-dom": "^19.1.5", "husky": "^9.1.7", "idea-react": "^2.0.0-rc.13", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a849420..02cacbb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -37,7 +37,7 @@ importers: version: 2.1.0(mobx@6.13.7)(typescript@5.8.3) react-bootstrap: specifier: ^2.10.10 - version: 2.10.10(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 2.10.10(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) regenerator-runtime: specifier: ^0.14.1 version: 0.14.1 @@ -61,23 +61,23 @@ importers: specifier: ~2.15.1 version: 2.15.1(@parcel/core@2.15.1(@swc/helpers@0.5.17))(typescript@5.8.3) '@types/lodash': - specifier: ^4.17.16 - version: 4.17.16 + specifier: ^4.17.17 + version: 4.17.17 '@types/node': - specifier: ^22.15.19 - version: 22.15.19 + specifier: ^22.15.21 + version: 22.15.21 '@types/react': - specifier: ^19.1.4 - version: 19.1.4 + specifier: ^19.1.5 + version: 19.1.5 '@types/react-dom': specifier: ^19.1.5 - version: 19.1.5(@types/react@19.1.4) + version: 19.1.5(@types/react@19.1.5) husky: specifier: ^9.1.7 version: 9.1.7 idea-react: specifier: ^2.0.0-rc.13 - version: 2.0.0-rc.13(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react-is@16.13.1)(react@19.1.0)(typescript@5.8.3) + version: 2.0.0-rc.13(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react-is@16.13.1)(react@19.1.0)(typescript@5.8.3) koajax: specifier: ^3.1.2 version: 3.1.2(typescript@5.8.3) @@ -667,68 +667,68 @@ packages: '@shikijs/vscode-textmate@10.0.2': resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} - '@swc/core-darwin-arm64@1.11.24': - resolution: {integrity: sha512-dhtVj0PC1APOF4fl5qT2neGjRLgHAAYfiVP8poJelhzhB/318bO+QCFWAiimcDoyMgpCXOhTp757gnoJJrheWA==} + '@swc/core-darwin-arm64@1.11.29': + resolution: {integrity: sha512-whsCX7URzbuS5aET58c75Dloby3Gtj/ITk2vc4WW6pSDQKSPDuONsIcZ7B2ng8oz0K6ttbi4p3H/PNPQLJ4maQ==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.11.24': - resolution: {integrity: sha512-H/3cPs8uxcj2Fe3SoLlofN5JG6Ny5bl8DuZ6Yc2wr7gQFBmyBkbZEz+sPVgsID7IXuz7vTP95kMm1VL74SO5AQ==} + '@swc/core-darwin-x64@1.11.29': + resolution: {integrity: sha512-S3eTo/KYFk+76cWJRgX30hylN5XkSmjYtCBnM4jPLYn7L6zWYEPajsFLmruQEiTEDUg0gBEWLMNyUeghtswouw==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.11.24': - resolution: {integrity: sha512-PHJgWEpCsLo/NGj+A2lXZ2mgGjsr96ULNW3+T3Bj2KTc8XtMUkE8tmY2Da20ItZOvPNC/69KroU7edyo1Flfbw==} + '@swc/core-linux-arm-gnueabihf@1.11.29': + resolution: {integrity: sha512-o9gdshbzkUMG6azldHdmKklcfrcMx+a23d/2qHQHPDLUPAN+Trd+sDQUYArK5Fcm7TlpG4sczz95ghN0DMkM7g==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.11.24': - resolution: {integrity: sha512-C2FJb08+n5SD4CYWCTZx1uR88BN41ZieoHvI8A55hfVf2woT8+6ZiBzt74qW2g+ntZ535Jts5VwXAKdu41HpBg==} + '@swc/core-linux-arm64-gnu@1.11.29': + resolution: {integrity: sha512-sLoaciOgUKQF1KX9T6hPGzvhOQaJn+3DHy4LOHeXhQqvBgr+7QcZ+hl4uixPKTzxk6hy6Hb0QOvQEdBAAR1gXw==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.11.24': - resolution: {integrity: sha512-ypXLIdszRo0re7PNNaXN0+2lD454G8l9LPK/rbfRXnhLWDBPURxzKlLlU/YGd2zP98wPcVooMmegRSNOKfvErw==} + '@swc/core-linux-arm64-musl@1.11.29': + resolution: {integrity: sha512-PwjB10BC0N+Ce7RU/L23eYch6lXFHz7r3NFavIcwDNa/AAqywfxyxh13OeRy+P0cg7NDpWEETWspXeI4Ek8otw==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-x64-gnu@1.11.24': - resolution: {integrity: sha512-IM7d+STVZD48zxcgo69L0yYptfhaaE9cMZ+9OoMxirNafhKKXwoZuufol1+alEFKc+Wbwp+aUPe/DeWC/Lh3dg==} + '@swc/core-linux-x64-gnu@1.11.29': + resolution: {integrity: sha512-i62vBVoPaVe9A3mc6gJG07n0/e7FVeAvdD9uzZTtGLiuIfVfIBta8EMquzvf+POLycSk79Z6lRhGPZPJPYiQaA==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.11.24': - resolution: {integrity: sha512-DZByJaMVzSfjQKKQn3cqSeqwy6lpMaQDQQ4HPlch9FWtDx/dLcpdIhxssqZXcR2rhaQVIaRQsCqwV6orSDGAGw==} + '@swc/core-linux-x64-musl@1.11.29': + resolution: {integrity: sha512-YER0XU1xqFdK0hKkfSVX1YIyCvMDI7K07GIpefPvcfyNGs38AXKhb2byySDjbVxkdl4dycaxxhRyhQ2gKSlsFQ==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-win32-arm64-msvc@1.11.24': - resolution: {integrity: sha512-Q64Ytn23y9aVDKN5iryFi8mRgyHw3/kyjTjT4qFCa8AEb5sGUuSj//AUZ6c0J7hQKMHlg9do5Etvoe61V98/JQ==} + '@swc/core-win32-arm64-msvc@1.11.29': + resolution: {integrity: sha512-po+WHw+k9g6FAg5IJ+sMwtA/fIUL3zPQ4m/uJgONBATCVnDDkyW6dBA49uHNVtSEvjvhuD8DVWdFP847YTcITw==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.11.24': - resolution: {integrity: sha512-9pKLIisE/Hh2vJhGIPvSoTK4uBSPxNVyXHmOrtdDot4E1FUUI74Vi8tFdlwNbaj8/vusVnb8xPXsxF1uB0VgiQ==} + '@swc/core-win32-ia32-msvc@1.11.29': + resolution: {integrity: sha512-h+NjOrbqdRBYr5ItmStmQt6x3tnhqgwbj9YxdGPepbTDamFv7vFnhZR0YfB3jz3UKJ8H3uGJ65Zw1VsC+xpFkg==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.11.24': - resolution: {integrity: sha512-sybnXtOsdB+XvzVFlBVGgRHLqp3yRpHK7CrmpuDKszhj/QhmsaZzY/GHSeALlMtLup13M0gqbcQvsTNlAHTg3w==} + '@swc/core-win32-x64-msvc@1.11.29': + resolution: {integrity: sha512-Q8cs2BDV9wqDvqobkXOYdC+pLUSEpX/KvI0Dgfun1F+LzuLotRFuDhrvkU9ETJA6OnD2+Fn/ieHgloiKA/Mn/g==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.11.24': - resolution: {integrity: sha512-MaQEIpfcEMzx3VWWopbofKJvaraqmL6HbLlw2bFZ7qYqYw3rkhM0cQVEgyzbHtTWwCwPMFZSC2DUbhlZgrMfLg==} + '@swc/core@1.11.29': + resolution: {integrity: sha512-g4mThMIpWbNhV8G2rWp5a5/Igv8/2UFRJx2yImrLGMgrDDYZIopqZ/z0jZxDgqNA1QDx93rpwNF7jGsxVWcMlA==} engines: {node: '>=10'} peerDependencies: '@swc/helpers': '>=0.5.17' @@ -748,11 +748,11 @@ packages: '@types/hast@3.0.4': resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} - '@types/lodash@4.17.16': - resolution: {integrity: sha512-HX7Em5NYQAXKW+1T+FiuG27NGwzJfCX3s1GjOa7ujxZa52kjJLOr4FUxT+giF6Tgxv1e+/czV/iTtBw27WTU9g==} + '@types/lodash@4.17.17': + resolution: {integrity: sha512-RRVJ+J3J+WmyOTqnz3PiBLA501eKwXl2noseKOrNo/6+XEHjTAxO4xHvxQB6QuNm+s4WRbn6rSiap8+EA+ykFQ==} - '@types/node@22.15.19': - resolution: {integrity: sha512-3vMNr4TzNQyjHcRZadojpRaD9Ofr6LsonZAoQ+HMUa/9ORTPoxVIw0e0mpqWpdjj8xybyCM+oKOUH2vwFu/oEw==} + '@types/node@22.15.21': + resolution: {integrity: sha512-EV/37Td6c+MgKAbkcLG6vqZ2zEYHD7bvSrzqqs2RIhbA6w3x+Dqz8MZM3sP6kGTeLrdoOgKZe+Xja7tUB2DNkQ==} '@types/prop-types@15.7.14': resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==} @@ -767,8 +767,8 @@ packages: peerDependencies: '@types/react': '*' - '@types/react@19.1.4': - resolution: {integrity: sha512-EB1yiiYdvySuIITtD5lhW4yPyJ31RkJkkDw794LaQYrxCSaQV/47y5o1FMC4zF9ZyjUjzJMZwbovEnT5yHTW6g==} + '@types/react@19.1.5': + resolution: {integrity: sha512-piErsCVVbpMMT2r7wbawdZsq4xMvIAhQuac2gedQHysu1TZYEigE6pnFfgZT+/jQnrRuF5r+SHzuehFjfRjr4g==} '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} @@ -918,8 +918,8 @@ packages: editorjs-html@4.0.5: resolution: {integrity: sha512-ImQYxB3fNCJcd+nJ+Vbne/6PxidO1cYByNpu9nBDStVabfjVrMW65BuR+IEZfOii8VKYH+CW/lYDb2GDlzZtDg==} - electron-to-chromium@1.5.155: - resolution: {integrity: sha512-ps5KcGGmwL8VaeJlvlDlu4fORQpv3+GIcF5I3f9tUKUlJ/wsysh6HU8P5L1XWRYeXfA0oJd4PyM8ds8zTFf6Ng==} + electron-to-chromium@1.5.156: + resolution: {integrity: sha512-QeOqv11TSASsY/3Ft3LUyDqEiEOph5/85srEPFUo9wuGFNTb0/z5fGE/+ZzTrYvSTGoXNkdQLTw3MKRmgyOyGA==} element-internals-polyfill@1.3.13: resolution: {integrity: sha512-viZ7wJsvh6eFwGQX512zEaccK/c6RRFSerJsdkfe3DW/ZtruvNeOR33fpPZgfXxvqRdU2lK33KM4S6GqaTgVKQ==} @@ -1032,8 +1032,8 @@ packages: iterable-observer@1.1.0: resolution: {integrity: sha512-3H7N2wUtGpz5A/y4MFaP15sXxQyBTgnmq/LFMUbOErj+V9VgJY53Hd23mj33YEDap6qF22OEoV+19ATh+3+sQg==} - jackspeak@4.1.0: - resolution: {integrity: sha512-9DDdhb5j6cpeitCbvLO7n7J4IxnbM6hoF6O1g4HQ5TfhvvKN8ywDM7668ZhMHRqVmxqhps/F6syWK2KcPxYlkw==} + jackspeak@4.1.1: + resolution: {integrity: sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==} engines: {node: 20 || >=22} js-tokens@4.0.0: @@ -1240,9 +1240,9 @@ packages: msgpackr@1.11.4: resolution: {integrity: sha512-uaff7RG9VIC4jacFW9xzL3jc0iM32DNHe4jYVycBcjUePT/Klnfj7pqtWJt9khvDFizmjN2TlYniYmSS2LIaZg==} - nano-spawn@1.0.1: - resolution: {integrity: sha512-BfcvzBlUTxSDWfT+oH7vd6CbUV+rThLLHCIym/QO6GGLBsyVXleZs00fto2i2jzC/wPiBYk5jyOmpXWg4YopiA==} - engines: {node: '>=20.18'} + nano-spawn@1.0.2: + resolution: {integrity: sha512-21t+ozMQDAL/UGgQVBbZ/xXvNO10++ZPuTmKRO8k9V3AClVRht49ahtDjfY8l1q6nSHOrE5ASfthzH3ol6R/hg==} + engines: {node: '>=20.17'} node-addon-api@6.1.0: resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==} @@ -1843,7 +1843,7 @@ snapshots: '@parcel/plugin': 2.15.1(@parcel/core@2.15.1(@swc/helpers@0.5.17)) '@parcel/source-map': 2.1.1 '@parcel/utils': 2.15.1 - '@swc/core': 1.11.24(@swc/helpers@0.5.17) + '@swc/core': 1.11.29(@swc/helpers@0.5.17) nullthrows: 1.1.1 transitivePeerDependencies: - '@parcel/core' @@ -1860,7 +1860,7 @@ snapshots: '@parcel/types': 2.15.1(@parcel/core@2.15.1(@swc/helpers@0.5.17)) '@parcel/utils': 2.15.1 '@parcel/workers': 2.15.1(@parcel/core@2.15.1(@swc/helpers@0.5.17)) - '@swc/core': 1.11.24(@swc/helpers@0.5.17) + '@swc/core': 1.11.29(@swc/helpers@0.5.17) semver: 7.7.2 transitivePeerDependencies: - '@swc/helpers' @@ -2386,51 +2386,51 @@ snapshots: '@shikijs/vscode-textmate@10.0.2': {} - '@swc/core-darwin-arm64@1.11.24': + '@swc/core-darwin-arm64@1.11.29': optional: true - '@swc/core-darwin-x64@1.11.24': + '@swc/core-darwin-x64@1.11.29': optional: true - '@swc/core-linux-arm-gnueabihf@1.11.24': + '@swc/core-linux-arm-gnueabihf@1.11.29': optional: true - '@swc/core-linux-arm64-gnu@1.11.24': + '@swc/core-linux-arm64-gnu@1.11.29': optional: true - '@swc/core-linux-arm64-musl@1.11.24': + '@swc/core-linux-arm64-musl@1.11.29': optional: true - '@swc/core-linux-x64-gnu@1.11.24': + '@swc/core-linux-x64-gnu@1.11.29': optional: true - '@swc/core-linux-x64-musl@1.11.24': + '@swc/core-linux-x64-musl@1.11.29': optional: true - '@swc/core-win32-arm64-msvc@1.11.24': + '@swc/core-win32-arm64-msvc@1.11.29': optional: true - '@swc/core-win32-ia32-msvc@1.11.24': + '@swc/core-win32-ia32-msvc@1.11.29': optional: true - '@swc/core-win32-x64-msvc@1.11.24': + '@swc/core-win32-x64-msvc@1.11.29': optional: true - '@swc/core@1.11.24(@swc/helpers@0.5.17)': + '@swc/core@1.11.29(@swc/helpers@0.5.17)': dependencies: '@swc/counter': 0.1.3 '@swc/types': 0.1.21 optionalDependencies: - '@swc/core-darwin-arm64': 1.11.24 - '@swc/core-darwin-x64': 1.11.24 - '@swc/core-linux-arm-gnueabihf': 1.11.24 - '@swc/core-linux-arm64-gnu': 1.11.24 - '@swc/core-linux-arm64-musl': 1.11.24 - '@swc/core-linux-x64-gnu': 1.11.24 - '@swc/core-linux-x64-musl': 1.11.24 - '@swc/core-win32-arm64-msvc': 1.11.24 - '@swc/core-win32-ia32-msvc': 1.11.24 - '@swc/core-win32-x64-msvc': 1.11.24 + '@swc/core-darwin-arm64': 1.11.29 + '@swc/core-darwin-x64': 1.11.29 + '@swc/core-linux-arm-gnueabihf': 1.11.29 + '@swc/core-linux-arm64-gnu': 1.11.29 + '@swc/core-linux-arm64-musl': 1.11.29 + '@swc/core-linux-x64-gnu': 1.11.29 + '@swc/core-linux-x64-musl': 1.11.29 + '@swc/core-win32-arm64-msvc': 1.11.29 + '@swc/core-win32-ia32-msvc': 1.11.29 + '@swc/core-win32-x64-msvc': 1.11.29 '@swc/helpers': 0.5.17 '@swc/counter@0.1.3': {} @@ -2447,23 +2447,23 @@ snapshots: dependencies: '@types/unist': 3.0.3 - '@types/lodash@4.17.16': {} + '@types/lodash@4.17.17': {} - '@types/node@22.15.19': + '@types/node@22.15.21': dependencies: undici-types: 6.21.0 '@types/prop-types@15.7.14': {} - '@types/react-dom@19.1.5(@types/react@19.1.4)': + '@types/react-dom@19.1.5(@types/react@19.1.5)': dependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 - '@types/react-transition-group@4.4.12(@types/react@19.1.4)': + '@types/react-transition-group@4.4.12(@types/react@19.1.5)': dependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 - '@types/react@19.1.4': + '@types/react@19.1.5': dependencies: csstype: 3.1.3 @@ -2506,7 +2506,7 @@ snapshots: browserslist@4.24.5: dependencies: caniuse-lite: 1.0.30001718 - electron-to-chromium: 1.5.155 + electron-to-chromium: 1.5.156 node-releases: 2.0.19 update-browserslist-db: 1.1.3(browserslist@4.24.5) @@ -2583,7 +2583,7 @@ snapshots: editorjs-html@4.0.5: {} - electron-to-chromium@1.5.155: {} + electron-to-chromium@1.5.156: {} element-internals-polyfill@1.3.13: {} @@ -2617,7 +2617,7 @@ snapshots: glob@11.0.2: dependencies: foreground-child: 3.3.1 - jackspeak: 4.1.0 + jackspeak: 4.1.1 minimatch: 10.0.1 minipass: 7.1.2 package-json-from-dist: 1.0.1 @@ -2638,7 +2638,7 @@ snapshots: idb-keyval@6.2.2: {} - idea-react@2.0.0-rc.13(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react-is@16.13.1)(react@19.1.0)(typescript@5.8.3): + idea-react@2.0.0-rc.13(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react-is@16.13.1)(react@19.1.0)(typescript@5.8.3): dependencies: '@editorjs/editorjs': 2.30.8 '@editorjs/paragraph': 2.11.7 @@ -2654,7 +2654,7 @@ snapshots: mobx-react-helper: 0.4.1(mobx@6.13.7)(react@19.1.0)(typescript@5.8.3) prismjs: 1.30.0 react: 19.1.0 - react-bootstrap: 2.10.10(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react-bootstrap: 2.10.10(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react-dom: 19.1.0(react@19.1.0) react-editor-js: 2.1.0(@editorjs/editorjs@2.30.8)(@editorjs/paragraph@2.11.7)(react@19.1.0) react-element-to-jsx-string: 17.0.1(react-dom@19.1.0(react@19.1.0))(react-is@16.13.1)(react@19.1.0) @@ -2693,7 +2693,7 @@ snapshots: dependencies: '@swc/helpers': 0.5.17 - jackspeak@4.1.0: + jackspeak@4.1.1: dependencies: '@isaacs/cliui': 8.0.2 @@ -2769,7 +2769,7 @@ snapshots: lilconfig: 3.1.3 listr2: 8.3.3 micromatch: 4.0.8 - nano-spawn: 1.0.1 + nano-spawn: 1.0.2 pidtree: 0.6.0 string-argv: 0.3.2 yaml: 2.8.0 @@ -2852,7 +2852,7 @@ snapshots: dependencies: '@octokit/openapi-types': 25.0.0 '@swc/helpers': 0.5.17 - '@types/lodash': 4.17.16 + '@types/lodash': 4.17.17 koajax: 3.1.2(typescript@5.8.3) lodash: 4.17.21 mobx: 6.13.7 @@ -2866,7 +2866,7 @@ snapshots: mobx-i18n@0.7.1(mobx@6.13.7)(typescript@5.8.3): dependencies: '@swc/helpers': 0.5.17 - '@types/node': 22.15.19 + '@types/node': 22.15.21 mobx: 6.13.7 regenerator-runtime: 0.14.1 web-utility: 4.4.3(typescript@5.8.3) @@ -2932,7 +2932,7 @@ snapshots: optionalDependencies: msgpackr-extract: 3.0.3 - nano-spawn@1.0.1: {} + nano-spawn@1.0.2: {} node-addon-api@6.1.0: {} @@ -3015,13 +3015,13 @@ snapshots: punycode.js@2.3.1: {} - react-bootstrap@2.10.10(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + react-bootstrap@2.10.10(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: '@babel/runtime': 7.27.1 '@restart/hooks': 0.4.16(react@19.1.0) '@restart/ui': 1.9.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@types/prop-types': 15.7.14 - '@types/react-transition-group': 4.4.12(@types/react@19.1.4) + '@types/react-transition-group': 4.4.12(@types/react@19.1.5) classnames: 2.5.1 dom-helpers: 5.2.1 invariant: 2.2.4 @@ -3033,7 +3033,7 @@ snapshots: uncontrollable: 7.2.1(react@19.1.0) warning: 4.0.3 optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 react-dom@19.1.0(react@19.1.0): dependencies: @@ -3179,7 +3179,7 @@ snapshots: uncontrollable@7.2.1(react@19.1.0): dependencies: '@babel/runtime': 7.27.1 - '@types/react': 19.1.4 + '@types/react': 19.1.5 invariant: 2.2.4 react: 19.1.0 react-lifecycles-compat: 3.0.4 diff --git a/preview/content.tsx b/preview/content.tsx index 236f375..d60f3d0 100644 --- a/preview/content.tsx +++ b/preview/content.tsx @@ -13,6 +13,7 @@ import { FormField, ImagePreview, RangeInput, + RestForm, RestTable, SearchableInput, } from '../source'; @@ -153,6 +154,19 @@ export const Content: FC = () => ( +
+ + ({ + ...meta, + renderLabel: renderHead, + }))} + /> + +
+
readOnly || disabled); } + @computed + get fieldReady() { + const { id, store } = this.observedProps; + + return !id || store.downloading < 1; + } + renderFile = ({ key, renderLabel, type, required, multiple, accept, uploader }: Field) => ({ [key]: paths }: D) => { @@ -140,6 +149,27 @@ export class RestForm< ); }; + renderCheckGroup = + ({ key, type, options, renderLabel }: Field) => + (data: D) => + this.fieldReady && ( + +
+ {options.map(({ value, text = value }) => ( + + ))} +
+
+ ); renderField = ( { key, type, step, renderLabel, renderInput, ...meta }: Field, @@ -148,15 +178,16 @@ export class RestForm< const label = typeof renderLabel === 'function' ? renderLabel?.(key) : renderLabel || (key as string); - return (data: D) => ( - - ); + return (data: D) => + this.fieldReady && ( + + ); }; render() { diff --git a/source/SearchableInput.tsx b/source/SearchableInput.tsx index a5439d4..ad68ffb 100644 --- a/source/SearchableInput.tsx +++ b/source/SearchableInput.tsx @@ -4,15 +4,7 @@ import { observer } from 'mobx-react'; import { FormComponent, FormComponentProps } from 'mobx-react-helper'; import { DataObject, Filter } from 'mobx-restful'; import { FocusEvent } from 'react'; -import { - Badge, - Button, - CloseButton, - Form, - InputGroup, - ListGroup, - Spinner, -} from 'react-bootstrap'; +import { Badge, Button, CloseButton, Form, InputGroup, ListGroup, Spinner } from 'react-bootstrap'; import { Second } from 'web-utility'; import { TextInputTypes } from './BadgeInput'; @@ -22,17 +14,13 @@ import { ScrollList, ScrollListProps } from './ScrollList'; export type OptionData = Record<'label' | 'value', string>; -export type SearchableInputProps< - D extends DataObject, - F extends Filter = Filter, -> = Omit< +export type SearchableInputProps = Filter> = Omit< ScrollListProps, 'id' | 'defaultValue' | 'onChange' | 'defaultData' | 'renderList' > & FormComponentProps & Omit, 'fields'> & { - translator: RestFormProps['translator'] & - ScrollListProps['translator']; + translator: RestFormProps['translator'] & ScrollListProps['translator']; fields?: RestFormProps['fields']; labelKey: keyof D; valueKey: keyof D; @@ -49,7 +37,7 @@ export class SearchableInput< static readonly displayName = 'SearchableInput'; @observable - accessor filter = {} as F; + accessor filter = this.props.filter; @observable accessor listShown = false; @@ -59,7 +47,7 @@ export class SearchableInput< value = value.trim(); - this.filter = (value ? { [labelKey]: value } : {}) as F; + this.filter = { ...this.filter, [labelKey]: value || undefined }; if (store.downloading < 1) if (value) { @@ -85,8 +73,7 @@ export class SearchableInput< (this.innerValue = this.value.filter(option => option.value !== value)); handleBlur = ({ target, relatedTarget }: FocusEvent) => { - if (target.parentElement !== relatedTarget?.parentElement) - this.listShown = false; + if (target.parentElement !== relatedTarget?.parentElement) this.listShown = false; }; renderList: ScrollListProps['renderList'] = allItems => @@ -121,19 +108,11 @@ export class SearchableInput< renderOverlay() { const { filter } = this; - const { - translator, - fields, - store, - labelKey, - renderList = this.renderList, - } = this.props; + const { translator, fields, store, labelKey, renderList = this.renderList } = this.props; const keyword = filter[labelKey] as string; - const needNew = !store.allItems.some( - ({ [labelKey]: label }) => label === keyword, - ); + const needNew = !store.allItems.some(({ [labelKey]: label }) => label === keyword); return (
- {needNew && fields && ( + {needNew && fields?.[0] && (