',{ class: 'spacer' }).appendTo(messageEl)
30 |
31 | // insert content
32 | var contentEl = el('
',{
33 | class: 'text '+type
34 | }).appendTo(messageEl)
35 | el.isElement(message) ? contentEl.append(message) : contentEl.innerHTML = message
36 |
37 | // create message object
38 | var resolve
39 | var result = new Promise(function(resolve_, reject_){
40 | resolve = resolve_
41 | })
42 |
43 | // close method
44 | result.close = function close () {
45 | if (isClosed) return
46 | isClosed = true
47 | messageEl.toggleSlide()
48 | setTimeout(function(){
49 | messageEl.remove()
50 | }, 500)
51 | resolve()
52 | }
53 |
54 | // init
55 | messageEl.toggleSlide()
56 |
57 | // close message on expire
58 | if (expire) setTimeout(result.close, expire)
59 |
60 | // expose message object
61 | return result
62 |
63 | }
64 |
65 | // shortcuts for convenience
66 | message.success = function createErrorMessage (str, expire) {
67 | return message (str, expire, 'success')
68 | }
69 | message.warning = function createErrorMessage (str, expire) {
70 | return message (str, expire, 'warning')
71 | }
72 | message.error = function createErrorMessage (str, expire) {
73 | return message (str, expire !== undefined ? expire : 5000, 'error')
74 | }
75 |
76 | export default message
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | > 3dio.js is deprecated
2 | > visit [https://developers.archilogic.com](https://developers.archilogic.com) for new developements
3 |
4 |
5 |
6 | ## Basic Example
7 |
8 | [Run Demo](https://3dio-aframe.glitch.me)
9 | ```html
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | ```
25 |
26 | Learn more about using 3d.io data at https://furniture.3d.io
27 |
28 | ## Documentation
29 |
30 | https://3d.io/docs/api/2/
31 |
32 | ## Install
33 |
34 | ### Browser
35 |
36 | Requirements: A-frame v0.8 or lower
37 |
38 | ```html
39 |
40 |
41 |
42 |
43 | ```
44 |
45 | ### Server
46 |
47 | `npm install 3dio --save`
48 |
49 | Installation tutorial for beginners: https://www.npmjs.com/package/3dio/tutorial
50 |
51 | ## Features
52 |
53 | https://3d.io/#products
54 |
55 | ## Use Cases
56 |
57 | https://3d.io/#use-cases
58 |
59 | ## Contribute
60 |
61 | Install local dev environment:
62 |
63 | 1. Clone repository:
64 |
65 | `git clone https://github.com/archilogic-com/3dio-js.git ; cd ./3dio-js`
66 | 2. Install global packages:
67 |
68 | `npm install rollup -g ; npm install lite-server -g`
69 | 3. Install local packages:
70 |
71 | `npm install`
72 | 4. Run local dev server:
73 |
74 | `npm start`
75 | 5. Run tests:
76 |
77 | `npm test`
78 |
79 | Please follow our [Contribution guidelines](.github/CONTRIBUTING.md)
80 |
81 | [](https://travis-ci.org/archilogic-com/3dio-js)
82 |
--------------------------------------------------------------------------------
/src/utils/ui/create-prompt-ui.js:
--------------------------------------------------------------------------------
1 | import runtime from '../../core/runtime.js'
2 | import el from './common/dom-el.js'
3 | import createConfirmUi from './create-confirm-ui.js'
4 |
5 | // main
6 |
7 | export default function createPromptUi (a, b) {
8 | runtime.assertBrowser()
9 |
10 | var options
11 | if (el.isElement(a) || typeof a === 'string') {
12 | options = b || {}
13 | options.message = a
14 | } else if (typeof a === 'object') {
15 | options = a
16 | } else {
17 | throw 'Argument mismatch https://3d.io/docs/api/1/ui.html'
18 | }
19 |
20 | var value = options.value || ''
21 | var inputMessage = options.message
22 | var multiLine = options.multiLine
23 | var multiLineHeight = options.multiLineHeight && typeof options.multiLineHeight === 'number' ? options.multiLineHeight+'px' : options.multiLineHeight
24 | options.width = options.width ? options.width : '500px'
25 |
26 | // override message with new one
27 | options.message = el('
')
28 | // append input message
29 | if (inputMessage) options.message.append(inputMessage)
30 | // create input box for prompt
31 | if (multiLine) {
32 | var style = inputMessage && !el.isElement(inputMessage) ? 'margin: 1em 0 0 0;' : 'margin: 0 0 0 0;'
33 | style += 'min-height: '+(multiLineHeight ? multiLineHeight : '150px')+';'
34 | var inputEl = el('