Commit Graph

33 Commits

Author SHA1 Message Date
Ivan Akulov
8a1870daa6
perf: reduce the bundle size, vol. 2 (#24969)
Co-authored-by: Tanvi Bhakta <tanvibhakta@gmail.com>
Co-authored-by: Satish Gandham <hello@satishgandham.com>
2023-07-17 00:19:41 +05:30
albinAppsmith
629999f124
feat: [epic] appsmith design system version 2 deduplication (#22030)
## Description

### Fixes
- [x] https://github.com/appsmithorg/appsmith/issues/19383
- [x] https://github.com/appsmithorg/appsmith/issues/19384
- [x] https://github.com/appsmithorg/appsmith/issues/19385
- [x] https://github.com/appsmithorg/appsmith/issues/19386
- [x] https://github.com/appsmithorg/appsmith/issues/19387
- [x] https://github.com/appsmithorg/appsmith/issues/19388
- [x] https://github.com/appsmithorg/appsmith/issues/19389
- [x] https://github.com/appsmithorg/appsmith/issues/19390
- [x] https://github.com/appsmithorg/appsmith/issues/19391
- [x] https://github.com/appsmithorg/appsmith/issues/19392
- [x] https://github.com/appsmithorg/appsmith/issues/19393
- [x] https://github.com/appsmithorg/appsmith/issues/19394
- [x] https://github.com/appsmithorg/appsmith/issues/19395
- [x] https://github.com/appsmithorg/appsmith/issues/19396
- [x] https://github.com/appsmithorg/appsmith/issues/19397
- [x] https://github.com/appsmithorg/appsmith/issues/19398
- [x] https://github.com/appsmithorg/appsmith/issues/19399
- [x] https://github.com/appsmithorg/appsmith/issues/19400
- [x] https://github.com/appsmithorg/appsmith/issues/19401
- [x] https://github.com/appsmithorg/appsmith/issues/19402
- [x] https://github.com/appsmithorg/appsmith/issues/19403
- [x] https://github.com/appsmithorg/appsmith/issues/19404
- [x] https://github.com/appsmithorg/appsmith/issues/19405
- [x] https://github.com/appsmithorg/appsmith/issues/19406
- [x] https://github.com/appsmithorg/appsmith/issues/19407
- [x] https://github.com/appsmithorg/appsmith/issues/19408
- [x] https://github.com/appsmithorg/appsmith/issues/19409

Fixes # (issue)
> if no issue exists, please create an issue and ask the maintainers
about this first


Media
> A video or a GIF is preferred. when using Loom, don’t embed because it
looks like it’s a GIF. instead, just link to the video


## Type of change

> Please delete options that are not relevant.

- Bug fix (non-breaking change which fixes an issue)
- New feature (non-breaking change which adds functionality)
- Breaking change (fix or feature that would cause existing
functionality to not work as expected)
- Chore (housekeeping or task changes that don't impact user perception)
- This change requires a documentation update


## How Has This Been Tested?
> Please describe the tests that you ran to verify your changes. Provide
instructions, so we can reproduce.
> Please also list any relevant details for your test configuration.
> Delete anything that is not important

- Manual
- Jest
- Cypress

### Test Plan
> Add Testsmith test cases links that relate to this PR

### Issues raised during DP testing
> Link issues raised during DP testing for better visiblity and tracking
(copy link from comments dropped on this PR)


## Checklist:
### Dev activity
- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag


### QA activity:
- [ ] Test plan has been approved by relevant developers
- [ ] Test plan has been peer reviewed by QA
- [ ] Cypress test cases have been added and approved by either SDET or
manual QA
- [ ] Organized project review call with relevant stakeholders after
Round 1/2 of QA
- [ ] Added Test Plan Approved label after reveiwing all Cypress test

---------

Co-authored-by: Ankita Kinger <ankita@appsmith.com>
Co-authored-by: akash-codemonk <67054171+akash-codemonk@users.noreply.github.com>
Co-authored-by: Tanvi Bhakta <tanvi@appsmith.com>
Co-authored-by: Arsalan <arsalanyaldram0211@outlook.com>
Co-authored-by: Aman Agarwal <aman@appsmith.com>
Co-authored-by: Rohit Agarwal <rohit_agarwal@live.in>
Co-authored-by: Nilesh Sarupriya <nilesh@appsmith.com>
Co-authored-by: Nilesh Sarupriya <20905988+nsarupr@users.noreply.github.com>
Co-authored-by: Tanvi Bhakta <tanvibhakta@gmail.com>
Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
Co-authored-by: Parthvi Goswami <parthvigoswami@Parthvis-MacBook-Pro.local>
Co-authored-by: Vijetha-Kaja <vijetha@appsmith.com>
Co-authored-by: Parthvi <80334441+Parthvi12@users.noreply.github.com>
Co-authored-by: Apple <nandan@thinkify.io>
Co-authored-by: Saroj <43822041+sarojsarab@users.noreply.github.com>
Co-authored-by: Sangeeth Sivan <74818788+berzerkeer@users.noreply.github.com>
Co-authored-by: Ashok Kumar M <35134347+marks0351@users.noreply.github.com>
Co-authored-by: Aishwarya-U-R <91450662+Aishwarya-U-R@users.noreply.github.com>
Co-authored-by: rahulramesha <rahul@appsmith.com>
Co-authored-by: Aswath K <aswath.sana@gmail.com>
Co-authored-by: Preet Sidhu <preetsidhu.bits@gmail.com>
Co-authored-by: Vijetha-Kaja <119562824+Vijetha-Kaja@users.noreply.github.com>
Co-authored-by: Shrikant Sharat Kandula <shrikant@appsmith.com>
2023-05-20 00:07:06 +05:30
Ivan Akulov
424d2f6965
chore: upgrade to prettier v2 + enforce import types (#21013)Co-authored-by: Satish Gandham <hello@satishgandham.com> Co-authored-by: Satish Gandham <satish.iitg@gmail.com>
## Description

This PR upgrades Prettier to v2 + enforces TypeScript’s [`import
type`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-8.html#type-only-imports-and-export)
syntax where applicable. It’s submitted as a separate PR so we can merge
it easily.

As a part of this PR, we reformat the codebase heavily:
- add `import type` everywhere where it’s required, and
- re-format the code to account for Prettier 2’s breaking changes:
https://prettier.io/blog/2020/03/21/2.0.0.html#breaking-changes

This PR is submitted against `release` to make sure all new code by team
members will adhere to new formatting standards, and we’ll have fewer
conflicts when merging `bundle-optimizations` into `release`. (I’ll
merge `release` back into `bundle-optimizations` once this PR is
merged.)

### Why is this needed?

This PR is needed because, for the Lodash optimization from
7cbb12af88,
we need to use `import type`. Otherwise, `babel-plugin-lodash` complains
that `LoDashStatic` is not a lodash function.

However, just using `import type` in the current codebase will give you
this:

<img width="962" alt="Screenshot 2023-03-08 at 17 45 59"
src="https://user-images.githubusercontent.com/2953267/223775744-407afa0c-e8b9-44a1-90f9-b879348da57f.png">

That’s because Prettier 1 can’t parse `import type` at all. To parse it,
we need to upgrade to Prettier 2.

### Why enforce `import type`?

Apart from just enabling `import type` support, this PR enforces
specifying `import type` everywhere it’s needed. (Developers will get
immediate TypeScript and ESLint errors when they forget to do so.)

I’m doing this because I believe `import type` improves DX and makes
refactorings easier.

Let’s say you had a few imports like below. Can you tell which of these
imports will increase the bundle size? (Tip: it’s not all of them!)

```ts
// app/client/src/workers/Linting/utils.ts
import { Position } from "codemirror";
import { LintError as JSHintError, LintOptions } from "jshint";
import { get, isEmpty, isNumber, keys, last, set } from "lodash";
```

It’s pretty hard, right?

What about now?

```ts
// app/client/src/workers/Linting/utils.ts
import type { Position } from "codemirror";
import type { LintError as JSHintError, LintOptions } from "jshint";
import { get, isEmpty, isNumber, keys, last, set } from "lodash";
```

Now, it’s clear that only `lodash` will be bundled.

This helps developers to see which imports are problematic, but it
_also_ helps with refactorings. Now, if you want to see where
`codemirror` is bundled, you can just grep for `import \{.*\} from
"codemirror"` – and you won’t get any type-only imports.

This also helps (some) bundlers. Upon transpiling, TypeScript erases
type-only imports completely. In some environment (not ours), this makes
the bundle smaller, as the bundler doesn’t need to bundle type-only
imports anymore.

## Type of change

- Chore (housekeeping or task changes that don't impact user perception)


## How Has This Been Tested?

This was tested to not break the build.

### Test Plan
> Add Testsmith test cases links that relate to this PR

### Issues raised during DP testing
> Link issues raised during DP testing for better visiblity and tracking
(copy link from comments dropped on this PR)


## Checklist:
### Dev activity
- [x] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag


### QA activity:
- [ ] Test plan has been approved by relevant developers
- [ ] Test plan has been peer reviewed by QA
- [ ] Cypress test cases have been added and approved by either SDET or
manual QA
- [ ] Organized project review call with relevant stakeholders after
Round 1/2 of QA
- [ ] Added Test Plan Approved label after reveiwing all Cypress test

---------

Co-authored-by: Satish Gandham <hello@satishgandham.com>
Co-authored-by: Satish Gandham <satish.iitg@gmail.com>
2023-03-16 17:11:47 +05:30
albinAppsmith
110e6085b8
feat: Renamed design system package (#19854)
## Description

This PR includes changes for renaming design system package. Since we
are building new package for the refactored design system components,
the old package is renaming to design-system-old.

Fixes #19536 

## Type of change

- New feature (non-breaking change which adds functionality)
- Breaking change (fix or feature that would cause existing
functionality to not work as expected)


## How Has This Been Tested?

- Manual
- Jest
- Cypress

### Test Plan
> Add Testsmith test cases links that relate to this PR

### Issues raised during DP testing
> Link issues raised during DP testing for better visiblity and tracking
(copy link from comments dropped on this PR)


## Checklist:
### Dev activity
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag


### QA activity:
- [ ] Test plan has been approved by relevant developers
- [ ] Test plan has been peer reviewed by QA
- [ ] Cypress test cases have been added and approved by either SDET or
manual QA
- [ ] Organized project review call with relevant stakeholders after
Round 1/2 of QA
- [ ] Added Test Plan Approved label after reveiwing all Cypress test
2023-01-23 09:20:47 +05:30
Tanvi Bhakta
a0292d432a
feat: import changes batch 2 (#15722)
* Remove treedropdown from ads

* Change Treedropdown imports

* Remove Notification Banner, change imports

* Remove Toggle from ads

* Change toggle imports

* explicitly declare function argument types

* Remove Menu from ads

* Change menu imports

* Remove Spinner from ads

* Change spinner imports

* Remove Radio, import changes

* test: updated flaky test under default meta (#15707)

* updated flaky test

* Updated tests

* updated tests

* updated the tests

* updated tests

* Update constants.ts

* add more typecasting

* Remove ListSegmentHeader, import changes

* Remove TagInputComponent, import changes

* Remove Switch, import changes

* Remove SearchInput, change imports

* Rename TagInputComponent to TagInput

* Remove ProgressiveImage, import changes

* import changes for SearchVariant

* Remove menu divider, import changes

* Remove TableDropdown, import changes

* Remove Switcher

* Remove StatusBar, import changes

* Remove showcase carousel

* Remove RectangularSwitcher, import change

* Add types to TableDropdown's args

* Remove MultiSwitch, import change

* Remove GifPlayerComponent, import change

* Remove DraggableList, import change

* Remove DisplayImageUpload, import change

* Remove DatePickerComponent, import change

* Remove CopyToClipBoard, import change

* Remove ColorSelector, import change

* Remove TabItemBackgroundFill, NumberedStep, ColorPickerComponent

* GifPlayerComponent -> GifPlayer

* change named import

* Remove FormFieldError, change imports

* Update to new version of Tree Dropdown

* Fix issue with ads/index.ts

* Test file fix

* Fix issue with merge?!?!??

* update design system to 1.0.18

* Bump ds version

* bump ds version

* bump ds version

Co-authored-by: NandanAnantharamu <67676905+NandanAnantharamu@users.noreply.github.com>
Co-authored-by: Albin <albin@appsmith.com>
2022-09-02 14:08:17 +05:30
Aswath K
478ae29b34
feat: Disable js toggle button if field is not empty (#12754)
* feat: Disable js toggle button if field is not empty and on non-default value

* allows certain values based on control type

* adds handling for more control types

* Change disabled message

* feat: makes option control delete button keyboard accessible

* adds support for theme values

* Adds support for border radius & box shadow controls

* message change and refactor

* minor correction in the message

* Add proper condition for Datepicker control

* fix one cypress test

* updated tests

* add checks for OptionControl

* Updated table binding test

Co-authored-by: apple <nandan@thinkify.io>
2022-06-16 15:17:35 +05:30
Aswath K
c8e79eca95
feat: Focus widget name or first property when opening property pane (#13513)
* feat: intial investigation.

* Completed focusing of Property title

* removes unused import

* fix issue with inability to focus Dropdown

* checks if PP opened not because of focusing on input elements in widget

* Adds two level of focus for LocationSearch

* adds multi state to KeyValue component

* Adds multi state to Draggable List as well

* Adds multi state to DatePickerControl

* fix: style issue with draggableList & KeyValue comp

* avoids auto focusing on Panel

* remove commentedout code

* fix: cypress tests

* change ActionConstant name

Co-authored-by: Arsalan <arsalanyaldram0211@outlook.com>
2022-05-25 15:35:53 +05:30
Bhavin K
0c5cc1a340
fix: extended min date limit to last 150 years (#10326) 2022-01-13 14:18:43 +05:30
Paul Li
b6703ebe11
BUG-4058 : Inconsistence in the meta properties fallbacks in widgets (#4167)
Datepicker selected data and formatted date will not be empty on clear and not fallback to default date. This is consistent with other widget behaviour
2021-07-16 17:56:39 +05:30
bhavin
c3960a7a4d fix :extended maxDate and minDate limits to 100 years from now. 2021-05-07 18:38:43 +05:30
Paul Li
aedac74d3a Merge branch 'release' into fix/#4023-datepicker-incorrect-placeholder 2021-04-29 05:54:24 -04:00
Satish Gandham
7f7f6f666b
Development: Add eslint rules for code consistency (#4083)
Co-authored-by: Satish Gandham <satish@appsmith.com>
Co-authored-by: Abhinav Jha <abhinav@appsmith.com>
2021-04-28 15:58:39 +05:30
Paul Li
37b8a054e8 [Bug-4023] : Incorrect placeholder in the datepicker widget
-- Change date format to `YYYY-MM-DD HH:mm`
2021-04-23 08:08:37 -04:00
ram-primathon
3b0fb539d5
Property Pane re design (#3057)
Co-authored-by: devrk96 <rohit.kumawat@primathon.in>
Co-authored-by: hetunandu <hetu@appsmith.com>
Co-authored-by: Hetu Nandu <hetunandu@gmail.com>
Co-authored-by: Vicky Bansal <67091118+vicky-primathon@users.noreply.github.com>
Co-authored-by: nandan.anantharamu <nandan.anantharamu@thoughtspot.com>
2021-03-15 17:47:56 +05:30
Abhinav Jha
bdc2d46192
Add min max values to datepicker control (#3215) 2021-02-25 17:47:13 +05:30
NandanAnantharamu
6c80f23201
Feature: DatePicker V2 (#2889)
Co-authored-by: vicky-primathon.in <vicky.bansal@primathon.in>
Co-authored-by: nandan.anantharamu <nandan.anantharamu@thoughtspot.com>
Co-authored-by: Abhinav Jha <abhinav@appsmith.com>
2021-02-23 18:05:09 +05:30
Vicky Bansal
42289173b1
Fix: Date widget crash due to invalid date in date picker (#2845)
Co-authored-by: Abhinav Jha <abhinav@appsmith.com>
2021-02-03 17:00:19 +05:30
Vicky Bansal
11f5687b38
Date picker validation fixed (#2789)
* Date picker validation fixed

* Added date value check to remove unncessary validations

Commented defaultDate validation test as invalid date cannot be saved in date control

* Fixed date selection on user change

Fixed min and max date parsing for date picker control default date

* Added validation for min and max date in validations to handle validations when field is converted to JS
2021-02-02 20:12:49 +05:30
Piyush Mishra
806a139ddb
Make prettier changes (#2337) 2020-12-24 10:02:25 +05:30
Pawan Kumar
9997f2cb9f
Feature: Min and Max date inputs to restrict range in Datepicker Widget (#1865)
* add daterange property control

* fix typescript errors

* update daterangepicker control

* remove daterangepicker control

* add toasts for invalid dates + add test cases

* update test cases

* update test cases

* update test cases + change validation type name + few refactor

* merge release + update toast usage in datepicker control

* update test cases

* update form dsl for test cases

* update test cases

* update setDate command in test cases

* update test cases

* update test case dsl for datepicker widget

* update test cases

Co-authored-by: Pawan Kumar <pawankumar@Pawans-MacBook-Pro.local>
2020-11-27 14:18:38 +05:30
Hetu Nandu
fb65b204a8 JSON stringify fixes 2020-06-25 10:04:57 +00:00
Nikhil Nandagopal
fa71e7c4ef changed date picker to store formatted date 2020-06-19 13:21:07 +05:30
Nikhil Nandagopal
7da961bcc9 fixed clearing date picker 2020-06-09 18:34:47 +05:30
vicky_primathon.in
8b90cbd577 app crashing on date clear issue fix 2020-05-14 19:30:22 +05:30
Vicky Bansal
fc5f417923 Fix/map issues 2020-05-07 10:51:37 +00:00
Vicky Bansal
1f9294b608 Fix/map tab issues 2020-04-29 10:29:02 +00:00
Hetu Nandu
d36092c089 Fix Date widget default date 2020-04-23 06:12:13 +00:00
Nikhil Nandagopal
739ba35dc1 Feature/widgets 2020-04-15 11:42:11 +00:00
Abhinav Jha
27804d6ec6 DRY property control creation. Generate ids for property pane config on the client. Add Multi switch control. Add Icon Widget (WIP). Enable blueprint based actions. 2020-04-14 05:35:16 +00:00
Vicky Bansal
387667d7d1 Fix/date picker 2020-03-20 11:03:50 +00:00
Hetu Nandu
5e0beb9fe7 Property Pane - Convert control to dynamic 2020-02-26 12:44:56 +00:00
Hetu Nandu
fbb7742f0e moved to absolute paths for all fiels 2019-11-25 10:37:27 +05:30
Nikhil Nandagopal
a031606fa1 Feature/date picker 2019-11-06 12:12:41 +00:00