@signalplus/params-about 0.1.0 → 0.1.1

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/README-CN.md CHANGED
@@ -1,9 +1,6 @@
1
1
  # @signalplus/params-about
2
- [![NPM Version](http://img.shields.io/npm/v/@signalplus/params-about.svg?style=flat-square)](https://www.npmjs.com/package/@signalplus/params-about)
3
- [![Download Month](http://img.shields.io/npm/dm/@signalplus/params-about.svg?style=flat-square)](https://www.npmjs.com/package/@signalplus/params-about)
4
- ![gzip with dependencies: kb](https://img.shields.io/badge/gzip--with--dependencies-kb-brightgreen.svg "gzip with dependencies: kb")
5
- ![typescript](https://img.shields.io/badge/typescript-supported-blue.svg "typescript")
6
- ![pkg.module](https://img.shields.io/badge/pkg.module-supported-blue.svg "pkg.module")
2
+
3
+ [![NPM Version](http://img.shields.io/npm/v/@signalplus/params-about.svg?style=flat-square)](https://www.npmjs.com/package/@signalplus/params-about) [![Download Month](http://img.shields.io/npm/dm/@signalplus/params-about.svg?style=flat-square)](https://www.npmjs.com/package/@signalplus/params-about) ![gzip with dependencies: kb](https://img.shields.io/badge/gzip--with--dependencies-kb-brightgreen.svg 'gzip with dependencies: kb') ![typescript](https://img.shields.io/badge/typescript-supported-blue.svg 'typescript') ![pkg.module](https://img.shields.io/badge/pkg.module-supported-blue.svg 'pkg.module')
7
4
 
8
5
  > `pkg.module supported`, 天然支持 tree-shaking, 使用 es module 引用即可
9
6
 
@@ -13,11 +10,10 @@ A description for the module
13
10
 
14
11
  ## repository
15
12
 
16
-
17
13
  ## Demo
18
14
 
19
-
20
15
  ## Run Example
16
+
21
17
  你可以通过运行项目的 example 来了解这个组件的使用,以下是启动步骤:
22
18
 
23
19
  1. 克隆项目到本地 `git clone `
@@ -27,49 +23,58 @@ A description for the module
27
23
  5. 在你的浏览器看 example (地址通常是 `http://127.0.0.1:3000/examples/test.html`)
28
24
 
29
25
  ## Installation
26
+
30
27
  ```bash
31
28
  npm i -S @signalplus/params-about
32
29
  ```
33
30
 
34
31
  ## Global name - The variable the module exported in `umd` bundle
32
+
35
33
  `ParamsAbout`
36
34
 
37
35
  ## Interface
36
+
38
37
  去 [index.d.ts](./index.d.ts) 查看可用方法和参数
39
38
 
40
39
  ## Usage
40
+
41
41
  ```js
42
- import * as ParamsAbout from '@signalplus/params-about'
42
+ import * as ParamsAbout from '@signalplus/params-about';
43
43
  ```
44
44
 
45
45
  ## CDN
46
+
46
47
  在 HTML 文件中直接引用,你可以在 [CDN: unpkg](https://unpkg.com/@signalplus/params-about/lib/umd/) 看到你能用到的所有 js 脚本
48
+
47
49
  ```html
48
50
  <-- 然后使用你需要的 -->
49
51
  <script src="https://unpkg.com/@signalplus/params-about/lib/umd/<--module-->.js"></script>
50
52
  ```
51
53
 
52
54
  或者,你也可以使用 [CDN: jsdelivr](https://cdn.jsdelivr.net/npm/@signalplus/params-about/lib/umd/) 看到你能用到的所有 js 脚本
55
+
53
56
  ```html
54
57
  <script src="https://cdn.jsdelivr.net/npm/@signalplus/params-about/lib/umd/<--module-->.js"></script>
55
58
  ```
56
59
 
57
60
  ## style
61
+
58
62
  你可能需要主动引入样式文件来应用组件的样式:
63
+
59
64
  ```js
60
65
  // scss
61
- import '@signalplus/params-about/lib/css/index.scss'
66
+ import '@signalplus/params-about/lib/css/index.scss';
62
67
 
63
68
  // css
64
- import '@signalplus/params-about/lib/css/index.css'
69
+ import '@signalplus/params-about/lib/css/index.css';
65
70
  ```
71
+
66
72
  Or
73
+
67
74
  ```scss
68
75
  // scss
69
- @import '~@signalplus/params-about/lib/css/index.scss'
70
-
71
- // css
72
- @import '~@signalplus/params-about/lib/css/index.css'
76
+ @import '~@signalplus/params-about/lib/css/index.scss' // css
77
+ @import '~@signalplus/params-about/lib/css/index.css';
73
78
  ```
74
79
 
75
80
  你也可以通过引入自定义的组件样式文件来自定义样式,文件可以通过复制并修改 `node_modules/@signalplus/params-about/lib/css/index.scss` 得到
package/README.md CHANGED
@@ -1,9 +1,6 @@
1
1
  # @signalplus/params-about
2
- [![NPM Version](http://img.shields.io/npm/v/@signalplus/params-about.svg?style=flat-square)](https://www.npmjs.com/package/@signalplus/params-about)
3
- [![Download Month](http://img.shields.io/npm/dm/@signalplus/params-about.svg?style=flat-square)](https://www.npmjs.com/package/@signalplus/params-about)
4
- ![gzip with dependencies: kb](https://img.shields.io/badge/gzip--with--dependencies-kb-brightgreen.svg "gzip with dependencies: kb")
5
- ![typescript](https://img.shields.io/badge/typescript-supported-blue.svg "typescript")
6
- ![pkg.module](https://img.shields.io/badge/pkg.module-supported-blue.svg "pkg.module")
2
+
3
+ [![NPM Version](http://img.shields.io/npm/v/@signalplus/params-about.svg?style=flat-square)](https://www.npmjs.com/package/@signalplus/params-about) [![Download Month](http://img.shields.io/npm/dm/@signalplus/params-about.svg?style=flat-square)](https://www.npmjs.com/package/@signalplus/params-about) ![gzip with dependencies: kb](https://img.shields.io/badge/gzip--with--dependencies-kb-brightgreen.svg 'gzip with dependencies: kb') ![typescript](https://img.shields.io/badge/typescript-supported-blue.svg 'typescript') ![pkg.module](https://img.shields.io/badge/pkg.module-supported-blue.svg 'pkg.module')
7
4
 
8
5
  > `pkg.module supported`, which means that you can apply tree-shaking in you project
9
6
 
@@ -13,11 +10,10 @@ A description for the module
13
10
 
14
11
  ## repository
15
12
 
16
-
17
13
  ## Demo
18
14
 
19
-
20
15
  ## Run Example
16
+
21
17
  you can see the usage by run the example of the module, here is the step:
22
18
 
23
19
  1. Clone the library `git clone `
@@ -27,49 +23,58 @@ you can see the usage by run the example of the module, here is the step:
27
23
  5. See the example(usually is `http://127.0.0.1:3000/examples/test.html`) in your browser
28
24
 
29
25
  ## Installation
26
+
30
27
  ```bash
31
28
  npm i -S @signalplus/params-about
32
29
  ```
33
30
 
34
31
  ## Global name - The variable the module exported in `umd` bundle
32
+
35
33
  `ParamsAbout`
36
34
 
37
35
  ## Interface
36
+
38
37
  See what method or params you can use in [index.d.ts](./index.d.ts)
39
38
 
40
39
  ## Usage
40
+
41
41
  ```js
42
- import * as ParamsAbout from '@signalplus/params-about'
42
+ import * as ParamsAbout from '@signalplus/params-about';
43
43
  ```
44
44
 
45
45
  ## CDN
46
+
46
47
  Use in html, see what you can use in [CDN: unpkg](https://unpkg.com/@signalplus/params-about/lib/umd/)
48
+
47
49
  ```html
48
50
  <-- use what you want -->
49
51
  <script src="https://unpkg.com/@signalplus/params-about/lib/umd/<--module-->.js"></script>
50
52
  ```
51
53
 
52
54
  Or,see what you can use in [CDN: jsdelivr](https://cdn.jsdelivr.net/npm/@signalplus/params-about/lib/umd/)
55
+
53
56
  ```html
54
57
  <script src="https://cdn.jsdelivr.net/npm/@signalplus/params-about/lib/umd/<--module-->.js"></script>
55
58
  ```
56
59
 
57
60
  ## style
61
+
58
62
  For building style, you may need to import the css or scss file:
63
+
59
64
  ```js
60
65
  // scss
61
- import '@signalplus/params-about/lib/css/index.scss'
66
+ import '@signalplus/params-about/lib/css/index.scss';
62
67
 
63
68
  // css
64
- import '@signalplus/params-about/lib/css/index.css'
69
+ import '@signalplus/params-about/lib/css/index.css';
65
70
  ```
71
+
66
72
  Or
73
+
67
74
  ```scss
68
75
  // scss
69
- @import '~@signalplus/params-about/lib/css/index.scss'
70
-
71
- // css
72
- @import '~@signalplus/params-about/lib/css/index.css'
76
+ @import '~@signalplus/params-about/lib/css/index.scss' // css
77
+ @import '~@signalplus/params-about/lib/css/index.css';
73
78
  ```
74
79
 
75
80
  Or, you can build your custom style by copying, editing and importing `node_modules/@signalplus/params-about/lib/css/index.scss`
package/index.d.ts CHANGED
@@ -1,114 +1,189 @@
1
- import React, { PureComponent } from 'react'
1
+ import React, { PureComponent, ComponentProps } from 'react';
2
+ import ReactGlobalComp from 'react-global-comp';
2
3
 
3
4
  declare enum ParamType {
4
- ParamGroup = -1,
5
- Number = 1,
6
- Percentage = 2,
7
- Bool = 3,
8
- NumberRange = 4,
9
- PercentageRange = 5,
10
- ExpiryLimit = 6,
11
- Expiry = 7,
12
- Phone = 8,
5
+ ParamGroup = -1,
6
+ Number = 1,
7
+ Percentage = 2,
8
+ Bool = 3,
9
+ NumberRange = 4,
10
+ PercentageRange = 5,
11
+ ExpiryLimit = 6,
12
+ Expiry = 7,
13
+ Phone = 8
13
14
  }
14
15
  interface BaseInputProps {
15
- value?: any
16
- onChange?(val: any): void
17
- readonly?: boolean
18
- className?: string
19
- style?: any
20
- [key: string]: any
16
+ value?: any;
17
+ onChange?(val: any): void;
18
+ onBlur?(): void;
19
+ readonly?: boolean;
20
+ className?: string;
21
+ style?: any;
22
+ [key: string]: any | undefined | null;
21
23
  }
22
24
  interface ValidateInfo {
23
- [key: string]: undefined | string | ValidateInfo
25
+ [key: string]: undefined | string | ValidateInfo;
24
26
  }
25
27
 
26
28
  interface ParamValueStruct {
27
- valueId?: string
28
- [key: string]: any
29
+ valueId?: string;
30
+ [key: string]: any;
29
31
  }
30
32
  interface ParamRendererProps extends BaseInputProps {
31
- valueType: ParamType
32
- value?: ParamValueStruct
33
- onChange?(val: ParamValueStruct): void
33
+ valueType?: ParamType;
34
+ value?: ParamValueStruct;
35
+ onChange?(val: ParamValueStruct): void;
34
36
  }
35
37
  declare class ParamRenderer extends PureComponent<ParamRendererProps> {
36
- get typeConfig(): {
37
- name: string
38
- key?: string | undefined
39
- defaultValue?: any
40
- Comp: React.ComponentType<BaseInputProps>
41
- validator?(
42
- value: any,
43
- enableEmpty?: boolean | undefined,
44
- ): string | ValidateInfo | undefined
45
- }
46
- get value(): any
47
- onChange: (val: any) => void
48
- render(): JSX.Element
38
+ get typeConfig(): {
39
+ name: string;
40
+ key?: string | undefined;
41
+ defaultValue?: any;
42
+ Comp: React.ComponentType<BaseInputProps>;
43
+ validator?(value: any): string;
44
+ };
45
+ get value(): any;
46
+ onChange: (val: any) => void;
47
+ render(): JSX.Element;
49
48
  }
50
49
 
51
- declare const ParamTypeConfig: Record<
52
- ParamType,
53
- {
54
- name: string
55
- key?: string
56
- defaultValue?: any
57
- Comp: React.ComponentType<BaseInputProps>
58
- validator?(value: any, enableEmpty?: boolean): ValidateInfo['key']
59
- }
60
- >
50
+ interface ParentSelectorOption {
51
+ label: string;
52
+ value: string;
53
+ children?: ParentSelectorOption[];
54
+ }
55
+ interface ParentSelectorProps extends BaseInputProps {
56
+ parentOptions?: ParentSelectorOption[];
57
+ value?: string;
58
+ onChange?(val: string): void;
59
+ }
61
60
 
62
- declare function formatNum(val: string): number | undefined
63
- declare function isNullLike(val: any): val is undefined | null
64
- declare function emptyValidator(
65
- val: any,
66
- enableEmpty?: boolean,
67
- ): 'should not be empty' | ''
68
- declare function numRangeValidator(
69
- val: {
70
- min?: string
71
- max?: string
72
- },
73
- enableEmpty?: boolean,
74
- ):
75
- | ''
76
- | 'Max should bigger than Min'
77
- | {
78
- min: string
79
- max?: undefined
80
- }
81
- | {
82
- max: string
83
- min?: undefined
84
- }
85
- declare function expiryValidator(
86
- val: string,
87
- enableEmpty?: boolean,
88
- ): 'should not be empty' | '' | 'out of format'
89
- declare function expiriesValidator(
90
- val: string[],
91
- enableEmpty?: boolean,
92
- ):
93
- | string
94
- | {
95
- [x: number]: string
96
- }
97
- declare function isExpired(val?: string): boolean
61
+ interface ParamFormData {
62
+ parentId?: string;
63
+ paramId?: string;
64
+ key: string;
65
+ name?: string;
66
+ valueType: ParamType;
67
+ defaultValue?: {
68
+ valueId?: string;
69
+ [key: string]: any;
70
+ };
71
+ description?: string;
72
+ }
73
+ interface ParamFormProps {
74
+ parentOptions: ParentSelectorProps['parentOptions'];
75
+ expiriesOptions: string[];
76
+ initialValues?: ParamFormData;
77
+ onChange?(data: ParamFormData): void;
78
+ onSubmit?(data: ParamFormData): Promise<any>;
79
+ }
80
+ declare class ParamForm extends PureComponent<ParamFormProps> {
81
+ ref: React.RefObject<any>;
82
+ formItems: {
83
+ label: string;
84
+ name: string;
85
+ Comp: React.ComponentType<BaseInputProps>;
86
+ required?: boolean;
87
+ validator?(_: any, val: any): Promise<any>;
88
+ }[];
89
+ onChange: (changed: any, data: any) => void;
90
+ render(): JSX.Element;
91
+ }
92
+ declare class ParamFormModalEl extends PureComponent<ParamFormProps & Required<Pick<ParamFormProps, 'onSubmit'>>> {
93
+ ref: React.RefObject<ParamForm>;
94
+ state: {
95
+ visible: boolean;
96
+ };
97
+ onShow: () => void;
98
+ onHide: () => void;
99
+ onSubmit: () => any;
100
+ render(): JSX.Element;
101
+ }
102
+ declare class ParamFormModal {
103
+ static el: ReactGlobalComp<ParamFormProps & Required<Pick<ParamFormProps, "onSubmit">>>;
104
+ static show(props: Omit<ComponentProps<typeof ParamFormModalEl>, 'visible'>): Promise<void>;
105
+ static hide(): Promise<void>;
106
+ }
98
107
 
99
- export {
100
- BaseInputProps,
101
- ParamRenderer,
102
- ParamRendererProps,
103
- ParamType,
104
- ParamTypeConfig,
105
- ParamValueStruct,
106
- ValidateInfo,
107
- emptyValidator,
108
- expiriesValidator,
109
- expiryValidator,
110
- formatNum,
111
- isExpired,
112
- isNullLike,
113
- numRangeValidator,
108
+ interface ParamValueEditorData {
109
+ paramId: string;
110
+ description?: string;
111
+ valueBefore: {
112
+ valueId?: string;
113
+ [key: string]: any;
114
+ };
115
+ value?: {
116
+ valueId?: string;
117
+ [key: string]: any;
118
+ };
114
119
  }
120
+ interface ParamValueEditorProps {
121
+ allParams: ParentSelectorProps['parentOptions'];
122
+ expiriesOptions: string[];
123
+ valueType: ParamType;
124
+ initialValues: ParamValueEditorData;
125
+ onChange?(data: ParamValueEditorData): void;
126
+ onSubmit?(data: ParamValueEditorData): Promise<any>;
127
+ }
128
+ declare class ParamValueEditor extends PureComponent<ParamValueEditorProps> {
129
+ ref: React.RefObject<any>;
130
+ formItems: {
131
+ label: string;
132
+ name: string;
133
+ Comp: React.ComponentType<BaseInputProps>;
134
+ required?: boolean;
135
+ validator?(_: any, val: any): Promise<any>;
136
+ }[];
137
+ onChange: (changed: any, data: any) => void;
138
+ render(): JSX.Element;
139
+ }
140
+ declare class ParamValueEditorModalEl extends PureComponent<ParamValueEditorProps & Required<Pick<ParamValueEditorProps, 'onSubmit'>>> {
141
+ ref: React.RefObject<ParamValueEditor>;
142
+ state: {
143
+ visible: boolean;
144
+ };
145
+ onShow: () => void;
146
+ onHide: () => void;
147
+ onSubmit: () => any;
148
+ render(): JSX.Element;
149
+ }
150
+ declare class ParamValueEditorModal {
151
+ static el: ReactGlobalComp<ParamValueEditorProps & Required<Pick<ParamValueEditorProps, "onSubmit">>>;
152
+ static show(props: Omit<ComponentProps<typeof ParamValueEditorModalEl>, 'visible'>): Promise<void>;
153
+ static hide(): Promise<void>;
154
+ }
155
+
156
+ declare const ParamTypeConfig: Record<ParamType, {
157
+ name: string;
158
+ key?: string;
159
+ defaultValue?: any;
160
+ Comp: React.ComponentType<BaseInputProps>;
161
+ validator?(value: any): string;
162
+ }>;
163
+ declare function paramValidator(val: any, values: {
164
+ valueType: ParamType;
165
+ }): string;
166
+ declare const ParamTypeOptions: {
167
+ value: string;
168
+ label: string;
169
+ name: string;
170
+ key?: string | undefined;
171
+ defaultValue?: any;
172
+ Comp: React.ComponentType<BaseInputProps>;
173
+ validator?(value: any): string;
174
+ }[];
175
+
176
+ declare function formatNum(val: string): number | undefined;
177
+ declare function isNullLike(val: any): val is undefined | null;
178
+ declare function emptyValidator(val: any, enableEmpty?: boolean): "Should not be empty" | "";
179
+ declare function numRangeValidator(val: {
180
+ min?: string;
181
+ max?: string;
182
+ }, enableEmpty?: boolean): string;
183
+ declare function expiryValidator(val: string, enableEmpty?: boolean): "Should not be empty" | "" | "Out of format";
184
+ declare function expiriesValidator(val: string[]): string;
185
+ declare function keyValidator(val: string): string;
186
+ declare function isExpired(val?: string): boolean;
187
+ declare function validatorCvt(validator: (val: any, values: any) => ValidateInfo['string'], form?: () => any): (_: any, val: any) => Promise<any>;
188
+
189
+ export { BaseInputProps, ParamForm, ParamFormData, ParamFormModal, ParamFormProps, ParamRenderer, ParamRendererProps, ParamType, ParamTypeConfig, ParamTypeOptions, ParamValueEditor, ParamValueEditorData, ParamValueEditorModal, ParamValueEditorModalEl, ParamValueEditorProps, ParamValueStruct, ValidateInfo, emptyValidator, expiriesValidator, expiryValidator, formatNum, isExpired, isNullLike, keyValidator, numRangeValidator, paramValidator, validatorCvt };
@@ -0,0 +1,19 @@
1
+ @import "./var";
2
+
3
+ .param-bool {
4
+ flex: 1;
5
+ display: flex;
6
+ align-items: center;
7
+ height: $input-height;
8
+ }
9
+
10
+ .param-bool-option {
11
+ display: inline-flex;
12
+ align-items: center;
13
+ margin: 0 16px 0 0;
14
+ cursor: pointer;
15
+
16
+ > svg {
17
+ margin: 0 5px 0 0;
18
+ }
19
+ }
@@ -0,0 +1,108 @@
1
+ @import "./var";
2
+
3
+ .param-expiries {
4
+ position: relative;
5
+ flex: 1;
6
+ max-width: 100%;
7
+ min-width: calc(7em + 24px + 2px);
8
+ height: $input-height;
9
+ padding: 0 calc(1em + 14px) 0 10px;
10
+ line-height: 0;
11
+ border: 1px solid $border-color;
12
+ border-radius: 2px;
13
+ cursor: pointer;
14
+
15
+ &.readonly {
16
+ padding: 0;
17
+ border-color: transparent;
18
+ overflow: initial;
19
+ white-space: initial;
20
+ cursor: default;
21
+ }
22
+
23
+ &.multiple {
24
+ text-overflow: ellipsis;
25
+ overflow: hidden;
26
+ white-space: nowrap;
27
+ }
28
+ }
29
+
30
+ .param-expiries-arrow {
31
+ position: absolute;
32
+ top: 50%;
33
+ right: 7px;
34
+ margin: -0.5em 0 0;
35
+ color: $border-color !important;
36
+ }
37
+
38
+ .param-expiries-val {
39
+ display: inline-block;
40
+ margin: 9px 6px 0 0;
41
+ line-height: 20px;
42
+ }
43
+
44
+ .param-expiries-placeholder {
45
+ display: inline-block;
46
+ margin: 9px 6px 0 0;
47
+ line-height: 20px;
48
+ color: $placeholder-color;
49
+ max-width: 100%;
50
+ white-space: nowrap;
51
+ text-overflow: ellipsis;
52
+ overflow: hidden;
53
+ }
54
+
55
+ .param-expiries-multi-val {
56
+ display: inline-block;
57
+ margin: 9px 6px 0 0;
58
+ padding: 0 3px 0 8px;
59
+ line-height: 20px;
60
+ border-radius: 2px;
61
+ background: rgba(0, 0, 0, 0.1);
62
+
63
+ svg {
64
+ display: inline-block;
65
+ margin: 0 0 0 4px;
66
+ color: #999;
67
+ cursor: pointer;
68
+ }
69
+ }
70
+
71
+ .param-expiries-popover {
72
+
73
+ .ant-popover-inner-content {
74
+ max-height: 50vh;
75
+ overflow-y: auto;
76
+ }
77
+ }
78
+
79
+ .param-expiries-option {
80
+ display: flex;
81
+ align-items: center;
82
+ justify-content: space-between;
83
+ width: 240px;
84
+ margin: 0 -16px;
85
+ padding: 0 16px;
86
+ line-height: 30px;
87
+ color: rgba($text-color, 0.6);
88
+ cursor: pointer;
89
+
90
+ &.param-expiries-option-checked {
91
+ font-weight: bold;
92
+ color: $text-color;
93
+ }
94
+
95
+ &.param-expiries-option-disabled {
96
+ cursor: not-allowed;
97
+ opacity: 0.5;
98
+ }
99
+
100
+ &:hover {
101
+ color: $text-color;
102
+ background: rgba(0, 0, 0, 0.1);
103
+ }
104
+
105
+ svg {
106
+ color: #57be6a;
107
+ }
108
+ }
@@ -0,0 +1,80 @@
1
+ @import "./var";
2
+
3
+ .param-expiries-limit {
4
+ padding: calc((#{$input-height} - 20px) / 2) 0;
5
+
6
+ .param-number-range {
7
+ margin: 0 0 0 10px;
8
+ }
9
+
10
+ .param-number-range-prefix {
11
+ display: none;
12
+ }
13
+
14
+ .param-number-suffix {
15
+ padding: 0 7px;
16
+ }
17
+ }
18
+
19
+ .param-expiries-limit-val {
20
+ display: block;
21
+
22
+ &:after {
23
+ content: ';'
24
+ }
25
+ }
26
+
27
+ .param-expiries-limit-val-sep {
28
+ padding: 0 4px;
29
+ color: #999;
30
+ }
31
+
32
+ .param-expiries-limit-inputs {
33
+ display: grid;
34
+ grid-row-gap: 10px;
35
+ grid-column-gap: 10px;
36
+ grid-template-rows: auto;
37
+ grid-template-columns: auto auto auto auto;
38
+
39
+ .param-expiries, .param-number-range, .param-arr-ops {
40
+ height: 30px;
41
+ margin: 0;
42
+
43
+ &.readonly {
44
+ height: 20px;
45
+ line-height: 18px;
46
+
47
+ .param-expiries-val {
48
+ margin-top: 0;
49
+ }
50
+ }
51
+
52
+ .param-expiries-placeholder, .param-expiries-val {
53
+ margin-top: 4px;
54
+ }
55
+
56
+ .param-number-range-sep {
57
+ margin: 0 6px;
58
+ }
59
+ }
60
+
61
+ .param-arr-ops {
62
+ padding: 0;
63
+ }
64
+
65
+ //.param-arr-ops:nth-child(8):last-child {
66
+ //
67
+ // .param-arr-ops-del {
68
+ // visibility: hidden;
69
+ // pointer-events: none;
70
+ // }
71
+ //}
72
+ }
73
+
74
+ .param-expiries-popover {
75
+ padding: 0 !important;
76
+
77
+ .ant-popover-arrow {
78
+ display: none;
79
+ }
80
+ }