**PRD**: https://www.notion.so/appsmith/Ability-to-freeze-columns-dd118f7ed2e14e008ee305056b79874a?d=300f4968889244da9f737e1bfd8c06dc#2ddaf28e10a0475cb69f1af77b938d0b This PR adds the following features to the table widget: - Freeze the columns to the left or right of the table.(Both canvas and page view mode). - Unfreeze the frozen columns. (Both canvas and page view mode). - Columns that are left frozen, will get unfrozen at a position after the last left frozen column. (Both canvas and page view mode). - Columns that are right frozen, will get unfrozen at a position before the first right frozen column. (Both canvas and page view mode). - Column order can be persisted in the Page view mode. - Users can also unfreeze the columns that are frozen by the developers. - Columns that are frozen cannot be reordered(Both canvas and page view mode) - **Property pane changes (Columns property)**: - If the column is frozen to the left then that column should appear at top of the list. - If the column is frozen to the right then that column should appear at the bottom of the list. - The columns that are frozen cannot be moved or re-ordered in the list. They remain fixed in their position. - In-Page mode, If there is a change in frozen or unfrozen columns in multiple tables then the order of columns and frozen and unfrozen columns should get persisted on refresh i.e. changes should get persisted across refreshes.
316 lines
11 KiB
JSON
316 lines
11 KiB
JSON
{
|
|
"name": "appsmith",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"engines": {
|
|
"node": "^16.14.0",
|
|
"npm": "^8.5.5"
|
|
},
|
|
"cracoConfig": "craco.dev.config.js",
|
|
"dependencies": {
|
|
"@blueprintjs/core": "^3.36.0",
|
|
"@blueprintjs/datetime": "^3.23.6",
|
|
"@blueprintjs/icons": "^3.10.0",
|
|
"@blueprintjs/popover2": "^0.5.0",
|
|
"@blueprintjs/select": "^3.10.0",
|
|
"@draft-js-plugins/editor": "^4.1.0",
|
|
"@draft-js-plugins/mention": "^4.5.1",
|
|
"@fusioncharts/powercharts": "^3.16.0",
|
|
"@github/g-emoji-element": "^1.1.5",
|
|
"@googlemaps/markerclusterer": "^2.0.14",
|
|
"@googlemaps/react-wrapper": "^1.1.35",
|
|
"@manaflair/redux-batch": "^1.0.0",
|
|
"@sentry/react": "^6.2.4",
|
|
"@sentry/tracing": "^6.2.4",
|
|
"@tanstack/virtual-core": "^3.0.0-beta.18",
|
|
"@tinymce/tinymce-react": "^3.13.0",
|
|
"@types/google.maps": "^3.51.0",
|
|
"@types/react-page-visibility": "^6.4.1",
|
|
"@uppy/core": "^1.16.0",
|
|
"@uppy/dashboard": "^1.16.0",
|
|
"@uppy/file-input": "^1.4.22",
|
|
"@uppy/google-drive": "^1.5.22",
|
|
"@uppy/image-editor": "^0.2.4",
|
|
"@uppy/onedrive": "^1.1.22",
|
|
"@uppy/react": "^1.11.2",
|
|
"@uppy/url": "^1.5.16",
|
|
"@uppy/webcam": "^1.8.4",
|
|
"@welldone-software/why-did-you-render": "^4.2.5",
|
|
"acorn-walk": "^8.2.0",
|
|
"algoliasearch": "^4.2.0",
|
|
"astring": "^1.7.5",
|
|
"axios": "^0.27.2",
|
|
"classnames": "^2.3.1",
|
|
"codemirror": "^5.59.2",
|
|
"codemirror-graphql": "^1.2.14",
|
|
"copy-to-clipboard": "^3.3.1",
|
|
"core-js": "^3.9.1",
|
|
"country-flag-emoji-polyfill": "^0.1.4",
|
|
"craco-alias": "^2.1.1",
|
|
"cypress-log-to-output": "^1.1.2",
|
|
"dayjs": "^1.10.6",
|
|
"deep-diff": "^1.0.2",
|
|
"design-system-old": "npm:@appsmithorg/design-system-old@1.0.50",
|
|
"downloadjs": "^1.4.7",
|
|
"draft-js": "^0.11.7",
|
|
"exceljs": "^4.3.0",
|
|
"fast-deep-equal": "^3.1.3",
|
|
"fast-xml-parser": "^3.17.5",
|
|
"fastdom": "^1.0.11",
|
|
"focus-trap-react": "^8.9.2",
|
|
"fuse.js": "^3.4.5",
|
|
"fusioncharts": "^3.18.0",
|
|
"fusionmaps": "^3.18.0",
|
|
"graphql": "^16.3.0",
|
|
"history": "^4.10.1",
|
|
"http-proxy": "^1.18.1",
|
|
"husky": "^3.0.5",
|
|
"immer": "^9.0.6",
|
|
"instantsearch.css": "^7.4.2",
|
|
"interweave": "^12.7.2",
|
|
"interweave-autolink": "^4.4.2",
|
|
"js-beautify": "^1.14.0",
|
|
"js-sha256": "^0.9.0",
|
|
"jshint": "^2.13.4",
|
|
"klona": "^2.0.5",
|
|
"libphonenumber-js": "^1.9.44",
|
|
"linkedom": "^0.14.20",
|
|
"lint-staged": "^13.0.3",
|
|
"localforage": "^1.7.3",
|
|
"lodash": "^4.17.21",
|
|
"lodash-es": "4.17.21",
|
|
"loglevel": "^1.7.1",
|
|
"lottie-web": "^5.7.4",
|
|
"mammoth": "^1.5.1",
|
|
"marked": "^4.0.18",
|
|
"memoize-one": "^5.2.1",
|
|
"micro-memoize": "^4.0.10",
|
|
"moment": "2.29.4",
|
|
"moment-timezone": "^0.5.35",
|
|
"nanoid": "^2.0.4",
|
|
"node-forge": "^1.3.0",
|
|
"normalizr": "^3.3.0",
|
|
"object-hash": "^3.0.0",
|
|
"papaparse": "^5.3.2",
|
|
"path-to-regexp": "^6.2.0",
|
|
"popper.js": "^1.15.0",
|
|
"prettier": "^1.18.2",
|
|
"prismjs": "^1.27.0",
|
|
"proxy-memoize": "^1.2.0",
|
|
"punycode": "^2.1.1",
|
|
"rc-pagination": "^3.1.3",
|
|
"rc-select": "^14.1.9",
|
|
"rc-tree-select": "^5.4.0",
|
|
"re-reselect": "^3.4.0",
|
|
"react": "^17.0.2",
|
|
"react-beautiful-dnd": "^12.2.0",
|
|
"react-custom-scrollbars": "^4.2.1",
|
|
"react-device-detect": "^2.2.2",
|
|
"react-dnd": "^9.3.4",
|
|
"react-dnd-html5-backend": "^9.3.4",
|
|
"react-dnd-touch-backend": "^9.4.0",
|
|
"react-documents": "^1.0.4",
|
|
"react-dom": "^17.0.2",
|
|
"react-full-screen": "^1.1.0",
|
|
"react-fusioncharts": "^3.1.2",
|
|
"react-google-recaptcha": "^2.1.0",
|
|
"react-helmet": "^5.2.1",
|
|
"react-hook-form": "^7.28.0",
|
|
"react-instantsearch-dom": "^6.4.0",
|
|
"react-json-view": "^1.21.3",
|
|
"react-masonry-css": "^1.0.16",
|
|
"react-media-recorder": "^1.6.1",
|
|
"react-modal": "^3.15.1",
|
|
"react-page-visibility": "^7.0.0",
|
|
"react-paginating": "^1.4.0",
|
|
"react-player": "^2.3.1",
|
|
"react-qr-barcode-scanner": "^1.0.6",
|
|
"react-rating": "^2.0.5",
|
|
"react-redux": "^7.2.4",
|
|
"react-responsive": "^9.0.0-beta.3",
|
|
"react-router": "^5.1.2",
|
|
"react-router-dom": "^5.1.2",
|
|
"react-scripts": "^5.0.1",
|
|
"react-select": "^3.0.8",
|
|
"react-spring": "^9.4.0",
|
|
"react-syntax-highlighter": "^15.5.0",
|
|
"react-table": "^7.0.0",
|
|
"react-table-sticky": "^1.1.3",
|
|
"react-tabs": "^3.0.0",
|
|
"react-timer-hook": "^3.0.4",
|
|
"react-toastify": "^5.5.0",
|
|
"react-use-gesture": "^7.0.4",
|
|
"react-virtuoso": "^1.9.0",
|
|
"react-webcam": "^7.0.1",
|
|
"react-window": "^1.8.6",
|
|
"react-zoom-pan-pinch": "^1.6.1",
|
|
"redux": "^4.0.1",
|
|
"redux-form": "^8.2.6",
|
|
"redux-saga": "^1.1.3",
|
|
"remixicon-react": "^1.0.0",
|
|
"reselect": "^4.0.0",
|
|
"scroll-into-view-if-needed": "^2.2.26",
|
|
"shallowequal": "^1.1.0",
|
|
"showdown": "^1.9.1",
|
|
"simplebar-react": "^2.4.3",
|
|
"smartlook-client": "^8.0.0",
|
|
"socket.io-client": "^4.5.4",
|
|
"styled-components": "^5.3.6",
|
|
"tern": "^0.21.0",
|
|
"tinycolor2": "^1.4.2",
|
|
"toposort": "^2.0.2",
|
|
"tslib": "^2.3.1",
|
|
"typescript": "4.5.5",
|
|
"unescape-js": "^1.1.4",
|
|
"url-search-params-polyfill": "^8.0.0",
|
|
"webfontloader": "^1.6.28",
|
|
"webpack-retry-chunk-load-plugin": "^3.1.1",
|
|
"yjs": "^13.5.12",
|
|
"zipcelx": "^1.6.2"
|
|
},
|
|
"scripts": {
|
|
"analyze": "yarn cra-bundle-analyzer",
|
|
"start": "BROWSER=none EXTEND_ESLINT=true REACT_APP_ENVIRONMENT=DEVELOPMENT REACT_APP_CLIENT_LOG_LEVEL=debug HOST=dev.appsmith.com craco start",
|
|
"build": "./build.sh",
|
|
"build-local": "craco --max-old-space-size=4096 build --config craco.build.config.js",
|
|
"build-staging": "REACT_APP_ENVIRONMENT=STAGING craco --max-old-space-size=4096 build --config craco.build.config.js",
|
|
"test": "CYPRESS_BASE_URL=https://dev.appsmith.com cypress/test.sh",
|
|
"test:ci": "CYPRESS_BASE_URL=https://dev.appsmith.com cypress/test.sh --env=ci",
|
|
"eject": "react-scripts eject",
|
|
"start-prod": "REACT_APP_ENVIRONMENT=PRODUCTION craco start",
|
|
"cytest": "REACT_APP_TESTING=TESTING REACT_APP_ENVIRONMENT=DEVELOPMENT craco start & ./node_modules/.bin/cypress open",
|
|
"test:unit": "$(npm bin)/jest -b --colors --no-cache --silent --coverage --collectCoverage=true --coverageDirectory='../../' --coverageReporters='json-summary'",
|
|
"test:jest": "$(npm bin)/jest --watch",
|
|
"generate:widget": "plop --plopfile generators/index.js",
|
|
"postinstall": "patch-package && CURRENT_SCOPE=client node ../shared/install-dependencies.js",
|
|
"preinstall": "CURRENT_SCOPE=client node ../shared/build-shared-dep.js",
|
|
"install": "node cypress/apply-patches.js"
|
|
},
|
|
"browserslist": [
|
|
">0.2%",
|
|
"not dead",
|
|
"not ie <= 11",
|
|
"not op_mini all"
|
|
],
|
|
"devDependencies": {
|
|
"@babel/helper-create-regexp-features-plugin": "^7.18.6",
|
|
"@babel/helper-string-parser": "^7.19.4",
|
|
"@craco/craco": "^7.0.0",
|
|
"@faker-js/faker": "^7.4.0",
|
|
"@sentry/webpack-plugin": "^1.18.9",
|
|
"@testing-library/jest-dom": "5.16.1",
|
|
"@testing-library/react": "12.1.2",
|
|
"@testing-library/react-hooks": "^7.0.2",
|
|
"@testing-library/user-event": "13.5.0",
|
|
"@types/codemirror": "^0.0.96",
|
|
"@types/deep-diff": "^1.0.0",
|
|
"@types/dom-mediacapture-record": "^1.0.11",
|
|
"@types/downloadjs": "^1.4.2",
|
|
"@types/draft-js": "^0.11.1",
|
|
"@types/jest": "^27.4.1",
|
|
"@types/js-beautify": "^1.13.2",
|
|
"@types/jshint": "^2.12.0",
|
|
"@types/lodash": "^4.14.120",
|
|
"@types/marked": "^4.0.3",
|
|
"@types/moment-timezone": "^0.5.10",
|
|
"@types/nanoid": "^2.0.0",
|
|
"@types/node": "^10.12.18",
|
|
"@types/node-forge": "^0.10.0",
|
|
"@types/object-hash": "^2.2.1",
|
|
"@types/papaparse": "^5.3.5",
|
|
"@types/prismjs": "^1.16.1",
|
|
"@types/react": "^17.0.2",
|
|
"@types/react-beautiful-dnd": "^11.0.4",
|
|
"@types/react-custom-scrollbars": "^4.0.7",
|
|
"@types/react-dom": "^17.0.2",
|
|
"@types/react-google-recaptcha": "^2.1.1",
|
|
"@types/react-helmet": "^5.0.14",
|
|
"@types/react-instantsearch-dom": "^6.3.0",
|
|
"@types/react-modal": "^3.13.1",
|
|
"@types/react-redux": "^7.0.1",
|
|
"@types/react-router-dom": "^5.1.2",
|
|
"@types/react-select": "^3.0.5",
|
|
"@types/react-syntax-highlighter": "^13.5.2",
|
|
"@types/react-table": "^7.0.13",
|
|
"@types/react-tabs": "^2.3.1",
|
|
"@types/react-test-renderer": "^17.0.1",
|
|
"@types/react-window": "^1.8.2",
|
|
"@types/redux-form": "^8.1.9",
|
|
"@types/redux-mock-store": "^1.0.2",
|
|
"@types/resize-observer-browser": "^0.1.5",
|
|
"@types/showdown": "^1.9.4",
|
|
"@types/styled-components": "^5.1.26",
|
|
"@types/tern": "0.22.0",
|
|
"@types/tinycolor2": "^1.4.2",
|
|
"@types/toposort": "^2.0.3",
|
|
"@types/webfontloader": "1.6.33",
|
|
"@types/zipcelx": "^1.5.0",
|
|
"@typescript-eslint/eslint-plugin": "^5.25.0",
|
|
"@typescript-eslint/parser": "^5.25.0",
|
|
"babel-plugin-module-resolver": "^4.1.0",
|
|
"chalk": "^4.1.1",
|
|
"compression-webpack-plugin": "^10.0.0",
|
|
"cra-bundle-analyzer": "^0.1.0",
|
|
"cy-verify-downloads": "^0.0.5",
|
|
"cypress": "9.7.0",
|
|
"cypress-file-upload": "^4.1.1",
|
|
"cypress-image-snapshot": "^4.0.1",
|
|
"cypress-multi-reporters": "^1.2.4",
|
|
"cypress-real-events": "^1.7.1",
|
|
"cypress-wait-until": "^1.7.2",
|
|
"cypress-xpath": "^1.4.0",
|
|
"diff": "^5.0.0",
|
|
"dotenv": "^8.1.0",
|
|
"eslint": "8.3.0",
|
|
"eslint-config-prettier": "^6.12.0",
|
|
"eslint-import-resolver-babel-module": "^5.3.1",
|
|
"eslint-plugin-cypress": "^2.11.2",
|
|
"eslint-plugin-import": "^2.25.2",
|
|
"eslint-plugin-prettier": "^3.1.4",
|
|
"eslint-plugin-react": "^7.30.0",
|
|
"eslint-plugin-react-hooks": "^2.3.0",
|
|
"eslint-plugin-sort-destructure-keys": "^1.3.5",
|
|
"factory.ts": "^0.5.1",
|
|
"jest-canvas-mock": "^2.3.1",
|
|
"jest-styled-components": "^7.0.8",
|
|
"mocha": "^9.0.2",
|
|
"mocha-junit-reporter": "^2.0.0",
|
|
"mochawesome": "^7.1.2",
|
|
"mochawesome-report-generator": "^6.1.1",
|
|
"msw": "^0.28.0",
|
|
"patch-package": "^6.4.7",
|
|
"plop": "^3.1.1",
|
|
"postinstall-postinstall": "^2.1.0",
|
|
"raw-loader": "^4.0.2",
|
|
"react-is": "^16.12.0",
|
|
"react-test-renderer": "^16.11.0",
|
|
"redux-devtools": "^3.5.0",
|
|
"redux-devtools-extension": "^2.13.8",
|
|
"redux-mock-store": "^1.5.4",
|
|
"semver": "^7.3.5",
|
|
"ts-jest": "27.0.0",
|
|
"ts-jest-mock-import-meta": "^0.12.0",
|
|
"ts-loader": "^9.4.1",
|
|
"webpack-merge": "^5.8.0",
|
|
"workbox-webpack-plugin": "^6.5.3"
|
|
},
|
|
"husky": {
|
|
"hooks": {
|
|
"pre-commit": "lint-staged && git-secrets --scan --untracked && git-secrets --scan -r"
|
|
}
|
|
},
|
|
"resolutions": {
|
|
"browserslist": "4.20.3",
|
|
"chokidar": "3.5.3",
|
|
"css-select": "4.1.3",
|
|
"ejs": "3.1.7",
|
|
"fast-csv": "4.3.6",
|
|
"focus-trap-react/**/tabbable": "5.2.1",
|
|
"json-schema": "0.4.0",
|
|
"node-fetch": "2.6.7",
|
|
"minimatch": "^5.0.0",
|
|
"loader-utils": "^2.0.4",
|
|
"json5": "2.2.3"
|
|
}
|
|
}
|