Slate 입력과 선택 위젯
Control에는 Button, Checkbox, Dropdown, Input Box, Multiselect Box, Radio button, Segmented Control, Slider, Textarea와 Toggle이 있습니다.
열 가지 위젯의 공통 속성 disabled는 필수 Boolean이며 기본값은 false입니다. "{{w1.on}}"처럼 Boolean을 반환하는 참조로 사용자 조작을 막을 수 있습니다. 아래 표에서 상호작용값은 사용자의 조작으로 갱신되며, 별도 표시가 없는 속성은 편집자가 구성하는 설정값입니다.
Button
| 속성 | 자료형 | 필수 | 역할 |
|---|---|---|---|
| cssClasses | String[] | 아니요 | 버튼에 적용할 CSS class입니다. 설정값입니다. |
| text | String | 예 | 버튼 문구입니다. 설정값입니다. |
{"cssClasses":["pt-button","pt-intent-primary"],"disabled":false,"text":"Run"}
기본 구성은 위 값에 queryNames 빈 배열을 포함합니다.
{"cssClasses":["pt-button","pt-intent-primary"],"disabled":false,"queryNames":[],"text":"Run"}
클릭에 실행할 동작은 이벤트로 연결합니다.
Checkbox
| 속성 | 자료형 | 필수 | 역할과 변경 |
|---|---|---|---|
| displayValues | String[] | 아니요 | 항목별 표시값입니다. values와 대응하며 생략하면 원래 값을 표시합니다. 설정값입니다. |
| hover | ICheckboxHover | 아니요 | tooltipsEnabled일 때 포인터가 놓인 항목입니다. 상호작용값입니다. |
| selectedDisplayValues | String[] | 예 | 선택한 항목의 표시값입니다. 상호작용값입니다. |
| selectedValues | Any[] | 예 | 체크한 원래 값입니다. 상호작용값입니다. |
| tooltipsEnabled | Boolean | 예 | tooltip 사용 여부입니다. 설정값입니다. |
| tooltipText | String | 아니요 | HTML을 지원하며 null 또는 빈 문자열이면 표시하지 않습니다. 설정값입니다. |
| values | Any[] | 예 | 선택 항목입니다. 설정값입니다. |
ICheckboxHover는 displayValue(String), index(Number), value(Any)를 모두 가집니다. 각각 현재 표시값, 항목 인덱스와 원래 값이며 포인터 상호작용으로 바뀝니다.
Dropdown
| 속성 | 자료형 | 필수 | 역할과 변경 |
|---|---|---|---|
| defaultPosition | String | 아니요 | 열 때 top 또는 bottom 위치를 선택합니다. 설정값입니다. |
| fuzzySearchEnabled | Boolean | 예 | 유사 검색을 켭니다. 설정값입니다. |
| displayValues | Any[] | 아니요 | 표시값이며 생략하면 values를 사용합니다. 설정값입니다. |
| groups | Any[] | 아니요 | 대응하는 values 항목의 그룹입니다. 설정값입니다. |
| maintainValidSelection | Boolean | 예 | 위젯을 다시 계산할 때 현재 선택이 여전히 유효하면 유지합니다. 설정값입니다. |
| searchText | String | 예 | 검색 입력입니다. 상호작용값입니다. |
| selectedDisplayValue | String | 예 | 선택한 표시값입니다. 상호작용값입니다. |
| selectedValue | Any | 예 | 선택한 원래 값입니다. 상호작용값입니다. |
| serverSearchEnabled | Boolean | 예 | 입력 검색어로 새 질의를 사용하는 방식입니다. 끄면 values 안에서 검색합니다. 설정값입니다. |
| values | Any[] | 예 | 선택할 값입니다. displayValues를 쓰면 일대일로 대응해야 합니다. 설정값입니다. |
동적 예제의 query1은 memberName과 memberId 배열을 반환하는 질의입니다. 검색어를 사용하는 질의를 연결합니다.
{
"disabled":false,
"displayValues":"{{query1.memberName}}",
"searchText":"John",
"selectedValue":"65849",
"serverSearchEnabled":true,
"values":"{{query1.memberId}}"
}
정적 선택 예와 기본 구성은 다음과 같습니다.
{
"disabled":false,
"searchText":"",
"selectedValue":"giraffe",
"serverSearchEnabled":false,
"values":["giraffe","rhinoceros","elephant"]
}
{"disabled":false,"searchText":"","selectedValue":null,"serverSearchEnabled":false,"values":[]}
Input Box
| 속성 | 자료형 | 필수 | 역할과 변경 |
|---|---|---|---|
| placeholder | String | 아니요 | 입력 안내입니다. IE9에서는 지원하지 않습니다. 설정값입니다. |
| queryNames | String[] | 아니요 | Enter를 누르면 실행할 질의 이름들입니다. 설정값입니다. |
| text | String | 예 | 사용자가 입력한 값입니다. 상호작용값입니다. |
{"disabled":false,"placeholder":"Choose an animal...","queryNames":["query1"],"text":""}
clear 액션은 입력값을 지웁니다. 기본값은 다음과 같습니다.
{"disabled":false,"placeholder":"placeholder goes here","text":""}
Multiselect Box
| 속성 | 자료형 | 필수 | 역할과 변경 |
|---|---|---|---|
| displayValues | String[] | 아니요 | 표시값이며 생략하면 values입니다. 설정값입니다. |
| fuzzySearchEnabled | Boolean | 예 | 유사 검색을 켭니다. 설정값입니다. |
| placeholder | String | 아니요 | 선택 입력의 안내입니다. 설정값입니다. |
| hasValues | Boolean | 예 | 입력값이 있는지 나타냅니다. 상호작용값입니다. |
| selectedDisplayValues | String[] | 예 | 선택한 표시값들입니다. 상호작용값입니다. |
| selectedValues | Any[] | 예 | 선택한 원래 값들입니다. 상호작용값입니다. |
| searchText | String | 예 | 검색어입니다. 상호작용값입니다. |
| serverSearchEnabled | Boolean | 예 | 검색어로 질의를 사용합니다. 끄면 values에서 검색합니다. 설정값입니다. |
| tokenSeparator | String | 아니요 | 토큰 구분자입니다. 생략하면 토큰화하지 않으며 입력의 줄바꿈은 공백으로 읽습니다. 설정값입니다. |
| values | Any[] | 예 | 선택할 값이며 displayValues와 일대일로 대응합니다. 설정값입니다. |
동적 질의 연결 예입니다.
{
"disabled":false,
"displayValues":"{{query1.memberName}}",
"hasValues":false,
"searchText":"John",
"selectedDisplayValues":[],
"selectedValues":[],
"serverSearchEnabled":true,
"values":"{{query1.memberId}}"
}
정적 항목 두 개를 선택한 상태와 기본 구성은 다음과 같습니다.
{
"disabled":false,
"hasValues":true,
"selectedDisplayValues":["giraffe","rhinoceros"],
"selectedValues":["giraffe","rhinoceros"],
"serverSearchEnabled":false,
"values":["giraffe","rhinoceros","elephant"]
}
{"disabled":false,"hasValues":false,"selectedDisplayValues":[],"selectedValues":[],"serverSearchEnabled":false,"values":[]}
Radio button
| 속성 | 자료형 | 필수 | 역할과 변경 |
|---|---|---|---|
| displayValues | String[] | 아니요 | values의 각 항목에 대응하는 표시값이며 생략하면 원래 값을 표시합니다. 설정값입니다. |
| preselectFirstElement | Boolean | 예 | 첫 항목을 기본 선택할지 정합니다. |
| hover | IRadioHover | 아니요 | tooltipsEnabled일 때 포인터가 놓인 항목입니다. 상호작용값입니다. |
| selectedDisplayValue | String | 예 | 선택한 표시값입니다. 상호작용값입니다. |
| selectedValue | Any | 예 | 선택한 원래 값입니다. 상호작용값입니다. |
| tooltipsEnabled | Boolean | 예 | tooltip 사용 여부입니다. 설정값입니다. |
| tooltipText | String | 아니요 | HTML을 지원하며 null이나 빈 문자열이면 표시하지 않습니다. 설정값입니다. |
| values | Any[] | 예 | 라디오 항목들입니다. 설정값입니다. |
IRadioHover는 필수 displayValue(String), index(Number), value(Any)를 가지며 현재 가리키는 항목을 나타냅니다.
Segmented Control
| 속성 | 자료형 | 필수 | 역할과 변경 |
|---|---|---|---|
| displayValues | Any[] | 아니요 | 표시값이며 생략하면 values입니다. 설정값입니다. |
| hover | ISegmentedControlHover | 아니요 | tooltip을 사용하는 항목의 포인터 상태입니다. 상호작용값입니다. |
| multiselectEnabled | Boolean | 예 | 단일 또는 다중 선택을 정합니다. |
| preselectFirstElement | Boolean | 예 | 첫 항목의 기본 선택 여부입니다. |
| selectionRequired | Boolean | 예 | 선택된 마지막 항목을 해제하지 못하게 합니다. 처음에 선택이 없으면 사용자가 처음 선택한 뒤부터 적용합니다. |
| selectedValues | Any[] | 예 | 선택값 목록입니다. 상호작용값입니다. |
| tooltipsEnabled | Boolean | 예 | tooltip 표시 여부입니다. 상호작용값입니다. |
| tooltipText | String | 아니요 | HTML을 지원하는 tooltip 내용입니다. 설정값입니다. |
| values | Any[] | 예 | 선택값이며 displayValues와 일대일로 대응합니다. 설정값입니다. |
ISegmentedControlHover의 필수 필드는 displayValue(String), index(Number), value(Any)입니다. index는 왼쪽에서 오른쪽으로 센 segment 위치입니다.
Slider
| 속성 | 자료형 | 필수 | 역할과 변경 |
|---|---|---|---|
| formatMode | String | 예 | Grouped는 구분자로 숫자를 묶고, Numeric은 Numeral.js 형식, Time은 Moment 형식을 사용합니다. 설정값입니다. |
| formatter | String | 아니요 | Numeric 또는 Time의 형식 문자열입니다. |
| from | Number | 예 | 범위 모드의 하한 또는 단일 손잡이 값입니다. 상호작용값입니다. |
| groupingDelimiter | String | 아니요 | Grouped의 구분자입니다. 쉼표를 쓰면 1000000을 1,000,000처럼 표시합니다. |
| max / min | Number | 예 | 선택할 수 있는 상한과 하한입니다. 설정값입니다. |
| numLabels | Number | 예 | 축 레이블 수이며 생략 시 기본값은 6입니다. |
| postfix | String | 아니요 | 뒤에 붙일 문구입니다. €는 100을 100 €로 표시합니다. |
| prefix | String | 아니요 | 앞에 붙일 문구입니다. $는 100을 $100으로 표시합니다. |
| rangeEnabled | Boolean | 예 | 범위 또는 단일 값 선택을 정합니다. |
| step | Number | 아니요 | 선택값의 간격입니다. |
| to | Number | 아니요 | 범위 모드의 상한입니다. 상호작용값입니다. |
| updateOnSlide | Boolean | 예 | Release는 손잡이를 놓은 뒤, Slide는 움직이는 동안 갱신하는 선택입니다. Slide 갱신은 100ms로 제한하며 가벼운 UI 동작에 사용하는 것을 권장합니다. |
query1.maxValue가 숫자 하나를 반환하는 범위 예입니다.
{
"disabled":false,
"from":25,
"groupingDelimiter":" ",
"groupingEnabled":true,
"max":"{{query1.maxValue}}",
"min":1,
"prefix":"$",
"rangeEnabled":true,
"to":50
}
기본 구성은 다음과 같습니다.
{"disabled":false,"from":25,"groupingEnabled":false,"max":100,"min":0,"rangeEnabled":false}
Textarea
Textarea는 마지막 입력 후 0.5초 동안 기다렸다가 값을 반영합니다. 이 위젯을 마지막으로 작성한 뒤 0.5초 안에 쓰기 질의를 제출하면 텍스트 끝부분이 빠질 수 있습니다. 제출 전 값 반영 시간을 확보하는 방법과 debounce가 없는 Input Box 대안은 빠른 제출 시 텍스트 누락에 설명합니다.
| 속성 | 자료형 | 필수 | 역할과 변경 |
|---|---|---|---|
| delimiter | String | 아니요 | 값 구분자입니다. text가 hello- -world이고 구분자가 - -이면 values는 hello와 world입니다. |
| hasValues | Boolean | 예 | 입력값 존재 여부입니다. 상호작용값입니다. |
| maxLengthEnabled | Boolean | 예 | 입력 길이를 제한합니다. |
| maxLength | Number | 아니요 | 허용할 최대 길이입니다. |
| placeholder | String | 아니요 | 입력 안내이며 IE9에서는 지원하지 않습니다. |
| text | String | 예 | 입력한 전체 문자열입니다. 상호작용값입니다. |
| values | Array | 예 | 입력을 구분자로 나눈 값입니다. 상호작용값입니다. |
{
"delimiter":";",
"disabled":false,
"hasValues":true,
"placeholder":"Choose an animal...",
"text":"giraffe; rhinoceros; elephant",
"values":["giraffe","rhinoceros","elephant"]
}
{"delimiter":";","disabled":false,"hasValues":false,"text":"","values":[]}
Toggle
| 속성 | 자료형 | 필수 | 역할과 변경 |
|---|---|---|---|
| offLabel / onLabel | String | 예 | 꺼짐과 켜짐 문구입니다. 설정값입니다. |
| useCustomIcons | Boolean 체크박스 | 예 | Blueprint 사용자 아이콘을 사용합니다. |
| onIcon / offIcon | String | 아니요 | 켜짐과 꺼짐 아이콘입니다. 설정값입니다. |
| on | Boolean | 예 | 현재 상태이며 켜짐이 true입니다. 상호작용값입니다. |
날짜와 시각 입력은 Time 위젯, 입력을 표시할 텍스트와 선택 카드는 Text 위젯에 설명합니다. 객체 카드, 리소스 선택과 액션 폼은 Platform 위젯에서 구성합니다.