@elliemae/ds-classnames 2.3.1 → 3.0.0-alpha.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/aggregatedClasses.js +98 -0
- package/dist/cjs/aggregatedClasses.js.map +7 -0
- package/dist/cjs/aggregatedClasses.md +323 -0
- package/dist/cjs/classNameManager.js +83 -0
- package/dist/cjs/classNameManager.js.map +7 -0
- package/dist/cjs/converPropsToFormModifiers.js +62 -0
- package/dist/cjs/converPropsToFormModifiers.js.map +7 -0
- package/dist/cjs/convertPropToFeedBackModifiers.js +65 -0
- package/dist/cjs/convertPropToFeedBackModifiers.js.map +7 -0
- package/dist/cjs/convertPropsToColorModifiers.js +58 -0
- package/dist/cjs/convertPropsToColorModifiers.js.map +7 -0
- package/dist/cjs/convertPropsToLayoutModifiers.js +65 -0
- package/dist/cjs/convertPropsToLayoutModifiers.js.map +7 -0
- package/dist/cjs/convertPropsToSizeModifiers.js +77 -0
- package/dist/cjs/convertPropsToSizeModifiers.js.map +7 -0
- package/dist/cjs/convertPropsToTextModifiers.js +58 -0
- package/dist/cjs/convertPropsToTextModifiers.js.map +7 -0
- package/dist/cjs/dimsum.config.js +37 -0
- package/dist/cjs/dimsum.config.js.map +7 -0
- package/dist/cjs/index.js +38 -0
- package/dist/cjs/index.js.map +7 -0
- package/{cjs → dist/cjs}/validateNativeProps.js +57 -31
- package/dist/cjs/validateNativeProps.js.map +7 -0
- package/dist/esm/aggregatedClasses.js +74 -0
- package/dist/esm/aggregatedClasses.js.map +7 -0
- package/dist/esm/aggregatedClasses.md +323 -0
- package/dist/esm/classNameManager.js +54 -0
- package/dist/esm/classNameManager.js.map +7 -0
- package/dist/esm/converPropsToFormModifiers.js +33 -0
- package/dist/esm/converPropsToFormModifiers.js.map +7 -0
- package/dist/esm/convertPropToFeedBackModifiers.js +36 -0
- package/dist/esm/convertPropToFeedBackModifiers.js.map +7 -0
- package/dist/esm/convertPropsToColorModifiers.js +29 -0
- package/dist/esm/convertPropsToColorModifiers.js.map +7 -0
- package/dist/esm/convertPropsToLayoutModifiers.js +36 -0
- package/dist/esm/convertPropsToLayoutModifiers.js.map +7 -0
- package/dist/esm/convertPropsToSizeModifiers.js +48 -0
- package/dist/esm/convertPropsToSizeModifiers.js.map +7 -0
- package/dist/esm/convertPropsToTextModifiers.js +29 -0
- package/dist/esm/convertPropsToTextModifiers.js.map +7 -0
- package/dist/esm/dimsum.config.js +8 -0
- package/dist/esm/dimsum.config.js.map +7 -0
- package/dist/esm/index.js +9 -0
- package/dist/esm/index.js.map +7 -0
- package/{esm → dist/esm}/validateNativeProps.js +30 -19
- package/dist/esm/validateNativeProps.js.map +7 -0
- package/package.json +43 -35
- package/cjs/aggregatedClasses.js +0 -91
- package/cjs/classNameManager.js +0 -92
- package/cjs/converPropsToFormModifiers.js +0 -39
- package/cjs/convertPropToFeedBackModifiers.js +0 -39
- package/cjs/convertPropsToColorModifiers.js +0 -38
- package/cjs/convertPropsToLayoutModifiers.js +0 -41
- package/cjs/convertPropsToSizeModifiers.js +0 -43
- package/cjs/convertPropsToTextModifiers.js +0 -38
- package/cjs/index.js +0 -12
- package/esm/aggregatedClasses.js +0 -78
- package/esm/classNameManager.js +0 -83
- package/esm/converPropsToFormModifiers.js +0 -37
- package/esm/convertPropToFeedBackModifiers.js +0 -37
- package/esm/convertPropsToColorModifiers.js +0 -36
- package/esm/convertPropsToLayoutModifiers.js +0 -39
- package/esm/convertPropsToSizeModifiers.js +0 -41
- package/esm/convertPropsToTextModifiers.js +0 -36
- package/esm/index.js +0 -2
- package/types/aggregatedClasses.d.ts +0 -11
- package/types/classNameManager.d.ts +0 -28
- package/types/converPropsToFormModifiers.d.ts +0 -14
- package/types/convertPropToFeedBackModifiers.d.ts +0 -16
- package/types/convertPropsToColorModifiers.d.ts +0 -10
- package/types/convertPropsToLayoutModifiers.d.ts +0 -16
- package/types/convertPropsToSizeModifiers.d.ts +0 -24
- package/types/convertPropsToTextModifiers.d.ts +0 -14
- package/types/index.d.ts +0 -2
- package/types/validateNativeProps.d.ts +0 -265
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/aggregatedClasses.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable prettier/prettier */\n/* eslint-disable max-params */\n/* eslint-disable react/prop-types */\nimport React from 'react';\nimport cx from 'obj-str';\nimport { convertPropToCssClassName } from './classNameManager';\nimport { dimsumConfig } from './dimsum.config';\nimport {\n isValidNativeAttribute,\n isNativeHTMLElement,\n} from './validateNativeProps';\n\nexport const cssPrefix = dimsumConfig.classNamePrefix;\n\ntype AggregatedClassesT<T = unknown> = (\n type: any,\n props?: any,\n) => (\n block: string,\n element?: string | null,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n additionalModifiers?: { [key: string]: unknown } | ((arg: any) => { [key: string]: unknown }),\n options?: { [key: string]: unknown },\n) => React.ForwardRefExoticComponent<React.RefAttributes<T>>;\n\nconst generateClassNameWithModifier = (block, element, modifier) =>\n `${cssPrefix}-${block}${element ? `__${element}` : ''}--${modifier}`;\n\nconst appendBlockAndPrefixToObj = (obj, block, element) =>\n obj\n ? Object.keys(obj).reduce(\n (acc, key) => ({\n ...acc,\n [`${generateClassNameWithModifier(block, element, key)}`]: obj[key],\n }),\n {},\n )\n : [];\n\nconst aggregatedClasses: AggregatedClassesT=\n (type, props) =>\n (block, element, additionalModifiers, options = {}) =>\n React.forwardRef(({ innerRef, children, classProps, useComponent, className, as, ...rest }, ref) => {\n // get the additional classNames either from a function or an object\n let otherModifiers = appendBlockAndPrefixToObj(additionalModifiers, block, element);\n if (typeof additionalModifiers === 'function')\n otherModifiers = appendBlockAndPrefixToObj(\n additionalModifiers({ ...rest, ...classProps, className }),\n block,\n element,\n );\n\n const otherModifiersStr = cx(otherModifiers);\n const { prefix, propsToRemoveFromFinalElement = [] } = options;\n const { cssClassName: classNames } = convertPropToCssClassName(\n block,\n null,\n { ...classProps },\n { prefix, element },\n );\n const cleanedPropsPassedDown = { ...props, ...rest };\n propsToRemoveFromFinalElement.forEach((propKey) => {\n delete cleanedPropsPassedDown[propKey];\n });\n\n if (isNativeHTMLElement(block)) {\n Object.keys(cleanedPropsPassedDown).forEach((key) => {\n if (!isValidNativeAttribute(key)) delete cleanedPropsPassedDown[key];\n });\n }\n\n return React.createElement(\n as || type,\n {\n ref: innerRef || ref,\n className: [classNames, otherModifiersStr, className].join(' '),\n ...cleanedPropsPassedDown,\n },\n children,\n );\n });\n\nexport default aggregatedClasses;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;ACIA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAKO,MAAM,YAAY,aAAa;AAatC,MAAM,gCAAgC,CAAC,OAAO,SAAS,aACrD,GAAG,aAAa,QAAQ,UAAU,KAAK,YAAY,OAAO;AAE5D,MAAM,4BAA4B,CAAC,KAAK,OAAO,YAC7C,MACI,OAAO,KAAK,KAAK,OACjB,CAAC,KAAK,QAAS,iCACV,MADU;AAAA,GAEZ,GAAG,8BAA8B,OAAO,SAAS,SAAS,IAAI;AAAA,IAEjE,MAEA;AAEN,MAAM,oBACJ,CAAC,MAAM,UACL,CAAC,OAAO,SAAS,qBAAqB,UAAU,OAC9C,OAAM,WAAW,CAAC,IAA0E,QAAQ;AAAlF,eAAE,YAAU,UAAU,YAAY,cAAc,WAAW,OAA3D,IAAkE,iBAAlE,IAAkE,CAAhE,YAAU,YAAU,cAAY,gBAAc,aAAW;AAE3E,MAAI,iBAAiB,0BAA0B,qBAAqB,OAAO;AAC3E,MAAI,OAAO,wBAAwB;AACjC,qBAAiB,0BACf,oBAAoB,gDAAK,OAAS,aAAd,EAA0B,eAC9C,OACA;AAGJ,QAAM,oBAAoB,GAAG;AAC7B,QAAM,EAAE,QAAQ,gCAAgC,OAAO;AACvD,QAAM,EAAE,cAAc,eAAe,0BACnC,OACA,MACA,mBAAK,aACL,EAAE,QAAQ;AAEZ,QAAM,yBAAyB,kCAAK,QAAU;AAC9C,gCAA8B,QAAQ,CAAC,YAAY;AACjD,WAAO,uBAAuB;AAAA;AAGhC,MAAI,oBAAoB,QAAQ;AAC9B,WAAO,KAAK,wBAAwB,QAAQ,CAAC,QAAQ;AACnD,UAAI,CAAC,uBAAuB;AAAM,eAAO,uBAAuB;AAAA;AAAA;AAIpE,SAAO,OAAM,cACX,MAAM,MACN;AAAA,IACE,KAAK,YAAY;AAAA,IACjB,WAAW,CAAC,YAAY,mBAAmB,WAAW,KAAK;AAAA,KACxD,yBAEL;AAAA;AAIV,IAAO,4BAAQ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
# aggregatedClasses
|
|
2
|
+
|
|
3
|
+
Utility to clean up the renders of too many classNames, internally uses the classNamePipeline and obj-str to ease the workflow.
|
|
4
|
+
Follows BEM methodology (block - element - modifier)
|
|
5
|
+
<br> This utility allows us to create components outside the render method with the block-element-modifiers injected in the className
|
|
6
|
+
## Constructor
|
|
7
|
+
|
|
8
|
+
```jsx
|
|
9
|
+
const blockName = 'form-item'
|
|
10
|
+
|
|
11
|
+
const Label = aggregatedClasses('div')(blockName, 'label')
|
|
12
|
+
const InputController = aggregatedClasses('div')(blockName, 'controller')
|
|
13
|
+
|
|
14
|
+
// generates
|
|
15
|
+
<div className='ds-em-form-item__label' />
|
|
16
|
+
<div className='ds-em-form-item__controller' />
|
|
17
|
+
|
|
18
|
+
// and based on the props passed through classProps is going to inject the proper modifiers
|
|
19
|
+
render() {
|
|
20
|
+
return (
|
|
21
|
+
<Label
|
|
22
|
+
classProps={{
|
|
23
|
+
hasError: true,
|
|
24
|
+
readOnly: true,
|
|
25
|
+
disabled: true
|
|
26
|
+
}}
|
|
27
|
+
/>
|
|
28
|
+
)
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// generates
|
|
32
|
+
<div className='ds-em-form-item__label ds-em-form-item__label--error ds-em-form-item__label--readonly ds-em-form-item__label--disabled' />
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
This creates a component with the specified element or other component and creates the className based on the blockName, the elementName, and the props that this component is going to receive.
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
### Parameters
|
|
40
|
+
```js
|
|
41
|
+
export default type => (block, element, additionalClassNames, options)
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
@type - element or component to create <br>
|
|
45
|
+
@block - block name <br>
|
|
46
|
+
@element - element name
|
|
47
|
+
@additionalModifiers - object that appends new modifiers to the className if the value is true. <br>
|
|
48
|
+
Also we can use a function that takes the props of the component created <br>
|
|
49
|
+
<br>
|
|
50
|
+
@options - Object to configure 'prefix'
|
|
51
|
+
|
|
52
|
+
####Example
|
|
53
|
+
```js
|
|
54
|
+
const Wrapper = aggregatedClasses('div')(blockName, 'elementName', props => ({
|
|
55
|
+
someModifier: true,
|
|
56
|
+
otherModifier: props.hasClass
|
|
57
|
+
}))
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
####Example
|
|
62
|
+
```js
|
|
63
|
+
const Wrapper = aggregatedClasses('div')(blockName, 'elementName', {someClassName: true}, {prefix: 'DIMSUM'})
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
```jsx
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
// this translates
|
|
70
|
+
const Wrapper = ({ children, ...rest }) => {
|
|
71
|
+
const { cssClassName } = convertPropToCssClassName(
|
|
72
|
+
blockName,
|
|
73
|
+
null,
|
|
74
|
+
{ ...rest })
|
|
75
|
+
return (
|
|
76
|
+
<div className={cssClassName}>
|
|
77
|
+
{ children }
|
|
78
|
+
</div>
|
|
79
|
+
)
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// to this
|
|
83
|
+
const WrapperClassed = aggregatedClasses('div')(blockName, null)
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Complete example
|
|
87
|
+
before
|
|
88
|
+
```jsx
|
|
89
|
+
import React, { Component } from 'react'
|
|
90
|
+
import getSvgPath from 'components/basic/form/OutlinedInputField/getSvgPath'
|
|
91
|
+
import { convertPropToCssClassName } from '@elliemae/ds-classnames'
|
|
92
|
+
import { DSTextWrapper } from 'components/index'
|
|
93
|
+
|
|
94
|
+
const blockName = 'labeled-outline'
|
|
95
|
+
const pfxBlockName = `em-ds-${blockName}`
|
|
96
|
+
|
|
97
|
+
class DSFloatingLabelInput extends Component {
|
|
98
|
+
constructor(props) {
|
|
99
|
+
super(props)
|
|
100
|
+
this.wrapper = React.createRef()
|
|
101
|
+
this.pathEl = React.createRef()
|
|
102
|
+
this.outlineEl = React.createRef()
|
|
103
|
+
this.outlineIdleEl = React.createRef()
|
|
104
|
+
this.labelEl = React.createRef()
|
|
105
|
+
this.state = {
|
|
106
|
+
open: props.open,
|
|
107
|
+
value: props.value,
|
|
108
|
+
focused: false,
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
componentWillUnmount() {
|
|
112
|
+
window.removeEventListener('resize', this.updatePath)
|
|
113
|
+
}
|
|
114
|
+
get sizes() {
|
|
115
|
+
return {
|
|
116
|
+
labelWidth: this.labelEl.current.offsetWidth * 0.9,
|
|
117
|
+
width: this.wrapper.current.offsetWidth,
|
|
118
|
+
height: this.wrapper.current.offsetHeight,
|
|
119
|
+
radiusStyle: window.getComputedStyle(this.outlineIdleEl.current).getPropertyValue('border-radius'),
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
updatePath() {
|
|
123
|
+
const path = getSvgPath(this.sizes)
|
|
124
|
+
this.pathEl.current.setAttribute('d', path)
|
|
125
|
+
}
|
|
126
|
+
openOutline() {
|
|
127
|
+
this.setState({ open: true })
|
|
128
|
+
}
|
|
129
|
+
closeOutline() {
|
|
130
|
+
this.setState({ open: false })
|
|
131
|
+
}
|
|
132
|
+
render() {
|
|
133
|
+
const {
|
|
134
|
+
className,
|
|
135
|
+
hasError,
|
|
136
|
+
readOnly,
|
|
137
|
+
disabled,
|
|
138
|
+
inputComponent,
|
|
139
|
+
label,
|
|
140
|
+
} = this.props
|
|
141
|
+
const InputComponent = inputComponent
|
|
142
|
+
const { open, focused, value } = this.state
|
|
143
|
+
const isOpen = open || focused || !!value
|
|
144
|
+
|
|
145
|
+
const { cssClassName: classNames } = convertPropToCssClassName(
|
|
146
|
+
blockName,
|
|
147
|
+
className, {
|
|
148
|
+
hasError,
|
|
149
|
+
readOnly,
|
|
150
|
+
disabled,
|
|
151
|
+
})
|
|
152
|
+
return (
|
|
153
|
+
<div
|
|
154
|
+
ref={this.wrapper}
|
|
155
|
+
className={`${classNames} ${isOpen ? `${pfxBlockName}--opened` : ''} ${focused ? `${pfxBlockName}--focused` : ''}`}
|
|
156
|
+
onMouseEnter={this.openOutline}
|
|
157
|
+
onMouseLeave={this.closeOutline}
|
|
158
|
+
>
|
|
159
|
+
<div
|
|
160
|
+
ref={this.outlineEl}
|
|
161
|
+
className={`${pfxBlockName}__outline`}
|
|
162
|
+
>
|
|
163
|
+
<svg>
|
|
164
|
+
<path
|
|
165
|
+
ref={this.pathEl}
|
|
166
|
+
className={`${pfxBlockName}__outline__path`}
|
|
167
|
+
/>
|
|
168
|
+
</svg>
|
|
169
|
+
</div>
|
|
170
|
+
<div
|
|
171
|
+
ref={this.outlineIdleEl}
|
|
172
|
+
className={`${pfxBlockName}__idle`}
|
|
173
|
+
/>
|
|
174
|
+
<div className={`${pfxBlockName}__content`}>
|
|
175
|
+
<InputComponent
|
|
176
|
+
disabled={disabled}
|
|
177
|
+
hasError={hasError}
|
|
178
|
+
onBlur={() => this.setState({ focused: false })}
|
|
179
|
+
onChange={e => this.setState({ value: e.target.value })}
|
|
180
|
+
onFocus={() => this.setState({ focused: true })}
|
|
181
|
+
readOnly={readOnly}
|
|
182
|
+
value={value}
|
|
183
|
+
/>
|
|
184
|
+
<label
|
|
185
|
+
ref={this.labelEl}
|
|
186
|
+
className={`${pfxBlockName}__label ${isOpen ? `${pfxBlockName}__label--floated` : ''}`}
|
|
187
|
+
>
|
|
188
|
+
<DSTextWrapper
|
|
189
|
+
innerRef={this.labelEl}
|
|
190
|
+
maxWidth='20px'
|
|
191
|
+
text={label}
|
|
192
|
+
textEllipsis
|
|
193
|
+
/>
|
|
194
|
+
</label>
|
|
195
|
+
</div>
|
|
196
|
+
</div>
|
|
197
|
+
)
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
export default DSFloatingLabelInput
|
|
202
|
+
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
after
|
|
206
|
+
|
|
207
|
+
```jsx
|
|
208
|
+
import React, { Component } from 'react'
|
|
209
|
+
import getSvgPath from 'components/basic/form/OutlinedInputField/getSvgPath'
|
|
210
|
+
import { DSTextWrapper } from 'components/index'
|
|
211
|
+
import { aggregatedClasses } from '@elliemae/ds-classnames'
|
|
212
|
+
|
|
213
|
+
const blockName = 'labeled-outline'
|
|
214
|
+
|
|
215
|
+
const Wrapper = aggregatedClasses('div')(blockName, null, ({ isOpen, isFocused }) => ({
|
|
216
|
+
opened: isOpen,
|
|
217
|
+
focused: isFocused,
|
|
218
|
+
}))
|
|
219
|
+
|
|
220
|
+
const FloatingLabel = aggregatedClasses('label')(blockName, 'label', ({ isOpen }) => ({
|
|
221
|
+
floated: isOpen,
|
|
222
|
+
}))
|
|
223
|
+
|
|
224
|
+
const OutlineContent = aggregatedClasses('div')(blockName, 'content')
|
|
225
|
+
const OutlineIdle = aggregatedClasses('div')(blockName, 'idle')
|
|
226
|
+
const Outline = aggregatedClasses('div')(blockName, 'outline')
|
|
227
|
+
const OutlinePath = aggregatedClasses('path')(blockName, 'outline__path')
|
|
228
|
+
|
|
229
|
+
class DSFloatingLabelInput extends Component {
|
|
230
|
+
constructor(props) {
|
|
231
|
+
super(props)
|
|
232
|
+
this.wrapper = React.createRef()
|
|
233
|
+
this.pathEl = React.createRef()
|
|
234
|
+
this.outlineEl = React.createRef()
|
|
235
|
+
this.outlineIdleEl = React.createRef()
|
|
236
|
+
this.labelEl = React.createRef()
|
|
237
|
+
this.state = {
|
|
238
|
+
open: props.open,
|
|
239
|
+
value: props.value,
|
|
240
|
+
focused: false,
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
componentDidMount() {
|
|
244
|
+
// TODO: not getting referenced elements height / width without this
|
|
245
|
+
// this is a temporary workaround
|
|
246
|
+
setTimeout(() => this.updatePath(), 1)
|
|
247
|
+
window.addEventListener('resize', this.updatePath)
|
|
248
|
+
}
|
|
249
|
+
componentWillUnmount() {
|
|
250
|
+
window.removeEventListener('resize', this.updatePath)
|
|
251
|
+
}
|
|
252
|
+
get sizes() {
|
|
253
|
+
return {
|
|
254
|
+
labelWidth: this.labelEl.current.offsetWidth * 0.9,
|
|
255
|
+
width: this.wrapper.current.offsetWidth,
|
|
256
|
+
height: this.wrapper.current.offsetHeight,
|
|
257
|
+
radiusStyle: window.getComputedStyle(this.outlineIdleEl.current).getPropertyValue('border-radius'),
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
updatePath() {
|
|
261
|
+
const path = getSvgPath(this.sizes)
|
|
262
|
+
this.pathEl.current.setAttribute('d', path)
|
|
263
|
+
}
|
|
264
|
+
openOutline() {
|
|
265
|
+
this.setState({ open: true })
|
|
266
|
+
}
|
|
267
|
+
closeOutline() {
|
|
268
|
+
this.setState({ open: false })
|
|
269
|
+
}
|
|
270
|
+
render() {
|
|
271
|
+
const {
|
|
272
|
+
hasError,
|
|
273
|
+
readOnly,
|
|
274
|
+
disabled,
|
|
275
|
+
inputComponent,
|
|
276
|
+
label,
|
|
277
|
+
} = this.props
|
|
278
|
+
const InputComponent = inputComponent
|
|
279
|
+
const { open, focused, value } = this.state
|
|
280
|
+
const isOpen = open || focused || !!value
|
|
281
|
+
|
|
282
|
+
return (
|
|
283
|
+
<Wrapper
|
|
284
|
+
classProps={{ hasError, isOpen, isFocused: focused, readOnly, disabled }}
|
|
285
|
+
innerRef={this.wrapper}
|
|
286
|
+
onMouseEnter={this.openOutline}
|
|
287
|
+
onMouseLeave={this.closeOutline}
|
|
288
|
+
>
|
|
289
|
+
<Outline innerRef={this.outlineEl}>
|
|
290
|
+
<svg>
|
|
291
|
+
<OutlinePath innerRef={this.pathEl} />
|
|
292
|
+
</svg>
|
|
293
|
+
</Outline>
|
|
294
|
+
<OutlineIdle innerRef={this.outlineIdleEl} />
|
|
295
|
+
<OutlineContent>
|
|
296
|
+
<InputComponent
|
|
297
|
+
disabled={disabled}
|
|
298
|
+
hasError={hasError}
|
|
299
|
+
onBlur={() => this.setState({ focused: false })}
|
|
300
|
+
onChange={e => this.setState({ value: e.target.value })}
|
|
301
|
+
onFocus={() => this.setState({ focused: true })}
|
|
302
|
+
readOnly={readOnly}
|
|
303
|
+
value={value}
|
|
304
|
+
/>
|
|
305
|
+
<FloatingLabel
|
|
306
|
+
classProps={{ isOpen }}
|
|
307
|
+
innerRef={this.labelEl}
|
|
308
|
+
>
|
|
309
|
+
<DSTextWrapper
|
|
310
|
+
maxWidth='20px'
|
|
311
|
+
text={label}
|
|
312
|
+
textEllipsis
|
|
313
|
+
/>
|
|
314
|
+
</FloatingLabel>
|
|
315
|
+
</OutlineContent>
|
|
316
|
+
</Wrapper>
|
|
317
|
+
)
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
export default DSFloatingLabelInput
|
|
322
|
+
|
|
323
|
+
```
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { isEmpty } from "@elliemae/ds-utilities/utils";
|
|
3
|
+
import { dimsumConfig } from "./dimsum.config";
|
|
4
|
+
import { pipe as formPipe } from "./converPropsToFormModifiers";
|
|
5
|
+
import { pipe as layoutModifiers } from "./convertPropsToLayoutModifiers";
|
|
6
|
+
import { pipe as feedBackModifiers } from "./convertPropToFeedBackModifiers";
|
|
7
|
+
import { pipe as sizeModifiers } from "./convertPropsToSizeModifiers";
|
|
8
|
+
import { pipe as textModifiers } from "./convertPropsToTextModifiers";
|
|
9
|
+
import { pipe as colorModifiers } from "./convertPropsToColorModifiers";
|
|
10
|
+
const cssPrefix = `${dimsumConfig.classNamePrefix}-`;
|
|
11
|
+
const executePipelines = (props) => {
|
|
12
|
+
const form = formPipe().execute(props);
|
|
13
|
+
const layout = layoutModifiers().execute(props);
|
|
14
|
+
const feedback = feedBackModifiers().execute(props);
|
|
15
|
+
const size = sizeModifiers().execute(props);
|
|
16
|
+
const text = textModifiers().execute(props);
|
|
17
|
+
const color = colorModifiers().execute(props);
|
|
18
|
+
return [...form, ...layout, ...feedback, ...size, ...text, ...color];
|
|
19
|
+
};
|
|
20
|
+
const cssPipeline = (blockName = "block", cssClassNameModifier = "", props = {}, options = {}) => {
|
|
21
|
+
const { prefix, element } = options;
|
|
22
|
+
const prefixBlockName = `${prefix || cssPrefix}${blockName}${element ? `__${element}` : ""}`;
|
|
23
|
+
const pipes = !isEmpty(props) ? executePipelines(props) : [];
|
|
24
|
+
const basePipeline = [prefixBlockName, ...pipes];
|
|
25
|
+
const className = cssClassNameModifier ? [...basePipeline].join(` ${prefixBlockName}--`).concat(` ${cssClassNameModifier}`) : [...basePipeline].join(` ${prefixBlockName}--`);
|
|
26
|
+
return {
|
|
27
|
+
blockName,
|
|
28
|
+
cssPrefix,
|
|
29
|
+
prefixBlockName,
|
|
30
|
+
cssClassName: className,
|
|
31
|
+
mainModifier(modifier) {
|
|
32
|
+
return `${className}--${modifier}`;
|
|
33
|
+
},
|
|
34
|
+
classNameBlock(elementName, usePrefix = true) {
|
|
35
|
+
return `${!usePrefix ? blockName : prefixBlockName}-${elementName}`;
|
|
36
|
+
},
|
|
37
|
+
classNameBlockModifier(modifierName, elementBlockName = "") {
|
|
38
|
+
return `${prefixBlockName}-${elementBlockName}--${modifierName}`;
|
|
39
|
+
},
|
|
40
|
+
classNameElement(elementName, elementBlockName = "") {
|
|
41
|
+
return `${prefixBlockName}${elementBlockName ? `-${elementBlockName}` : ""}__${elementName}`;
|
|
42
|
+
},
|
|
43
|
+
classNameModifier(modifierName, elementName = "") {
|
|
44
|
+
return `${prefixBlockName}${elementName ? `__${elementName}` : ""}--${modifierName}`;
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
var classNameManager_default = cssPipeline;
|
|
49
|
+
export {
|
|
50
|
+
cssPipeline as convertPropToCssClassName,
|
|
51
|
+
cssPrefix,
|
|
52
|
+
classNameManager_default as default
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=classNameManager.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/classNameManager.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable max-params */\nimport { isEmpty } from '@elliemae/ds-utilities/utils';\nimport { dimsumConfig } from './dimsum.config';\nimport { pipe as formPipe } from './converPropsToFormModifiers';\nimport { pipe as layoutModifiers } from './convertPropsToLayoutModifiers';\nimport { pipe as feedBackModifiers } from './convertPropToFeedBackModifiers';\nimport { pipe as sizeModifiers } from './convertPropsToSizeModifiers';\nimport { pipe as textModifiers } from './convertPropsToTextModifiers';\nimport { pipe as colorModifiers } from './convertPropsToColorModifiers';\n\nexport const cssPrefix = `${dimsumConfig.classNamePrefix}-`;\n\nconst executePipelines = (props) => {\n const form = formPipe().execute(props);\n const layout = layoutModifiers().execute(props);\n const feedback = feedBackModifiers().execute(props);\n const size = sizeModifiers().execute(props);\n const text = textModifiers().execute(props);\n const color = colorModifiers().execute(props);\n return [...form, ...layout, ...feedback, ...size, ...text, ...color];\n};\n\n/**\n * Docs: http://getbem.com/naming/\n * blockName\n * cssClassNameModifier: Main modifier\n * props { hasError, hasWarning, hasSuccess, readOnly, disabled}\n *\n * @param blockName\n * @param cssClassNameModifier\n * @param props\n * @param options\n */\nconst cssPipeline: (\n blockName?: string,\n cssClassNameModifier?: string,\n props?: { [key: string]: any },\n options?: { [key: string]: any },\n) => {\n blockName: string;\n cssPrefix: string;\n prefixBlockName: string;\n cssClassName: string;\n mainModifier(modifier: any): string;\n classNameBlock(elementName: any, usePrefix?: boolean): string;\n classNameBlockModifier(modifierName: any, elementBlockName?: string): string;\n classNameElement(elementName: any, elementBlockName?: string): string;\n classNameModifier(modifierName: any, elementName?: string): string;\n} = (blockName = 'block', cssClassNameModifier = '', props = {}, options = {}) => {\n const { prefix, element } = options;\n\n const prefixBlockName = `${prefix || cssPrefix}${blockName}${element ? `__${element}` : ''}`;\n\n // PipeLine\n const pipes = !isEmpty(props) ? executePipelines(props) : [];\n\n const basePipeline = [prefixBlockName, ...pipes];\n\n // specific classname\n const className = cssClassNameModifier\n ? [...basePipeline].join(` ${prefixBlockName}--`).concat(` ${cssClassNameModifier}`)\n : [...basePipeline].join(` ${prefixBlockName}--`);\n\n return {\n blockName,\n cssPrefix,\n prefixBlockName,\n cssClassName: className,\n mainModifier(modifier) {\n return `${className}--${modifier}`;\n },\n classNameBlock(elementName, usePrefix = true) {\n return `${!usePrefix ? blockName : prefixBlockName}-${elementName}`;\n },\n classNameBlockModifier(modifierName, elementBlockName = '') {\n return `${prefixBlockName}-${elementBlockName}--${modifierName}`;\n },\n classNameElement(elementName, elementBlockName = '') {\n return `${prefixBlockName}${elementBlockName ? `-${elementBlockName}` : ''}__${elementName}`;\n },\n classNameModifier(modifierName, elementName = '') {\n return `${prefixBlockName}${elementName ? `__${elementName}` : ''}--${modifierName}`;\n },\n };\n};\n\nexport { cssPipeline as convertPropToCssClassName };\nexport default cssPipeline;\n"],
|
|
5
|
+
"mappings": "AAAA;ACEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEO,MAAM,YAAY,GAAG,aAAa;AAEzC,MAAM,mBAAmB,CAAC,UAAU;AAClC,QAAM,OAAO,WAAW,QAAQ;AAChC,QAAM,SAAS,kBAAkB,QAAQ;AACzC,QAAM,WAAW,oBAAoB,QAAQ;AAC7C,QAAM,OAAO,gBAAgB,QAAQ;AACrC,QAAM,OAAO,gBAAgB,QAAQ;AACrC,QAAM,QAAQ,iBAAiB,QAAQ;AACvC,SAAO,CAAC,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG;AAAA;AAchE,MAAM,cAeF,CAAC,YAAY,SAAS,uBAAuB,IAAI,QAAQ,IAAI,UAAU,OAAO;AAChF,QAAM,EAAE,QAAQ,YAAY;AAE5B,QAAM,kBAAkB,GAAG,UAAU,YAAY,YAAY,UAAU,KAAK,YAAY;AAGxF,QAAM,QAAQ,CAAC,QAAQ,SAAS,iBAAiB,SAAS;AAE1D,QAAM,eAAe,CAAC,iBAAiB,GAAG;AAG1C,QAAM,YAAY,uBACd,CAAC,GAAG,cAAc,KAAK,IAAI,qBAAqB,OAAO,IAAI,0BAC3D,CAAC,GAAG,cAAc,KAAK,IAAI;AAE/B,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,cAAc;AAAA,IACd,aAAa,UAAU;AACrB,aAAO,GAAG,cAAc;AAAA;AAAA,IAE1B,eAAe,aAAa,YAAY,MAAM;AAC5C,aAAO,GAAG,CAAC,YAAY,YAAY,mBAAmB;AAAA;AAAA,IAExD,uBAAuB,cAAc,mBAAmB,IAAI;AAC1D,aAAO,GAAG,mBAAmB,qBAAqB;AAAA;AAAA,IAEpD,iBAAiB,aAAa,mBAAmB,IAAI;AACnD,aAAO,GAAG,kBAAkB,mBAAmB,IAAI,qBAAqB,OAAO;AAAA;AAAA,IAEjF,kBAAkB,cAAc,cAAc,IAAI;AAChD,aAAO,GAAG,kBAAkB,cAAc,KAAK,gBAAgB,OAAO;AAAA;AAAA;AAAA;AAM5E,IAAO,2BAAQ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
const basicAction = ({
|
|
3
|
+
readOnly = false,
|
|
4
|
+
disabled = false,
|
|
5
|
+
checked = false
|
|
6
|
+
}) => {
|
|
7
|
+
const cssModifier = [];
|
|
8
|
+
if (checked)
|
|
9
|
+
cssModifier.push("checked");
|
|
10
|
+
if (readOnly)
|
|
11
|
+
cssModifier.push("readonly");
|
|
12
|
+
if (disabled)
|
|
13
|
+
cssModifier.push("disabled");
|
|
14
|
+
return cssModifier;
|
|
15
|
+
};
|
|
16
|
+
const instance = [basicAction];
|
|
17
|
+
const pipe = () => ({
|
|
18
|
+
getInstance() {
|
|
19
|
+
return instance;
|
|
20
|
+
},
|
|
21
|
+
add(customModifier) {
|
|
22
|
+
instance.push(customModifier);
|
|
23
|
+
},
|
|
24
|
+
execute(props) {
|
|
25
|
+
return instance.reduce((temp, action) => [...temp, ...action(props)], []);
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
var converPropsToFormModifiers_default = pipe;
|
|
29
|
+
export {
|
|
30
|
+
converPropsToFormModifiers_default as default,
|
|
31
|
+
pipe
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=converPropsToFormModifiers.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/converPropsToFormModifiers.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "const basicAction = ({\n readOnly = false,\n disabled = false,\n checked = false,\n}) => {\n const cssModifier = [];\n // input state modifiers\n if (checked) cssModifier.push('checked');\n if (readOnly) cssModifier.push('readonly');\n if (disabled) cssModifier.push('disabled');\n return cssModifier;\n};\n\nconst instance = [basicAction];\nconst pipe = () => ({\n getInstance() {\n return instance;\n },\n add(customModifier) {\n instance.push(customModifier);\n },\n execute(props) {\n return instance.reduce((temp, action) => [...temp, ...action(props)], []);\n },\n});\n\nexport { pipe };\nexport default pipe;\n"],
|
|
5
|
+
"mappings": "AAAA;ACAA,MAAM,cAAc,CAAC;AAAA,EACnB,WAAW;AAAA,EACX,WAAW;AAAA,EACX,UAAU;AAAA,MACN;AACJ,QAAM,cAAc;AAEpB,MAAI;AAAS,gBAAY,KAAK;AAC9B,MAAI;AAAU,gBAAY,KAAK;AAC/B,MAAI;AAAU,gBAAY,KAAK;AAC/B,SAAO;AAAA;AAGT,MAAM,WAAW,CAAC;AAClB,MAAM,OAAO,MAAO;AAAA,EAClB,cAAc;AACZ,WAAO;AAAA;AAAA,EAET,IAAI,gBAAgB;AAClB,aAAS,KAAK;AAAA;AAAA,EAEhB,QAAQ,OAAO;AACb,WAAO,SAAS,OAAO,CAAC,MAAM,WAAW,CAAC,GAAG,MAAM,GAAG,OAAO,SAAS;AAAA;AAAA;AAK1E,IAAO,qCAAQ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
const basicAction = ({
|
|
3
|
+
hasError = false,
|
|
4
|
+
hasWarning = false,
|
|
5
|
+
hasSuccess = false,
|
|
6
|
+
modalType
|
|
7
|
+
}) => {
|
|
8
|
+
const cssModifier = [];
|
|
9
|
+
if (hasError)
|
|
10
|
+
cssModifier.push("error");
|
|
11
|
+
else if (hasWarning)
|
|
12
|
+
cssModifier.push("warning");
|
|
13
|
+
else if (hasSuccess)
|
|
14
|
+
cssModifier.push("success");
|
|
15
|
+
if (modalType)
|
|
16
|
+
cssModifier.push(`modal-type-${modalType}`);
|
|
17
|
+
return cssModifier;
|
|
18
|
+
};
|
|
19
|
+
const instance = [basicAction];
|
|
20
|
+
const pipe = () => ({
|
|
21
|
+
getInstance() {
|
|
22
|
+
return instance;
|
|
23
|
+
},
|
|
24
|
+
add(customModifier) {
|
|
25
|
+
instance.push(customModifier);
|
|
26
|
+
},
|
|
27
|
+
execute(props) {
|
|
28
|
+
return instance.reduce((temp, action) => [...temp, ...action(props)], []);
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
var convertPropToFeedBackModifiers_default = pipe;
|
|
32
|
+
export {
|
|
33
|
+
convertPropToFeedBackModifiers_default as default,
|
|
34
|
+
pipe
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=convertPropToFeedBackModifiers.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/convertPropToFeedBackModifiers.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "const basicAction = ({\n hasError = false,\n hasWarning = false,\n hasSuccess = false,\n modalType,\n}) => {\n const cssModifier = [];\n // valid state modifier\n if (hasError) cssModifier.push('error');\n else if (hasWarning) cssModifier.push('warning');\n else if (hasSuccess) cssModifier.push('success');\n if (modalType) cssModifier.push(`modal-type-${modalType}`);\n return cssModifier;\n};\n\nconst instance = [basicAction];\nconst pipe = () => ({\n getInstance() {\n return instance;\n },\n add(customModifier) {\n instance.push(customModifier);\n },\n execute(props) {\n return instance.reduce((temp, action) => [...temp, ...action(props)], []);\n },\n});\n\nexport { pipe };\nexport default pipe;\n"],
|
|
5
|
+
"mappings": "AAAA;ACAA,MAAM,cAAc,CAAC;AAAA,EACnB,WAAW;AAAA,EACX,aAAa;AAAA,EACb,aAAa;AAAA,EACb;AAAA,MACI;AACJ,QAAM,cAAc;AAEpB,MAAI;AAAU,gBAAY,KAAK;AAAA,WACtB;AAAY,gBAAY,KAAK;AAAA,WAC7B;AAAY,gBAAY,KAAK;AACtC,MAAI;AAAW,gBAAY,KAAK,cAAc;AAC9C,SAAO;AAAA;AAGT,MAAM,WAAW,CAAC;AAClB,MAAM,OAAO,MAAO;AAAA,EAClB,cAAc;AACZ,WAAO;AAAA;AAAA,EAET,IAAI,gBAAgB;AAClB,aAAS,KAAK;AAAA;AAAA,EAEhB,QAAQ,OAAO;AACb,WAAO,SAAS,OAAO,CAAC,MAAM,WAAW,CAAC,GAAG,MAAM,GAAG,OAAO,SAAS;AAAA;AAAA;AAK1E,IAAO,yCAAQ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
const basicAction = ({ color = null }) => {
|
|
3
|
+
const cssModifier = [];
|
|
4
|
+
if (color && color[0]) {
|
|
5
|
+
if (color[1] !== null)
|
|
6
|
+
cssModifier.push(`color-${color[0]}-${color[1]}`);
|
|
7
|
+
else
|
|
8
|
+
cssModifier.push(`color-${color[0]}`);
|
|
9
|
+
}
|
|
10
|
+
return cssModifier;
|
|
11
|
+
};
|
|
12
|
+
const instance = [basicAction];
|
|
13
|
+
const pipe = () => ({
|
|
14
|
+
getInstance() {
|
|
15
|
+
return instance;
|
|
16
|
+
},
|
|
17
|
+
add(customModifier) {
|
|
18
|
+
instance.push(customModifier);
|
|
19
|
+
},
|
|
20
|
+
execute(props) {
|
|
21
|
+
return instance.reduce((temp, action) => [...temp, ...action(props)], []);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
var convertPropsToColorModifiers_default = pipe;
|
|
25
|
+
export {
|
|
26
|
+
convertPropsToColorModifiers_default as default,
|
|
27
|
+
pipe
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=convertPropsToColorModifiers.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/convertPropsToColorModifiers.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "const basicAction = ({ color = null }) => {\n const cssModifier = [];\n if (color && color[0]) {\n if (color[1] !== null) cssModifier.push(`color-${color[0]}-${color[1]}`);\n else cssModifier.push(`color-${color[0]}`);\n }\n return cssModifier;\n};\n\nconst instance = [basicAction];\nconst pipe = () => ({\n getInstance() {\n return instance;\n },\n add(customModifier) {\n instance.push(customModifier);\n },\n execute(props) {\n return instance.reduce((temp, action) => [...temp, ...action(props)], []);\n },\n});\n\nexport { pipe };\nexport default pipe;\n"],
|
|
5
|
+
"mappings": "AAAA;ACAA,MAAM,cAAc,CAAC,EAAE,QAAQ,WAAW;AACxC,QAAM,cAAc;AACpB,MAAI,SAAS,MAAM,IAAI;AACrB,QAAI,MAAM,OAAO;AAAM,kBAAY,KAAK,SAAS,MAAM,MAAM,MAAM;AAAA;AAC9D,kBAAY,KAAK,SAAS,MAAM;AAAA;AAEvC,SAAO;AAAA;AAGT,MAAM,WAAW,CAAC;AAClB,MAAM,OAAO,MAAO;AAAA,EAClB,cAAc;AACZ,WAAO;AAAA;AAAA,EAET,IAAI,gBAAgB;AAClB,aAAS,KAAK;AAAA;AAAA,EAEhB,QAAQ,OAAO;AACb,WAAO,SAAS,OAAO,CAAC,MAAM,WAAW,CAAC,GAAG,MAAM,GAAG,OAAO,SAAS;AAAA;AAAA;AAK1E,IAAO,uCAAQ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
const basicAction = ({
|
|
3
|
+
id,
|
|
4
|
+
buttonType = "default",
|
|
5
|
+
fluidWidth = false,
|
|
6
|
+
fluidHeight = false
|
|
7
|
+
}) => {
|
|
8
|
+
const cssModifier = [];
|
|
9
|
+
if (id)
|
|
10
|
+
cssModifier.push(`id-${id}`);
|
|
11
|
+
if (buttonType)
|
|
12
|
+
cssModifier.push(buttonType);
|
|
13
|
+
if (fluidWidth)
|
|
14
|
+
cssModifier.push("fluid-width");
|
|
15
|
+
if (fluidHeight)
|
|
16
|
+
cssModifier.push("fluid-height");
|
|
17
|
+
return cssModifier;
|
|
18
|
+
};
|
|
19
|
+
const instance = [basicAction];
|
|
20
|
+
const pipe = () => ({
|
|
21
|
+
getInstance() {
|
|
22
|
+
return instance;
|
|
23
|
+
},
|
|
24
|
+
add(customModifier) {
|
|
25
|
+
instance.push(customModifier);
|
|
26
|
+
},
|
|
27
|
+
execute(props) {
|
|
28
|
+
return instance.reduce((temp, action) => [...temp, ...action(props)], []);
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
var convertPropsToLayoutModifiers_default = pipe;
|
|
32
|
+
export {
|
|
33
|
+
convertPropsToLayoutModifiers_default as default,
|
|
34
|
+
pipe
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=convertPropsToLayoutModifiers.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/convertPropsToLayoutModifiers.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "const basicAction = ({\n id,\n buttonType = 'default',\n fluidWidth = false,\n fluidHeight = false,\n}) => {\n const cssModifier = [];\n // buttons types\n if (id) cssModifier.push(`id-${id}`);\n if (buttonType) cssModifier.push(buttonType);\n if (fluidWidth) cssModifier.push('fluid-width');\n if (fluidHeight) cssModifier.push('fluid-height');\n\n return cssModifier;\n};\n\nconst instance = [basicAction];\nconst pipe = () => ({\n getInstance() {\n return instance;\n },\n add(customModifier) {\n instance.push(customModifier);\n },\n execute(props) {\n return instance.reduce((temp, action) => [...temp, ...action(props)], []);\n },\n});\n\nexport { pipe };\nexport default pipe;\n"],
|
|
5
|
+
"mappings": "AAAA;ACAA,MAAM,cAAc,CAAC;AAAA,EACnB;AAAA,EACA,aAAa;AAAA,EACb,aAAa;AAAA,EACb,cAAc;AAAA,MACV;AACJ,QAAM,cAAc;AAEpB,MAAI;AAAI,gBAAY,KAAK,MAAM;AAC/B,MAAI;AAAY,gBAAY,KAAK;AACjC,MAAI;AAAY,gBAAY,KAAK;AACjC,MAAI;AAAa,gBAAY,KAAK;AAElC,SAAO;AAAA;AAGT,MAAM,WAAW,CAAC;AAClB,MAAM,OAAO,MAAO;AAAA,EAClB,cAAc;AACZ,WAAO;AAAA;AAAA,EAET,IAAI,gBAAgB;AAClB,aAAS,KAAK;AAAA;AAAA,EAEhB,QAAQ,OAAO;AACb,WAAO,SAAS,OAAO,CAAC,MAAM,WAAW,CAAC,GAAG,MAAM,GAAG,OAAO,SAAS;AAAA;AAAA;AAK1E,IAAO,wCAAQ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
const basicAction = ({
|
|
3
|
+
size = null,
|
|
4
|
+
extraTight = false,
|
|
5
|
+
tight = false,
|
|
6
|
+
base = false,
|
|
7
|
+
bitLoose = false,
|
|
8
|
+
loose = false,
|
|
9
|
+
extraLoose = false,
|
|
10
|
+
superLoose = false
|
|
11
|
+
}) => {
|
|
12
|
+
const cssModifier = [];
|
|
13
|
+
if (size)
|
|
14
|
+
cssModifier.push(`${size}`);
|
|
15
|
+
if (extraTight)
|
|
16
|
+
cssModifier.push("size-extra-tight");
|
|
17
|
+
else if (tight)
|
|
18
|
+
cssModifier.push("size-tight");
|
|
19
|
+
else if (base)
|
|
20
|
+
cssModifier.push("size-base");
|
|
21
|
+
else if (bitLoose)
|
|
22
|
+
cssModifier.push("size-bit-loose");
|
|
23
|
+
else if (loose)
|
|
24
|
+
cssModifier.push("size-loose");
|
|
25
|
+
else if (extraLoose)
|
|
26
|
+
cssModifier.push("size-extra-loose");
|
|
27
|
+
else if (superLoose)
|
|
28
|
+
cssModifier.push("size-super-loose");
|
|
29
|
+
return cssModifier;
|
|
30
|
+
};
|
|
31
|
+
const instance = [basicAction];
|
|
32
|
+
const pipe = () => ({
|
|
33
|
+
getInstance() {
|
|
34
|
+
return instance;
|
|
35
|
+
},
|
|
36
|
+
add(customModifier) {
|
|
37
|
+
instance.push(customModifier);
|
|
38
|
+
},
|
|
39
|
+
execute(props) {
|
|
40
|
+
return instance.reduce((temp, action) => [...temp, ...action(props)], []);
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
var convertPropsToSizeModifiers_default = pipe;
|
|
44
|
+
export {
|
|
45
|
+
convertPropsToSizeModifiers_default as default,
|
|
46
|
+
pipe
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=convertPropsToSizeModifiers.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/convertPropsToSizeModifiers.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "const basicAction = ({\n size = null,\n extraTight = false,\n tight = false,\n base = false,\n bitLoose = false,\n loose = false,\n extraLoose = false,\n superLoose = false,\n}) => {\n const cssModifier = [];\n if (size) cssModifier.push(`${size}`);\n // Size as Flag\n if (extraTight) cssModifier.push('size-extra-tight');\n else if (tight) cssModifier.push('size-tight');\n else if (base) cssModifier.push('size-base');\n else if (bitLoose) cssModifier.push('size-bit-loose');\n else if (loose) cssModifier.push('size-loose');\n else if (extraLoose) cssModifier.push('size-extra-loose');\n else if (superLoose) cssModifier.push('size-super-loose');\n return cssModifier;\n};\n\nconst instance = [basicAction];\nconst pipe = () => ({\n getInstance() {\n return instance;\n },\n add(customModifier) {\n instance.push(customModifier);\n },\n execute(props) {\n return instance.reduce((temp, action) => [...temp, ...action(props)], []);\n },\n});\n\nexport { pipe };\nexport default pipe;\n"],
|
|
5
|
+
"mappings": "AAAA;ACAA,MAAM,cAAc,CAAC;AAAA,EACnB,OAAO;AAAA,EACP,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,aAAa;AAAA,MACT;AACJ,QAAM,cAAc;AACpB,MAAI;AAAM,gBAAY,KAAK,GAAG;AAE9B,MAAI;AAAY,gBAAY,KAAK;AAAA,WACxB;AAAO,gBAAY,KAAK;AAAA,WACxB;AAAM,gBAAY,KAAK;AAAA,WACvB;AAAU,gBAAY,KAAK;AAAA,WAC3B;AAAO,gBAAY,KAAK;AAAA,WACxB;AAAY,gBAAY,KAAK;AAAA,WAC7B;AAAY,gBAAY,KAAK;AACtC,SAAO;AAAA;AAGT,MAAM,WAAW,CAAC;AAClB,MAAM,OAAO,MAAO;AAAA,EAClB,cAAc;AACZ,WAAO;AAAA;AAAA,EAET,IAAI,gBAAgB;AAClB,aAAS,KAAK;AAAA;AAAA,EAEhB,QAAQ,OAAO;AACb,WAAO,SAAS,OAAO,CAAC,MAAM,WAAW,CAAC,GAAG,MAAM,GAAG,OAAO,SAAS;AAAA;AAAA;AAK1E,IAAO,sCAAQ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
const basicAction = ({ textEllipsis, textAlignment, wordBreak }) => {
|
|
3
|
+
const cssModifier = [];
|
|
4
|
+
if (textEllipsis)
|
|
5
|
+
cssModifier.push("text-overflow-ellipsis");
|
|
6
|
+
if (wordBreak)
|
|
7
|
+
cssModifier.push("text-overflow-word-break");
|
|
8
|
+
if (["left", "right", "center", "justify"].indexOf(textAlignment) > -1)
|
|
9
|
+
cssModifier.push(`text-align-${textAlignment}`);
|
|
10
|
+
return cssModifier;
|
|
11
|
+
};
|
|
12
|
+
const instance = [basicAction];
|
|
13
|
+
const pipe = () => ({
|
|
14
|
+
getInstance() {
|
|
15
|
+
return instance;
|
|
16
|
+
},
|
|
17
|
+
add(customModifier) {
|
|
18
|
+
instance.push(customModifier);
|
|
19
|
+
},
|
|
20
|
+
execute(props) {
|
|
21
|
+
return instance.reduce((temp, action) => [...temp, ...action(props)], []);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
var convertPropsToTextModifiers_default = pipe;
|
|
25
|
+
export {
|
|
26
|
+
convertPropsToTextModifiers_default as default,
|
|
27
|
+
pipe
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=convertPropsToTextModifiers.js.map
|