forked from tsai/budibase
32 changed files with 2 additions and 87481 deletions
@ -1,2 +1,3 @@ |
|||||
myapps/ |
myapps/ |
||||
config.js |
config.js |
||||
|
builder/ |
||||
|
|||||
Binary file not shown.
|
Before Width: | Height: | Size: 4.9 KiB |
|
Before Width: | Height: | Size: 12 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
@ -1,46 +0,0 @@ |
|||||
main.svelte-15fmzor{height:100%;width:100%;font-family:"Roboto", Helvetica, Arial, sans-serif} |
|
||||
.root.svelte-e4n7zy{position:fixed;margin:0 auto;text-align:center;top:20%;width:100%}.inner.svelte-e4n7zy{display:inline-block;margin:auto}.logo.svelte-e4n7zy{width:300px;margin-bottom:40px}.root.svelte-e4n7zy .option{width:250px}.app-link.svelte-e4n7zy{margin-top:10px;display:block} |
|
||||
.root.svelte-y7jhgd{height:100%;width:100%;display:flex;flex-direction:column}.top-nav.svelte-y7jhgd{flex:0 0 auto;height:25px;background:white;padding:5px;width:100%}.content.svelte-y7jhgd{flex:1 1 auto;width:100%;height:100px}.content.svelte-y7jhgd>div.svelte-y7jhgd{height:100%;width:100%}.topnavitem.svelte-y7jhgd{cursor:pointer;color:var(--secondary50);padding:0px 15px;font-weight:600;font-size:.9rem}.topnavitem.svelte-y7jhgd:hover{color:var(--secondary75);font-weight:600}.active.svelte-y7jhgd{color:var(--primary100);font-weight:900} |
|
||||
button.svelte-bxuckr{border-style:none;background-color:rgba(0,0,0,0);cursor:pointer;outline:none}button.svelte-bxuckr:hover{color:var(--hovercolor)}button.svelte-bxuckr:active{outline:none} |
|
||||
.border-normal.svelte-vnon4v{border-radius:var(--borderradiusall)}.border-left.svelte-vnon4v{border-radius:var(--borderradius) 0 0 var(--borderradius)}.border-right.svelte-vnon4v{border-radius:0 var(--borderradius) var(--borderradius) 0}.border-middle.svelte-vnon4v{border-radius:0}button.svelte-vnon4v{border-style:solid;padding:7.5px 15px;cursor:pointer;margin:5px;border-radius:5px}.primary.svelte-vnon4v{background-color:var(--primary100);border-color:var(--primary100);color:var(--white)}.primary.svelte-vnon4v:hover{background-color:var(--primary75);border-color:var(--primary75)}.primary.svelte-vnon4v:active{background-color:var(--primarydark);border-color:var(--primarydark)}.primary-outline.svelte-vnon4v{background-color:var(--white);border-color:var(--primary100);color:var(--primary100)}.primary-outline.svelte-vnon4v:hover{background-color:var(--primary10)}.primary-outline.svelte-vnon4v:pressed{background-color:var(--primary25)}.secondary.svelte-vnon4v{background-color:var(--secondary100);border-color:var(--secondary100);color:var(--white)}.secondary.svelte-vnon4v:hover{background-color:var(--secondary75);border-color:var(--secondary75)}.secondary.svelte-vnon4v:pressed{background-color:var(--secondarydark);border-color:var(--secondarydark)}.secondary-outline.svelte-vnon4v{background-color:var(--white);border-color:var(--secondary100);color:var(--secondary100)}.secondary-outline.svelte-vnon4v:hover{background-color:var(--secondary10)}.secondary-outline.svelte-vnon4v:pressed{background-color:var(--secondary25)}.success.svelte-vnon4v{background-color:var(--success100);border-color:var(--success100);color:var(--white)}.success.svelte-vnon4v:hover{background-color:var(--success75);border-color:var(--success75)}.success.svelte-vnon4v:pressed{background-color:var(--successdark);border-color:var(--successdark)}.success-outline.svelte-vnon4v{background-color:var(--white);border-color:var(--success100);color:var(--success100)}.success-outline.svelte-vnon4v:hover{background-color:var(--success10)}.success-outline.svelte-vnon4v:pressed{background-color:var(--success25)}.deletion.svelte-vnon4v{background-color:var(--deletion100);border-color:var(--deletion100);color:var(--white)}.deletion.svelte-vnon4v:hover{background-color:var(--deletion75);border-color:var(--deletion75)}.deletion.svelte-vnon4v:pressed{background-color:var(--deletiondark);border-color:var(--deletiondark)}.deletion-outline.svelte-vnon4v{background-color:var(--white);border-color:var(--deletion100);color:var(--deletion100)}.deletion-outline.svelte-vnon4v:hover{background-color:var(--deletion10)}.deletion-outline.svelte-vnon4v:pressed{background-color:var(--deletion25)} |
|
||||
.root.svelte-17zel0b{display:grid;grid-template-columns:250px 1fr 300px;height:100%;width:100%}.ui-nav.svelte-17zel0b{grid-column:1;background-color:var(--secondary5);height:100%}.preview-pane.svelte-17zel0b{grid-column:2}.components-pane.svelte-17zel0b{grid-column:3;background-color:var(--secondary5);min-height:0px;overflow-y:hidden}.pages-list-container.svelte-17zel0b{padding-top:2rem}.components-nav-header.svelte-17zel0b{font-size:.9rem}.nav-group-header.svelte-17zel0b{font-size:.9rem;padding-left:1rem}.nav-items-container.svelte-17zel0b{padding:1rem 1rem 0rem 1rem}.nav-group-header.svelte-17zel0b{display:grid;grid-template-columns:[icon] auto [title] 1fr [button] auto;padding:2rem 1rem 0rem 1rem;font-size:.9rem;font-weight:bold}.nav-group-header.svelte-17zel0b>div.svelte-17zel0b:nth-child(1){padding:0rem .5rem 0rem 0rem;vertical-align:bottom;grid-column-start:icon;margin-right:5px}.nav-group-header.svelte-17zel0b>span.svelte-17zel0b:nth-child(2){margin-left:5px;vertical-align:bottom;grid-column-start:title;margin-top:auto}.nav-group-header.svelte-17zel0b>div.svelte-17zel0b:nth-child(3){vertical-align:bottom;grid-column-start:button;cursor:pointer;color:var(--primary75)}.nav-group-header.svelte-17zel0b>div.svelte-17zel0b:nth-child(3):hover{color:var(--primary75)} |
|
||||
.root.svelte-q8uz1n{height:100%;display:flex}.content.svelte-q8uz1n{flex:1 1 auto;height:100%;background-color:var(--white);margin:0}.nav.svelte-q8uz1n{flex:0 1 auto;width:300px;height:100%} |
|
||||
.root.svelte-117bbrk{padding-bottom:10px;padding-left:10px;font-size:.9rem;color:var(--secondary50);font-weight:bold}.hierarchy-item.svelte-117bbrk{cursor:pointer;padding:5px 0px}.hierarchy-item.svelte-117bbrk:hover{color:var(--secondary100)}.component.svelte-117bbrk{margin-left:5px}.selected.svelte-117bbrk{color:var(--primary100);font-weight:bold}.title.svelte-117bbrk{margin-left:10px} |
|
||||
.uk-modal-dialog.svelte-91ta29{border-radius:.3rem} |
|
||||
.root.svelte-1r2dipt{color:var(--secondary50);font-size:.9rem;font-weight:bold}.hierarchy-item.svelte-1r2dipt{cursor:pointer;padding:5px 0px}.hierarchy-item.svelte-1r2dipt:hover{color:var(--secondary)}.component.svelte-1r2dipt{margin-left:5px}.currentfolder.svelte-1r2dipt{color:var(--secondary100)}.selected.svelte-1r2dipt{color:var(--primary100);font-weight:bold}.title.svelte-1r2dipt{margin-left:10px} |
|
||||
.root.svelte-r1aen3{height:100%;display:flex;flex-direction:column;border-style:solid;border-width:1px 0 0 0;border-color:var(--slate)}.title.svelte-r1aen3{padding:1rem;display:grid;grid-template-columns:[name] 1fr [actions] auto;color:var(--secondary100);font-size:.9rem;font-weight:bold}.title.svelte-r1aen3>div.svelte-r1aen3:nth-child(1){grid-column-start:name;color:var(--secondary100)}.title.svelte-r1aen3>div.svelte-r1aen3:nth-child(2){grid-column-start:actions}.component-props-container.svelte-r1aen3{flex:1 1 auto;overflow-y:auto} |
|
||||
.section-container.svelte-yk1mmr{padding:15px;border-style:dotted;border-width:1px;border-color:var(--lightslate);border-radius:2px}.section-container.svelte-yk1mmr:nth-child(1){margin-bottom:15px}.row-text.svelte-yk1mmr{margin-right:15px;color:var(--primary100)}input.svelte-yk1mmr{margin-right:15px}p.svelte-yk1mmr>span.svelte-yk1mmr{margin-left:30px}.header.svelte-yk1mmr{display:grid;grid-template-columns:[title] 1fr [icon] auto}.header.svelte-yk1mmr>div.svelte-yk1mmr:nth-child(1){grid-column-start:title}.header.svelte-yk1mmr>div.svelte-yk1mmr:nth-child(2){grid-column-start:icon} |
|
||||
.root.svelte-18ccx5u{display:flex;flex-direction:column}.library-header.svelte-18ccx5u{font-size:1.1em;border-color:var(--primary25);border-width:1px 0px;border-style:solid;background-color:var(--primary10);padding:5px 0;flex:0 0 auto}.library-container.svelte-18ccx5u{padding:0 0 10px 10px;flex:1 1 auto;min-height:0px}.inner-header.svelte-18ccx5u{font-size:0.9em;font-weight:bold;margin-top:7px;margin-bottom:3px}.component.svelte-18ccx5u{padding:2px 0px;cursor:pointer}.component.svelte-18ccx5u:hover{background-color:var(--lightslate)}.component.svelte-18ccx5u>.name.svelte-18ccx5u{color:var(--secondary100);display:inline-block}.component.svelte-18ccx5u>.description.svelte-18ccx5u{font-size:0.8em;color:var(--secondary75);display:inline-block;margin-left:10px} |
|
||||
h1.svelte-11kb98w{font-size:1.2em} |
|
||||
.component-container.svelte-12kdu9y{grid-row-start:middle;grid-column-start:middle;position:relative;overflow:hidden;padding-top:56.25%;margin:auto}.component-container.svelte-12kdu9y iframe.svelte-12kdu9y{border:0;height:100%;left:0;position:absolute;top:0;width:100%} |
|
||||
h4.svelte-sqtlby{margin-top:20px} |
|
||||
.root.svelte-1ersoxu{padding:15px}.help-text.svelte-1ersoxu{color:var(--slate);font-size:10pt} |
|
||||
.items-root.svelte-19lmivt{display:flex;flex-direction:column;max-height:100%;height:100%;background-color:var(--secondary5)}.nav-group-header.svelte-19lmivt{display:grid;grid-template-columns:[icon] auto [title] 1fr [button] auto;padding:2rem 1rem 0rem 1rem;font-size:.9rem;font-weight:bold}.nav-group-header.svelte-19lmivt>div.svelte-19lmivt:nth-child(1){padding:0rem .7rem 0rem 0rem;vertical-align:bottom;grid-column-start:icon;margin-right:5px}.nav-group-header.svelte-19lmivt>div.svelte-19lmivt:nth-child(2){margin-left:5px;vertical-align:bottom;grid-column-start:title;margin-top:auto}.nav-group-header.svelte-19lmivt>div.svelte-19lmivt:nth-child(3){vertical-align:bottom;grid-column-start:button;cursor:pointer;color:var(--primary75)}.nav-group-header.svelte-19lmivt>div.svelte-19lmivt:nth-child(3):hover{color:var(--primary75)}.hierarchy-title.svelte-19lmivt{flex:auto 1 1}.hierarchy.svelte-19lmivt{display:flex;flex-direction:column;flex:1 0 auto;height:100px}.hierarchy-items-container.svelte-19lmivt{flex:1 1 auto;overflow-y:auto} |
|
||||
.root.svelte-wfv60d{height:100%;position:relative;padding:1.5rem}.actions-header.svelte-wfv60d{flex:0 1 auto}.node-view.svelte-wfv60d{overflow-y:auto;flex:1 1 auto} |
|
||||
.root.svelte-nd1yft{height:100%;position:relative;padding:1.5rem} |
|
||||
.root.svelte-apja7r{height:100%;position:relative}.actions-header.svelte-apja7r{flex:0 1 auto}.node-view.svelte-apja7r{overflow-y:auto;flex:1 1 auto} |
|
||||
.root.svelte-x3bf9z{display:flex}.root.svelte-x3bf9z:last-child{border-radius:0 var(--borderradius) var(--borderradius) 0}.root.svelte-x3bf9z:first-child{border-radius:var(--borderradius) 0 0 var(--borderradius)}.root.svelte-x3bf9z:not(:first-child):not(:last-child){border-radius:0} |
|
||||
.library-header.svelte-chhyel{font-size:1.1em;border-color:var(--primary25);border-width:1px 0px;border-style:solid;background-color:var(--primary10);padding:5px 0}.library-container.svelte-chhyel{padding:0 0 10px 10px}.inner-header.svelte-chhyel{font-size:0.9em;font-weight:bold;margin-top:7px;margin-bottom:3px}.component.svelte-chhyel{padding:2px 0px;cursor:pointer}.component.svelte-chhyel:hover{background-color:var(--lightslate)}.component.svelte-chhyel>.name.svelte-chhyel{color:var(--secondary100);display:inline-block}.component.svelte-chhyel>.description.svelte-chhyel{font-size:0.8em;color:var(--secondary75);display:inline-block;margin-left:10px} |
|
||||
.info-text.svelte-1gx0gkl{font-size:0.7rem;color:var(--secondary50)} |
|
||||
.root.svelte-t6vms4{font-size:10pt;width:100%}.form-root.svelte-t6vms4{display:flex;flex-wrap:wrap}.prop-container.svelte-t6vms4{flex:1 1 auto;min-width:250px} |
|
||||
.nav-item.svelte-1i5jqm7{padding:1.5rem 1rem 0rem 1rem;font-size:.9rem;font-weight:bold;cursor:pointer;flex:0 0 auto}.nav-item.svelte-1i5jqm7:hover{background-color:var(--primary10)}.active.svelte-1i5jqm7{background-color:var(--primary10)} |
|
||||
.dropdown-background.svelte-11ifkop{position:fixed;top:0;left:0;width:100vw;height:100vh}.root.svelte-11ifkop{cursor:pointer;z-index:1}.dropdown-content.svelte-11ifkop{position:absolute;background-color:var(--white);min-width:160px;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);z-index:1;font-weight:normal;border-style:solid;border-width:1px;border-color:var(--secondary10)}.dropdown-content.svelte-11ifkop:not(:focus){display:none}.action-row.svelte-11ifkop{padding:7px 10px;cursor:pointer}.action-row.svelte-11ifkop:hover{background-color:var(--primary100);color:var(--white)} |
|
||||
.root.svelte-17ju2r{display:block;font-size:.9rem;width:100%;cursor:pointer;color:var(--secondary50);font-weight:500}.title.svelte-17ju2r{padding-top:.5rem;padding-right:.5rem}.title.svelte-17ju2r:hover{background-color:var(--secondary10)}.active.svelte-17ju2r{background-color:var(--primary10)} |
|
||||
.root.svelte-ehsf0i{display:block;font-size:.9rem;width:100%;cursor:pointer;font-weight:bold}.title.svelte-ehsf0i{font:var(--fontblack);padding-top:10px;padding-right:5px;padding-bottom:10px;color:var(--secondary100)}.title.svelte-ehsf0i:hover{background-color:var(--secondary10)} |
|
||||
.edit-button.svelte-zm41av{cursor:pointer;color:var(--secondary25)}.title.svelte-zm41av{margin:3rem 0rem 0rem 0rem;font-weight:700}.table-content.svelte-zm41av{font-weight:500;font-size:.9rem}tr.svelte-zm41av:hover .edit-button.svelte-zm41av{color:var(--secondary75)} |
|
||||
.edit-button.svelte-lhfdtn{cursor:pointer;color:var(--secondary25)}tr.svelte-lhfdtn:hover .edit-button.svelte-lhfdtn{color:var(--secondary75)}.title.svelte-lhfdtn{margin:3rem 0rem 0rem 0rem;font-weight:700}.table-content.svelte-lhfdtn{font-weight:500;font-size:.9rem} |
|
||||
.root.svelte-wgyofl{padding:1.5rem;width:100%;align-items:right} |
|
||||
.root.svelte-pq2tmv{height:100%;padding:15px}.allowed-records.svelte-pq2tmv{margin:20px 0px}.allowed-records.svelte-pq2tmv>span.svelte-pq2tmv{margin-right:30px} |
|
||||
.root.svelte-1hs1zh2{height:100%;padding:2rem}.settings-title.svelte-1hs1zh2{font-weight:700}.title.svelte-1hs1zh2{margin:3rem 0rem 0rem 0rem;font-weight:700}.recordkey.svelte-1hs1zh2{font-size:14px;font-weight:600;color:var(--primary100)}.fields-table.svelte-1hs1zh2{margin:1rem 1rem 0rem 0rem;border-collapse:collapse}.add-field-button.svelte-1hs1zh2{cursor:pointer}.edit-button.svelte-1hs1zh2{cursor:pointer;color:var(--secondary25)}.edit-button.svelte-1hs1zh2:hover{cursor:pointer;color:var(--secondary75)}th.svelte-1hs1zh2{text-align:left}td.svelte-1hs1zh2{padding:1rem 5rem 1rem 0rem;margin:0;font-size:14px;font-weight:500}.field-label.svelte-1hs1zh2{font-size:14px;font-weight:500}thead.svelte-1hs1zh2>tr.svelte-1hs1zh2{border-width:0px 0px 1px 0px;border-style:solid;border-color:var(--secondary75);margin-bottom:20px}tbody.svelte-1hs1zh2>tr.svelte-1hs1zh2{border-width:0px 0px 1px 0px;border-style:solid;border-color:var(--primary10)}tbody.svelte-1hs1zh2>tr.svelte-1hs1zh2:hover{background-color:var(--primary10)}tbody.svelte-1hs1zh2>tr:hover .edit-button.svelte-1hs1zh2{color:var(--secondary75)}.index-container.svelte-1hs1zh2{border-style:solid;border-width:0 0 1px 0;border-color:var(--secondary25);padding:10px;margin-bottom:5px}.index-label.svelte-1hs1zh2{color:var(--slate)}.index-name.svelte-1hs1zh2{font-weight:bold;color:var(--primary100)}.index-container.svelte-1hs1zh2 code.svelte-1hs1zh2{margin:0;display:inline;background-color:var(--primary10);color:var(--secondary100);padding:3px}.index-field-row.svelte-1hs1zh2{margin:1rem 0rem 0rem 0rem}.no-indexes.svelte-1hs1zh2{margin:1rem 0rem 0rem 0rem;font-family:var(--fontnormal);font-size:14px} |
|
||||
input.svelte-9fre0g{margin-right:7px} |
|
||||
.root.svelte-1v0yya9{padding:1rem 1rem 0rem 1rem}.prop-label.svelte-1v0yya9{font-size:0.8rem;color:var(--secondary100);font-weight:bold} |
|
||||
.error-container.svelte-ole1mk{padding:10px;border-style:solid;border-color:var(--deletion100);border-radius:var(--borderradiusall);background:var(--deletion75)}.error-row.svelte-ole1mk{padding:5px 0px} |
|
||||
.root.svelte-16sjty9{padding:2rem;border-radius:2rem}.uk-grid-small.svelte-16sjty9{padding:1rem}.option-container.svelte-16sjty9{border-style:dotted;border-width:1px;border-color:var(--primary75);padding:3px;margin-right:5px} |
|
||||
textarea.svelte-di7k4b{padding:3px;margin-top:5px;margin-bottom:10px;background:var(--lightslate);color:var(--white);font-family:'Courier New', Courier, monospace;width:95%;height:100px;border-radius:5px} |
|
||||
.addelement-container.svelte-r1ft9p{cursor:pointer;padding:3px 0px;text-align:center}.addelement-container.svelte-r1ft9p:hover{background-color:var(--primary25);margin-top:5px}.control-container.svelte-r1ft9p{padding-left:3px;background:var(--secondary10)}.separator.svelte-r1ft9p{width:60%;margin:10px auto;border-style:solid;border-width:1px 0 0 0;border-color:var(--primary25)} |
|
||||
.unbound-container.svelte-jubmd5{display:flex;margin:.5rem 0rem .5rem 0rem}.unbound-container.svelte-jubmd5>.svelte-jubmd5:nth-child(1){width:auto;flex:1 0 auto;font-size:0.8rem;color:var(--secondary100);border-radius:.2rem}.bound-header.svelte-jubmd5{display:flex}.bound-header.svelte-jubmd5>div.svelte-jubmd5:nth-child(1){flex:1 0 auto;width:30px;color:var(--secondary50);padding-left:5px}.binding-prop-label.svelte-jubmd5{color:var(--secondary50)} |
|
||||
textarea.svelte-1kv2xk7{width:300px;height:200px} |
|
||||
.type-selector-container.svelte-1b6pj9u{display:flex}.type-selector.svelte-1b6pj9u{border-color:var(--primary50);border-radius:2px;width:50px;flex:1 0 auto} |
|
||||
.root.svelte-rj4q22{height:100%;display:flex;flex-direction:column}.switcher.svelte-rj4q22{flex:0 0 auto}.switcher.svelte-rj4q22>button.svelte-rj4q22{display:inline-block;background-color:rgba(0,0,0,0);border-style:solid;border-color:var(--slate);margin:5px;padding:5px;cursor:pointer}.switcher.svelte-rj4q22>.selected.svelte-rj4q22{background-color:red}.panel.svelte-rj4q22{flex:1 1 auto;height:0px;overflow-y:auto} |
|
||||
|
|
||||
/*# sourceMappingURL=bundle.css.map */ |
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
Before Width: | Height: | Size: 9.5 KiB |
@ -1,784 +0,0 @@ |
|||||
.flatpickr-calendar { |
|
||||
background: transparent; |
|
||||
opacity: 0; |
|
||||
display: none; |
|
||||
text-align: center; |
|
||||
visibility: hidden; |
|
||||
padding: 0; |
|
||||
-webkit-animation: none; |
|
||||
animation: none; |
|
||||
direction: ltr; |
|
||||
border: 0; |
|
||||
font-size: 14px; |
|
||||
line-height: 24px; |
|
||||
border-radius: 5px; |
|
||||
position: absolute; |
|
||||
width: 307.875px; |
|
||||
-webkit-box-sizing: border-box; |
|
||||
box-sizing: border-box; |
|
||||
-ms-touch-action: manipulation; |
|
||||
touch-action: manipulation; |
|
||||
background: #fff; |
|
||||
-webkit-box-shadow: 1px 0 0 #e6e6e6, -1px 0 0 #e6e6e6, 0 1px 0 #e6e6e6, 0 -1px 0 #e6e6e6, 0 3px 13px rgba(0,0,0,0.08); |
|
||||
box-shadow: 1px 0 0 #e6e6e6, -1px 0 0 #e6e6e6, 0 1px 0 #e6e6e6, 0 -1px 0 #e6e6e6, 0 3px 13px rgba(0,0,0,0.08); |
|
||||
} |
|
||||
.flatpickr-calendar.open, |
|
||||
.flatpickr-calendar.inline { |
|
||||
opacity: 1; |
|
||||
max-height: 640px; |
|
||||
visibility: visible; |
|
||||
} |
|
||||
.flatpickr-calendar.open { |
|
||||
display: inline-block; |
|
||||
z-index: 99999; |
|
||||
} |
|
||||
.flatpickr-calendar.animate.open { |
|
||||
-webkit-animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1); |
|
||||
animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1); |
|
||||
} |
|
||||
.flatpickr-calendar.inline { |
|
||||
display: block; |
|
||||
position: relative; |
|
||||
top: 2px; |
|
||||
} |
|
||||
.flatpickr-calendar.static { |
|
||||
position: absolute; |
|
||||
top: calc(100% + 2px); |
|
||||
} |
|
||||
.flatpickr-calendar.static.open { |
|
||||
z-index: 999; |
|
||||
display: block; |
|
||||
} |
|
||||
.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7) { |
|
||||
-webkit-box-shadow: none !important; |
|
||||
box-shadow: none !important; |
|
||||
} |
|
||||
.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1) { |
|
||||
-webkit-box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6; |
|
||||
box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6; |
|
||||
} |
|
||||
.flatpickr-calendar .hasWeeks .dayContainer, |
|
||||
.flatpickr-calendar .hasTime .dayContainer { |
|
||||
border-bottom: 0; |
|
||||
border-bottom-right-radius: 0; |
|
||||
border-bottom-left-radius: 0; |
|
||||
} |
|
||||
.flatpickr-calendar .hasWeeks .dayContainer { |
|
||||
border-left: 0; |
|
||||
} |
|
||||
.flatpickr-calendar.showTimeInput.hasTime .flatpickr-time { |
|
||||
height: 40px; |
|
||||
border-top: 1px solid #e6e6e6; |
|
||||
} |
|
||||
.flatpickr-calendar.noCalendar.hasTime .flatpickr-time { |
|
||||
height: auto; |
|
||||
} |
|
||||
.flatpickr-calendar:before, |
|
||||
.flatpickr-calendar:after { |
|
||||
position: absolute; |
|
||||
display: block; |
|
||||
pointer-events: none; |
|
||||
border: solid transparent; |
|
||||
content: ''; |
|
||||
height: 0; |
|
||||
width: 0; |
|
||||
left: 22px; |
|
||||
} |
|
||||
.flatpickr-calendar.rightMost:before, |
|
||||
.flatpickr-calendar.rightMost:after { |
|
||||
left: auto; |
|
||||
right: 22px; |
|
||||
} |
|
||||
.flatpickr-calendar:before { |
|
||||
border-width: 5px; |
|
||||
margin: 0 -5px; |
|
||||
} |
|
||||
.flatpickr-calendar:after { |
|
||||
border-width: 4px; |
|
||||
margin: 0 -4px; |
|
||||
} |
|
||||
.flatpickr-calendar.arrowTop:before, |
|
||||
.flatpickr-calendar.arrowTop:after { |
|
||||
bottom: 100%; |
|
||||
} |
|
||||
.flatpickr-calendar.arrowTop:before { |
|
||||
border-bottom-color: #e6e6e6; |
|
||||
} |
|
||||
.flatpickr-calendar.arrowTop:after { |
|
||||
border-bottom-color: #fff; |
|
||||
} |
|
||||
.flatpickr-calendar.arrowBottom:before, |
|
||||
.flatpickr-calendar.arrowBottom:after { |
|
||||
top: 100%; |
|
||||
} |
|
||||
.flatpickr-calendar.arrowBottom:before { |
|
||||
border-top-color: #e6e6e6; |
|
||||
} |
|
||||
.flatpickr-calendar.arrowBottom:after { |
|
||||
border-top-color: #fff; |
|
||||
} |
|
||||
.flatpickr-calendar:focus { |
|
||||
outline: 0; |
|
||||
} |
|
||||
.flatpickr-wrapper { |
|
||||
position: relative; |
|
||||
display: inline-block; |
|
||||
} |
|
||||
.flatpickr-months { |
|
||||
display: -webkit-box; |
|
||||
display: -webkit-flex; |
|
||||
display: -ms-flexbox; |
|
||||
display: flex; |
|
||||
} |
|
||||
.flatpickr-months .flatpickr-month { |
|
||||
background: transparent; |
|
||||
color: rgba(0,0,0,0.9); |
|
||||
fill: rgba(0,0,0,0.9); |
|
||||
height: 34px; |
|
||||
line-height: 1; |
|
||||
text-align: center; |
|
||||
position: relative; |
|
||||
-webkit-user-select: none; |
|
||||
-moz-user-select: none; |
|
||||
-ms-user-select: none; |
|
||||
user-select: none; |
|
||||
overflow: hidden; |
|
||||
-webkit-box-flex: 1; |
|
||||
-webkit-flex: 1; |
|
||||
-ms-flex: 1; |
|
||||
flex: 1; |
|
||||
} |
|
||||
.flatpickr-months .flatpickr-prev-month, |
|
||||
.flatpickr-months .flatpickr-next-month { |
|
||||
text-decoration: none; |
|
||||
cursor: pointer; |
|
||||
position: absolute; |
|
||||
top: 0; |
|
||||
height: 34px; |
|
||||
padding: 10px; |
|
||||
z-index: 3; |
|
||||
color: rgba(0,0,0,0.9); |
|
||||
fill: rgba(0,0,0,0.9); |
|
||||
} |
|
||||
.flatpickr-months .flatpickr-prev-month.flatpickr-disabled, |
|
||||
.flatpickr-months .flatpickr-next-month.flatpickr-disabled { |
|
||||
display: none; |
|
||||
} |
|
||||
.flatpickr-months .flatpickr-prev-month i, |
|
||||
.flatpickr-months .flatpickr-next-month i { |
|
||||
position: relative; |
|
||||
} |
|
||||
.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month, |
|
||||
.flatpickr-months .flatpickr-next-month.flatpickr-prev-month { |
|
||||
/* |
|
||||
/*rtl:begin:ignore*/ |
|
||||
/* |
|
||||
*/ |
|
||||
left: 0; |
|
||||
/* |
|
||||
/*rtl:end:ignore*/ |
|
||||
/* |
|
||||
*/ |
|
||||
} |
|
||||
/* |
|
||||
/*rtl:begin:ignore*/ |
|
||||
/* |
|
||||
/*rtl:end:ignore*/ |
|
||||
.flatpickr-months .flatpickr-prev-month.flatpickr-next-month, |
|
||||
.flatpickr-months .flatpickr-next-month.flatpickr-next-month { |
|
||||
/* |
|
||||
/*rtl:begin:ignore*/ |
|
||||
/* |
|
||||
*/ |
|
||||
right: 0; |
|
||||
/* |
|
||||
/*rtl:end:ignore*/ |
|
||||
/* |
|
||||
*/ |
|
||||
} |
|
||||
/* |
|
||||
/*rtl:begin:ignore*/ |
|
||||
/* |
|
||||
/*rtl:end:ignore*/ |
|
||||
.flatpickr-months .flatpickr-prev-month:hover, |
|
||||
.flatpickr-months .flatpickr-next-month:hover { |
|
||||
color: #959ea9; |
|
||||
} |
|
||||
.flatpickr-months .flatpickr-prev-month:hover svg, |
|
||||
.flatpickr-months .flatpickr-next-month:hover svg { |
|
||||
fill: #f64747; |
|
||||
} |
|
||||
.flatpickr-months .flatpickr-prev-month svg, |
|
||||
.flatpickr-months .flatpickr-next-month svg { |
|
||||
width: 14px; |
|
||||
height: 14px; |
|
||||
} |
|
||||
.flatpickr-months .flatpickr-prev-month svg path, |
|
||||
.flatpickr-months .flatpickr-next-month svg path { |
|
||||
-webkit-transition: fill 0.1s; |
|
||||
transition: fill 0.1s; |
|
||||
fill: inherit; |
|
||||
} |
|
||||
.numInputWrapper { |
|
||||
position: relative; |
|
||||
height: auto; |
|
||||
} |
|
||||
.numInputWrapper input, |
|
||||
.numInputWrapper span { |
|
||||
display: inline-block; |
|
||||
} |
|
||||
.numInputWrapper input { |
|
||||
width: 100%; |
|
||||
} |
|
||||
.numInputWrapper input::-ms-clear { |
|
||||
display: none; |
|
||||
} |
|
||||
.numInputWrapper input::-webkit-outer-spin-button, |
|
||||
.numInputWrapper input::-webkit-inner-spin-button { |
|
||||
margin: 0; |
|
||||
-webkit-appearance: none; |
|
||||
} |
|
||||
.numInputWrapper span { |
|
||||
position: absolute; |
|
||||
right: 0; |
|
||||
width: 14px; |
|
||||
padding: 0 4px 0 2px; |
|
||||
height: 50%; |
|
||||
line-height: 50%; |
|
||||
opacity: 0; |
|
||||
cursor: pointer; |
|
||||
border: 1px solid rgba(57,57,57,0.15); |
|
||||
-webkit-box-sizing: border-box; |
|
||||
box-sizing: border-box; |
|
||||
} |
|
||||
.numInputWrapper span:hover { |
|
||||
background: rgba(0,0,0,0.1); |
|
||||
} |
|
||||
.numInputWrapper span:active { |
|
||||
background: rgba(0,0,0,0.2); |
|
||||
} |
|
||||
.numInputWrapper span:after { |
|
||||
display: block; |
|
||||
content: ""; |
|
||||
position: absolute; |
|
||||
} |
|
||||
.numInputWrapper span.arrowUp { |
|
||||
top: 0; |
|
||||
border-bottom: 0; |
|
||||
} |
|
||||
.numInputWrapper span.arrowUp:after { |
|
||||
border-left: 4px solid transparent; |
|
||||
border-right: 4px solid transparent; |
|
||||
border-bottom: 4px solid rgba(57,57,57,0.6); |
|
||||
top: 26%; |
|
||||
} |
|
||||
.numInputWrapper span.arrowDown { |
|
||||
top: 50%; |
|
||||
} |
|
||||
.numInputWrapper span.arrowDown:after { |
|
||||
border-left: 4px solid transparent; |
|
||||
border-right: 4px solid transparent; |
|
||||
border-top: 4px solid rgba(57,57,57,0.6); |
|
||||
top: 40%; |
|
||||
} |
|
||||
.numInputWrapper span svg { |
|
||||
width: inherit; |
|
||||
height: auto; |
|
||||
} |
|
||||
.numInputWrapper span svg path { |
|
||||
fill: rgba(0,0,0,0.5); |
|
||||
} |
|
||||
.numInputWrapper:hover { |
|
||||
background: rgba(0,0,0,0.05); |
|
||||
} |
|
||||
.numInputWrapper:hover span { |
|
||||
opacity: 1; |
|
||||
} |
|
||||
.flatpickr-current-month { |
|
||||
font-size: 135%; |
|
||||
line-height: inherit; |
|
||||
font-weight: 300; |
|
||||
color: inherit; |
|
||||
position: absolute; |
|
||||
width: 75%; |
|
||||
left: 12.5%; |
|
||||
padding: 7.48px 0 0 0; |
|
||||
line-height: 1; |
|
||||
height: 34px; |
|
||||
display: inline-block; |
|
||||
text-align: center; |
|
||||
-webkit-transform: translate3d(0px, 0px, 0px); |
|
||||
transform: translate3d(0px, 0px, 0px); |
|
||||
} |
|
||||
.flatpickr-current-month span.cur-month { |
|
||||
font-family: inherit; |
|
||||
font-weight: 700; |
|
||||
color: inherit; |
|
||||
display: inline-block; |
|
||||
margin-left: 0.5ch; |
|
||||
padding: 0; |
|
||||
} |
|
||||
.flatpickr-current-month span.cur-month:hover { |
|
||||
background: rgba(0,0,0,0.05); |
|
||||
} |
|
||||
.flatpickr-current-month .numInputWrapper { |
|
||||
width: 6ch; |
|
||||
width: 7ch\0; |
|
||||
display: inline-block; |
|
||||
} |
|
||||
.flatpickr-current-month .numInputWrapper span.arrowUp:after { |
|
||||
border-bottom-color: rgba(0,0,0,0.9); |
|
||||
} |
|
||||
.flatpickr-current-month .numInputWrapper span.arrowDown:after { |
|
||||
border-top-color: rgba(0,0,0,0.9); |
|
||||
} |
|
||||
.flatpickr-current-month input.cur-year { |
|
||||
background: transparent; |
|
||||
-webkit-box-sizing: border-box; |
|
||||
box-sizing: border-box; |
|
||||
color: inherit; |
|
||||
cursor: text; |
|
||||
padding: 0 0 0 0.5ch; |
|
||||
margin: 0; |
|
||||
display: inline-block; |
|
||||
font-size: inherit; |
|
||||
font-family: inherit; |
|
||||
font-weight: 300; |
|
||||
line-height: inherit; |
|
||||
height: auto; |
|
||||
border: 0; |
|
||||
border-radius: 0; |
|
||||
vertical-align: initial; |
|
||||
-webkit-appearance: textfield; |
|
||||
-moz-appearance: textfield; |
|
||||
appearance: textfield; |
|
||||
} |
|
||||
.flatpickr-current-month input.cur-year:focus { |
|
||||
outline: 0; |
|
||||
} |
|
||||
.flatpickr-current-month input.cur-year[disabled], |
|
||||
.flatpickr-current-month input.cur-year[disabled]:hover { |
|
||||
font-size: 100%; |
|
||||
color: rgba(0,0,0,0.5); |
|
||||
background: transparent; |
|
||||
pointer-events: none; |
|
||||
} |
|
||||
.flatpickr-current-month .flatpickr-monthDropdown-months { |
|
||||
appearance: menulist; |
|
||||
background: transparent; |
|
||||
border: none; |
|
||||
border-radius: 0; |
|
||||
box-sizing: border-box; |
|
||||
color: inherit; |
|
||||
cursor: pointer; |
|
||||
font-size: inherit; |
|
||||
font-family: inherit; |
|
||||
font-weight: 300; |
|
||||
height: auto; |
|
||||
line-height: inherit; |
|
||||
margin: -1px 0 0 0; |
|
||||
outline: none; |
|
||||
padding: 0 0 0 0.5ch; |
|
||||
position: relative; |
|
||||
vertical-align: initial; |
|
||||
-webkit-box-sizing: border-box; |
|
||||
-webkit-appearance: menulist; |
|
||||
-moz-appearance: menulist; |
|
||||
width: auto; |
|
||||
} |
|
||||
.flatpickr-current-month .flatpickr-monthDropdown-months:focus, |
|
||||
.flatpickr-current-month .flatpickr-monthDropdown-months:active { |
|
||||
outline: none; |
|
||||
} |
|
||||
.flatpickr-current-month .flatpickr-monthDropdown-months:hover { |
|
||||
background: rgba(0,0,0,0.05); |
|
||||
} |
|
||||
.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month { |
|
||||
background-color: transparent; |
|
||||
outline: none; |
|
||||
padding: 0; |
|
||||
} |
|
||||
.flatpickr-weekdays { |
|
||||
background: transparent; |
|
||||
text-align: center; |
|
||||
overflow: hidden; |
|
||||
width: 100%; |
|
||||
display: -webkit-box; |
|
||||
display: -webkit-flex; |
|
||||
display: -ms-flexbox; |
|
||||
display: flex; |
|
||||
-webkit-box-align: center; |
|
||||
-webkit-align-items: center; |
|
||||
-ms-flex-align: center; |
|
||||
align-items: center; |
|
||||
height: 28px; |
|
||||
} |
|
||||
.flatpickr-weekdays .flatpickr-weekdaycontainer { |
|
||||
display: -webkit-box; |
|
||||
display: -webkit-flex; |
|
||||
display: -ms-flexbox; |
|
||||
display: flex; |
|
||||
-webkit-box-flex: 1; |
|
||||
-webkit-flex: 1; |
|
||||
-ms-flex: 1; |
|
||||
flex: 1; |
|
||||
} |
|
||||
span.flatpickr-weekday { |
|
||||
cursor: default; |
|
||||
font-size: 90%; |
|
||||
background: transparent; |
|
||||
color: rgba(0,0,0,0.54); |
|
||||
line-height: 1; |
|
||||
margin: 0; |
|
||||
text-align: center; |
|
||||
display: block; |
|
||||
-webkit-box-flex: 1; |
|
||||
-webkit-flex: 1; |
|
||||
-ms-flex: 1; |
|
||||
flex: 1; |
|
||||
font-weight: bolder; |
|
||||
} |
|
||||
.dayContainer, |
|
||||
.flatpickr-weeks { |
|
||||
padding: 1px 0 0 0; |
|
||||
} |
|
||||
.flatpickr-days { |
|
||||
position: relative; |
|
||||
overflow: hidden; |
|
||||
display: -webkit-box; |
|
||||
display: -webkit-flex; |
|
||||
display: -ms-flexbox; |
|
||||
display: flex; |
|
||||
-webkit-box-align: start; |
|
||||
-webkit-align-items: flex-start; |
|
||||
-ms-flex-align: start; |
|
||||
align-items: flex-start; |
|
||||
width: 307.875px; |
|
||||
} |
|
||||
.flatpickr-days:focus { |
|
||||
outline: 0; |
|
||||
} |
|
||||
.dayContainer { |
|
||||
padding: 0; |
|
||||
outline: 0; |
|
||||
text-align: left; |
|
||||
width: 307.875px; |
|
||||
min-width: 307.875px; |
|
||||
max-width: 307.875px; |
|
||||
-webkit-box-sizing: border-box; |
|
||||
box-sizing: border-box; |
|
||||
display: inline-block; |
|
||||
display: -ms-flexbox; |
|
||||
display: -webkit-box; |
|
||||
display: -webkit-flex; |
|
||||
display: flex; |
|
||||
-webkit-flex-wrap: wrap; |
|
||||
flex-wrap: wrap; |
|
||||
-ms-flex-wrap: wrap; |
|
||||
-ms-flex-pack: justify; |
|
||||
-webkit-justify-content: space-around; |
|
||||
justify-content: space-around; |
|
||||
-webkit-transform: translate3d(0px, 0px, 0px); |
|
||||
transform: translate3d(0px, 0px, 0px); |
|
||||
opacity: 1; |
|
||||
} |
|
||||
.dayContainer + .dayContainer { |
|
||||
-webkit-box-shadow: -1px 0 0 #e6e6e6; |
|
||||
box-shadow: -1px 0 0 #e6e6e6; |
|
||||
} |
|
||||
.flatpickr-day { |
|
||||
background: none; |
|
||||
border: 1px solid transparent; |
|
||||
border-radius: 150px; |
|
||||
-webkit-box-sizing: border-box; |
|
||||
box-sizing: border-box; |
|
||||
color: #393939; |
|
||||
cursor: pointer; |
|
||||
font-weight: 400; |
|
||||
width: 14.2857143%; |
|
||||
-webkit-flex-basis: 14.2857143%; |
|
||||
-ms-flex-preferred-size: 14.2857143%; |
|
||||
flex-basis: 14.2857143%; |
|
||||
max-width: 39px; |
|
||||
height: 39px; |
|
||||
line-height: 39px; |
|
||||
margin: 0; |
|
||||
display: inline-block; |
|
||||
position: relative; |
|
||||
-webkit-box-pack: center; |
|
||||
-webkit-justify-content: center; |
|
||||
-ms-flex-pack: center; |
|
||||
justify-content: center; |
|
||||
text-align: center; |
|
||||
} |
|
||||
.flatpickr-day.inRange, |
|
||||
.flatpickr-day.prevMonthDay.inRange, |
|
||||
.flatpickr-day.nextMonthDay.inRange, |
|
||||
.flatpickr-day.today.inRange, |
|
||||
.flatpickr-day.prevMonthDay.today.inRange, |
|
||||
.flatpickr-day.nextMonthDay.today.inRange, |
|
||||
.flatpickr-day:hover, |
|
||||
.flatpickr-day.prevMonthDay:hover, |
|
||||
.flatpickr-day.nextMonthDay:hover, |
|
||||
.flatpickr-day:focus, |
|
||||
.flatpickr-day.prevMonthDay:focus, |
|
||||
.flatpickr-day.nextMonthDay:focus { |
|
||||
cursor: pointer; |
|
||||
outline: 0; |
|
||||
background: #e6e6e6; |
|
||||
border-color: #e6e6e6; |
|
||||
} |
|
||||
.flatpickr-day.today { |
|
||||
border-color: #959ea9; |
|
||||
} |
|
||||
.flatpickr-day.today:hover, |
|
||||
.flatpickr-day.today:focus { |
|
||||
border-color: #959ea9; |
|
||||
background: #959ea9; |
|
||||
color: #fff; |
|
||||
} |
|
||||
.flatpickr-day.selected, |
|
||||
.flatpickr-day.startRange, |
|
||||
.flatpickr-day.endRange, |
|
||||
.flatpickr-day.selected.inRange, |
|
||||
.flatpickr-day.startRange.inRange, |
|
||||
.flatpickr-day.endRange.inRange, |
|
||||
.flatpickr-day.selected:focus, |
|
||||
.flatpickr-day.startRange:focus, |
|
||||
.flatpickr-day.endRange:focus, |
|
||||
.flatpickr-day.selected:hover, |
|
||||
.flatpickr-day.startRange:hover, |
|
||||
.flatpickr-day.endRange:hover, |
|
||||
.flatpickr-day.selected.prevMonthDay, |
|
||||
.flatpickr-day.startRange.prevMonthDay, |
|
||||
.flatpickr-day.endRange.prevMonthDay, |
|
||||
.flatpickr-day.selected.nextMonthDay, |
|
||||
.flatpickr-day.startRange.nextMonthDay, |
|
||||
.flatpickr-day.endRange.nextMonthDay { |
|
||||
background: #569ff7; |
|
||||
-webkit-box-shadow: none; |
|
||||
box-shadow: none; |
|
||||
color: #fff; |
|
||||
border-color: #569ff7; |
|
||||
} |
|
||||
.flatpickr-day.selected.startRange, |
|
||||
.flatpickr-day.startRange.startRange, |
|
||||
.flatpickr-day.endRange.startRange { |
|
||||
border-radius: 50px 0 0 50px; |
|
||||
} |
|
||||
.flatpickr-day.selected.endRange, |
|
||||
.flatpickr-day.startRange.endRange, |
|
||||
.flatpickr-day.endRange.endRange { |
|
||||
border-radius: 0 50px 50px 0; |
|
||||
} |
|
||||
.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)), |
|
||||
.flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)), |
|
||||
.flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)) { |
|
||||
-webkit-box-shadow: -10px 0 0 #569ff7; |
|
||||
box-shadow: -10px 0 0 #569ff7; |
|
||||
} |
|
||||
.flatpickr-day.selected.startRange.endRange, |
|
||||
.flatpickr-day.startRange.startRange.endRange, |
|
||||
.flatpickr-day.endRange.startRange.endRange { |
|
||||
border-radius: 50px; |
|
||||
} |
|
||||
.flatpickr-day.inRange { |
|
||||
border-radius: 0; |
|
||||
-webkit-box-shadow: -5px 0 0 #e6e6e6, 5px 0 0 #e6e6e6; |
|
||||
box-shadow: -5px 0 0 #e6e6e6, 5px 0 0 #e6e6e6; |
|
||||
} |
|
||||
.flatpickr-day.flatpickr-disabled, |
|
||||
.flatpickr-day.flatpickr-disabled:hover, |
|
||||
.flatpickr-day.prevMonthDay, |
|
||||
.flatpickr-day.nextMonthDay, |
|
||||
.flatpickr-day.notAllowed, |
|
||||
.flatpickr-day.notAllowed.prevMonthDay, |
|
||||
.flatpickr-day.notAllowed.nextMonthDay { |
|
||||
color: rgba(57,57,57,0.3); |
|
||||
background: transparent; |
|
||||
border-color: transparent; |
|
||||
cursor: default; |
|
||||
} |
|
||||
.flatpickr-day.flatpickr-disabled, |
|
||||
.flatpickr-day.flatpickr-disabled:hover { |
|
||||
cursor: not-allowed; |
|
||||
color: rgba(57,57,57,0.1); |
|
||||
} |
|
||||
.flatpickr-day.week.selected { |
|
||||
border-radius: 0; |
|
||||
-webkit-box-shadow: -5px 0 0 #569ff7, 5px 0 0 #569ff7; |
|
||||
box-shadow: -5px 0 0 #569ff7, 5px 0 0 #569ff7; |
|
||||
} |
|
||||
.flatpickr-day.hidden { |
|
||||
visibility: hidden; |
|
||||
} |
|
||||
.rangeMode .flatpickr-day { |
|
||||
margin-top: 1px; |
|
||||
} |
|
||||
.flatpickr-weekwrapper { |
|
||||
float: left; |
|
||||
} |
|
||||
.flatpickr-weekwrapper .flatpickr-weeks { |
|
||||
padding: 0 12px; |
|
||||
-webkit-box-shadow: 1px 0 0 #e6e6e6; |
|
||||
box-shadow: 1px 0 0 #e6e6e6; |
|
||||
} |
|
||||
.flatpickr-weekwrapper .flatpickr-weekday { |
|
||||
float: none; |
|
||||
width: 100%; |
|
||||
line-height: 28px; |
|
||||
} |
|
||||
.flatpickr-weekwrapper span.flatpickr-day, |
|
||||
.flatpickr-weekwrapper span.flatpickr-day:hover { |
|
||||
display: block; |
|
||||
width: 100%; |
|
||||
max-width: none; |
|
||||
color: rgba(57,57,57,0.3); |
|
||||
background: transparent; |
|
||||
cursor: default; |
|
||||
border: none; |
|
||||
} |
|
||||
.flatpickr-innerContainer { |
|
||||
display: block; |
|
||||
display: -webkit-box; |
|
||||
display: -webkit-flex; |
|
||||
display: -ms-flexbox; |
|
||||
display: flex; |
|
||||
-webkit-box-sizing: border-box; |
|
||||
box-sizing: border-box; |
|
||||
overflow: hidden; |
|
||||
} |
|
||||
.flatpickr-rContainer { |
|
||||
display: inline-block; |
|
||||
padding: 0; |
|
||||
-webkit-box-sizing: border-box; |
|
||||
box-sizing: border-box; |
|
||||
} |
|
||||
.flatpickr-time { |
|
||||
text-align: center; |
|
||||
outline: 0; |
|
||||
display: block; |
|
||||
height: 0; |
|
||||
line-height: 40px; |
|
||||
max-height: 40px; |
|
||||
-webkit-box-sizing: border-box; |
|
||||
box-sizing: border-box; |
|
||||
overflow: hidden; |
|
||||
display: -webkit-box; |
|
||||
display: -webkit-flex; |
|
||||
display: -ms-flexbox; |
|
||||
display: flex; |
|
||||
} |
|
||||
.flatpickr-time:after { |
|
||||
content: ""; |
|
||||
display: table; |
|
||||
clear: both; |
|
||||
} |
|
||||
.flatpickr-time .numInputWrapper { |
|
||||
-webkit-box-flex: 1; |
|
||||
-webkit-flex: 1; |
|
||||
-ms-flex: 1; |
|
||||
flex: 1; |
|
||||
width: 40%; |
|
||||
height: 40px; |
|
||||
float: left; |
|
||||
} |
|
||||
.flatpickr-time .numInputWrapper span.arrowUp:after { |
|
||||
border-bottom-color: #393939; |
|
||||
} |
|
||||
.flatpickr-time .numInputWrapper span.arrowDown:after { |
|
||||
border-top-color: #393939; |
|
||||
} |
|
||||
.flatpickr-time.hasSeconds .numInputWrapper { |
|
||||
width: 26%; |
|
||||
} |
|
||||
.flatpickr-time.time24hr .numInputWrapper { |
|
||||
width: 49%; |
|
||||
} |
|
||||
.flatpickr-time input { |
|
||||
background: transparent; |
|
||||
-webkit-box-shadow: none; |
|
||||
box-shadow: none; |
|
||||
border: 0; |
|
||||
border-radius: 0; |
|
||||
text-align: center; |
|
||||
margin: 0; |
|
||||
padding: 0; |
|
||||
height: inherit; |
|
||||
line-height: inherit; |
|
||||
color: #393939; |
|
||||
font-size: 14px; |
|
||||
position: relative; |
|
||||
-webkit-box-sizing: border-box; |
|
||||
box-sizing: border-box; |
|
||||
-webkit-appearance: textfield; |
|
||||
-moz-appearance: textfield; |
|
||||
appearance: textfield; |
|
||||
} |
|
||||
.flatpickr-time input.flatpickr-hour { |
|
||||
font-weight: bold; |
|
||||
} |
|
||||
.flatpickr-time input.flatpickr-minute, |
|
||||
.flatpickr-time input.flatpickr-second { |
|
||||
font-weight: 400; |
|
||||
} |
|
||||
.flatpickr-time input:focus { |
|
||||
outline: 0; |
|
||||
border: 0; |
|
||||
} |
|
||||
.flatpickr-time .flatpickr-time-separator, |
|
||||
.flatpickr-time .flatpickr-am-pm { |
|
||||
height: inherit; |
|
||||
float: left; |
|
||||
line-height: inherit; |
|
||||
color: #393939; |
|
||||
font-weight: bold; |
|
||||
width: 2%; |
|
||||
-webkit-user-select: none; |
|
||||
-moz-user-select: none; |
|
||||
-ms-user-select: none; |
|
||||
user-select: none; |
|
||||
-webkit-align-self: center; |
|
||||
-ms-flex-item-align: center; |
|
||||
align-self: center; |
|
||||
} |
|
||||
.flatpickr-time .flatpickr-am-pm { |
|
||||
outline: 0; |
|
||||
width: 18%; |
|
||||
cursor: pointer; |
|
||||
text-align: center; |
|
||||
font-weight: 400; |
|
||||
} |
|
||||
.flatpickr-time input:hover, |
|
||||
.flatpickr-time .flatpickr-am-pm:hover, |
|
||||
.flatpickr-time input:focus, |
|
||||
.flatpickr-time .flatpickr-am-pm:focus { |
|
||||
background: #eee; |
|
||||
} |
|
||||
.flatpickr-input[readonly] { |
|
||||
cursor: pointer; |
|
||||
} |
|
||||
@-webkit-keyframes fpFadeInDown { |
|
||||
from { |
|
||||
opacity: 0; |
|
||||
-webkit-transform: translate3d(0, -20px, 0); |
|
||||
transform: translate3d(0, -20px, 0); |
|
||||
} |
|
||||
to { |
|
||||
opacity: 1; |
|
||||
-webkit-transform: translate3d(0, 0, 0); |
|
||||
transform: translate3d(0, 0, 0); |
|
||||
} |
|
||||
} |
|
||||
@keyframes fpFadeInDown { |
|
||||
from { |
|
||||
opacity: 0; |
|
||||
-webkit-transform: translate3d(0, -20px, 0); |
|
||||
transform: translate3d(0, -20px, 0); |
|
||||
} |
|
||||
to { |
|
||||
opacity: 1; |
|
||||
-webkit-transform: translate3d(0, 0, 0); |
|
||||
transform: translate3d(0, 0, 0); |
|
||||
} |
|
||||
} |
|
||||
@ -1,47 +0,0 @@ |
|||||
/* latin-ext */ |
|
||||
/* roboto-regular - latin-ext_latin */ |
|
||||
@font-face { |
|
||||
font-family: 'Roboto'; |
|
||||
font-style: normal; |
|
||||
font-weight: 400; |
|
||||
src: local('Roboto'), local('Roboto-Regular'), |
|
||||
url('/_builder/assets/roboto-v20-latin-ext_latin-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ |
|
||||
url('/_builder/assets/roboto-v20-latin-ext_latin-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ |
|
||||
} |
|
||||
/* roboto-300 - latin-ext_latin */ |
|
||||
@font-face { |
|
||||
font-family: 'Roboto'; |
|
||||
font-style: normal; |
|
||||
font-weight: 300; |
|
||||
src: local('Roboto Light'), local('Roboto-Light'), |
|
||||
url('/_builder/assets/roboto-v20-latin-ext_latin-300.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ |
|
||||
url('/_builder/assets/roboto-v20-latin-ext_latin-300.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ |
|
||||
} |
|
||||
/* roboto-500 - latin-ext_latin */ |
|
||||
@font-face { |
|
||||
font-family: 'Roboto'; |
|
||||
font-style: normal; |
|
||||
font-weight: 500; |
|
||||
src: local('Roboto Medium'), local('Roboto-Medium'), |
|
||||
url('/_builder/assets/roboto-v20-latin-ext_latin-500.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ |
|
||||
url('/_builder/assets/roboto-v20-latin-ext_latin-500.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ |
|
||||
} |
|
||||
/* roboto-700 - latin-ext_latin */ |
|
||||
@font-face { |
|
||||
font-family: 'Roboto'; |
|
||||
font-style: normal; |
|
||||
font-weight: 700; |
|
||||
src: local('Roboto Bold'), local('Roboto-Bold'), |
|
||||
url('/_builder/assets/roboto-v20-latin-ext_latin-700.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ |
|
||||
url('/_builder/assets/roboto-v20-latin-ext_latin-700.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ |
|
||||
} |
|
||||
/* roboto-900 - latin-ext_latin */ |
|
||||
@font-face { |
|
||||
font-family: 'Roboto'; |
|
||||
font-style: normal; |
|
||||
font-weight: 900; |
|
||||
src: local('Roboto Black'), local('Roboto-Black'), |
|
||||
url('/_builder/assets/roboto-v20-latin-ext_latin-900.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ |
|
||||
url('/_builder/assets/roboto-v20-latin-ext_latin-900.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ |
|
||||
} |
|
||||
|
|
||||
@ -1,100 +0,0 @@ |
|||||
:root { |
|
||||
--primary100: #454CA0FF; |
|
||||
--primary75: #454CA0BF; |
|
||||
--primary50: #454CA080; |
|
||||
--primary25: #454CA040; |
|
||||
--primary10: #454CA01A; |
|
||||
--primary5: #454ca00c; |
|
||||
--primarydark: #3F448A; |
|
||||
|
|
||||
--secondary100: #162B4DFF; |
|
||||
--secondary75: #162B4DBF; |
|
||||
--secondary50: #162B4D80; |
|
||||
--secondary25: #162B4D40; |
|
||||
--secondary10: #162B4D1A; |
|
||||
--secondary5: rgba(22, 43, 77, 0.068); |
|
||||
--secondarydark: #3F448A; |
|
||||
|
|
||||
--tertiary: #F2F5F7; |
|
||||
|
|
||||
--success100: #49C39EFF; |
|
||||
--success75: #49C39EBF; |
|
||||
--success50: #49C39E80; |
|
||||
--success25: #49C39E40; |
|
||||
--success10: #49C39E1A; |
|
||||
--successdark: #44B492; |
|
||||
|
|
||||
--deletion100: #F2545BFF; |
|
||||
--deletion75: #F2545BBF; |
|
||||
--deletion50: #F2545B80; |
|
||||
--deletion25: #F2545B40; |
|
||||
--deletion10: #F2545B1A; |
|
||||
--deletiondark: #CF4046; |
|
||||
|
|
||||
--white: #FFFFFF; |
|
||||
--darkslate: #1a202c; |
|
||||
--slate: #a0aec0; |
|
||||
--lightslate: #f7fafc; |
|
||||
|
|
||||
--borderradius: 2px; |
|
||||
--borderradiusall: 2px 2px 2px 2px; |
|
||||
|
|
||||
--fontblack: "Roboto Black"; |
|
||||
--fontbold: "Roboto Bold"; |
|
||||
--fontsemibold: "Roboto Medium"; |
|
||||
--fontnormal: "Roboto"; |
|
||||
--fontlight: "Roboto Light"; |
|
||||
|
|
||||
--bodytext: var(--fontnormal) "regular" var(--secondary100) 16pt; |
|
||||
--bigbodytext: var(--fontnormal) "regular" var(--secondary100) 20pt; |
|
||||
--smallbodytext: var(--fontnormal) "regular" var(--secondary100) 12pt; |
|
||||
--lightbodytext: "regular" "normal" 16pt var(--fontnormal); |
|
||||
--heavybodytext: var(--fontbold) "regular" var(--secondary100) 16pt; |
|
||||
--quotation: var(--fontnormal) "italics" var(--darkslate) 16pt; |
|
||||
--smallheavybodytext: var(--fontbold) "regular" var(--secondary100) 14pt; |
|
||||
} |
|
||||
|
|
||||
html, body { |
|
||||
font-family: var(--fontnormal); |
|
||||
color: var(--secondary100); |
|
||||
padding: 0; |
|
||||
margin: 0; |
|
||||
height:100%; |
|
||||
width:100%; |
|
||||
} |
|
||||
|
|
||||
h1 { |
|
||||
font-family: var(--fontblack); |
|
||||
font-size: 36pt; |
|
||||
color: var(--secondary100); |
|
||||
} |
|
||||
|
|
||||
h2 { |
|
||||
font-family: var(--fontbold); |
|
||||
font-size: 30pt; |
|
||||
color: var(--secondary100); |
|
||||
} |
|
||||
|
|
||||
h3 { |
|
||||
font-family: var(--fontbold); |
|
||||
font-size: 24pt; |
|
||||
color: var(--darkslate); |
|
||||
} |
|
||||
|
|
||||
h4 { |
|
||||
font-family: var(--fontbold); |
|
||||
font-size: 18pt; |
|
||||
color: var(--secondary100); |
|
||||
} |
|
||||
|
|
||||
h5 { |
|
||||
font-family: var(--fontblack); |
|
||||
font-size: 14pt; |
|
||||
color: var(--secondary100); |
|
||||
} |
|
||||
|
|
||||
h5 { |
|
||||
font-family: var(--fontblack); |
|
||||
font-size: 12pt; |
|
||||
color: var(--darkslate); |
|
||||
} |
|
||||
@ -1,19 +0,0 @@ |
|||||
<!doctype html> |
|
||||
<html> |
|
||||
<head> |
|
||||
<meta charset='utf8'> |
|
||||
<meta name='viewport' content='width=device-width'> |
|
||||
|
|
||||
<title>Budibase Builder</title> |
|
||||
|
|
||||
<link rel='icon' type='image/png' href='/_builder/favicon.png'> |
|
||||
<link rel='stylesheet' href='/_builder/global.css'> |
|
||||
<link rel='stylesheet' href='/_builder/bundle.css'> |
|
||||
<link rel='stylesheet' href='/_builder/fonts.css'> |
|
||||
<link rel='stylesheet' href="/_builder/uikit.min.css"> |
|
||||
</head> |
|
||||
|
|
||||
<body id="app"> |
|
||||
<script src='/_builder/bundle.js'></script> |
|
||||
</body> |
|
||||
</html> |
|
||||
File diff suppressed because one or more lines are too long
@ -1,134 +0,0 @@ |
|||||
const { |
|
||||
appPackageFolder |
|
||||
} = require("../createAppPackage"); |
|
||||
const { componentLibraryInfo } = require("./componentLibraryInfo"); |
|
||||
const { |
|
||||
stat, ensureDir, pathExists, |
|
||||
constants, copyFile, writeFile, |
|
||||
readFile |
|
||||
} = require("fs-extra"); |
|
||||
const { join, resolve, dirname } = require("path"); |
|
||||
const sqrl = require('squirrelly'); |
|
||||
|
|
||||
module.exports = async (config, appname, pages, appdefinition) => { |
|
||||
|
|
||||
const appPath = appPackageFolder(config, appname); |
|
||||
|
|
||||
await buildClientAppDefinition( |
|
||||
config, appname, |
|
||||
appdefinition, |
|
||||
appPath, pages, "main"); |
|
||||
|
|
||||
await buildClientAppDefinition( |
|
||||
config, appname, |
|
||||
appdefinition, |
|
||||
appPath, pages, "unauthenticated") |
|
||||
|
|
||||
await buildIndexHtml( |
|
||||
config, appname, appPath, |
|
||||
pages, "main"); |
|
||||
|
|
||||
await buildIndexHtml( |
|
||||
config, appname, appPath, |
|
||||
pages, "unauthenticated"); |
|
||||
|
|
||||
await copyClientLib(appPath, "main"); |
|
||||
await copyClientLib(appPath, "unauthenticated"); |
|
||||
|
|
||||
} |
|
||||
|
|
||||
const publicPath = (appPath, pageName) => join(appPath, "public", pageName); |
|
||||
const rootPath = (config, appname) => config.useAppRootPath ? `/${appname}` : ""; |
|
||||
|
|
||||
const copyClientLib = async (appPath, pageName) => { |
|
||||
var sourcepath = require.resolve("@budibase/client"); |
|
||||
var destPath = join(publicPath(appPath, pageName), "budibase-client.js"); |
|
||||
|
|
||||
await copyFile(sourcepath, destPath, constants.COPYFILE_FICLONE); |
|
||||
await copyFile(sourcepath + ".map", destPath + ".map", constants.COPYFILE_FICLONE); |
|
||||
|
|
||||
} |
|
||||
|
|
||||
const buildIndexHtml = async (config, appname, appPath, pages, pageName) => { |
|
||||
|
|
||||
|
|
||||
const appPublicPath = publicPath(appPath, pageName); |
|
||||
const appRootPath = rootPath(config, appname); |
|
||||
|
|
||||
const stylesheetUrl = s => |
|
||||
s.indexOf('http://') === 0 || s.indexOf('https://') === 0 |
|
||||
? s |
|
||||
: `/${rootPath(config, appname)}/${s}`; |
|
||||
|
|
||||
const templateObj = { |
|
||||
title: pages[pageName].index.title || "Budibase App", |
|
||||
favicon: `${appRootPath}/${pages[pageName].index.favicon || "/_shared/favicon.png"}`, |
|
||||
stylesheets: (pages.stylesheets || []).map(stylesheetUrl), |
|
||||
appRootPath |
|
||||
} |
|
||||
|
|
||||
const indexHtmlTemplate = await readFile( |
|
||||
resolve(__dirname, "index.template.html"), "utf8"); |
|
||||
|
|
||||
const indexHtmlPath = join(appPublicPath, "index.html"); |
|
||||
|
|
||||
const indexHtml = sqrl.Render(indexHtmlTemplate, templateObj) |
|
||||
|
|
||||
await writeFile( |
|
||||
indexHtmlPath, |
|
||||
indexHtml, |
|
||||
{flag:"w+"}); |
|
||||
|
|
||||
} |
|
||||
|
|
||||
|
|
||||
const buildClientAppDefinition = async (config, appname, appdefinition, appPath, pages, pageName) => { |
|
||||
|
|
||||
|
|
||||
const appPublicPath = publicPath(appPath, pageName); |
|
||||
const appRootPath = rootPath(config, appname); |
|
||||
|
|
||||
|
|
||||
const componentLibraries = []; |
|
||||
|
|
||||
for(let lib of pages.componentLibraries) { |
|
||||
const info = await componentLibraryInfo(appPath, lib); |
|
||||
const libFile = info.components._lib || "index.js"; |
|
||||
const source = join(info.libDir, libFile); |
|
||||
const moduleDir = join(appPublicPath, "lib", info.libDir.replace(appPath, "")); |
|
||||
const destPath = join(moduleDir, libFile); |
|
||||
|
|
||||
await ensureDir(dirname(destPath)); |
|
||||
|
|
||||
componentLibraries.push({ |
|
||||
importPath: destPath.replace(appPublicPath, "") |
|
||||
.replace(/\\/g, "/"), |
|
||||
libName: lib |
|
||||
}); |
|
||||
|
|
||||
let shouldCopy = !(await pathExists(destPath)); |
|
||||
if(!shouldCopy) { |
|
||||
const destStat = await stat(destPath); |
|
||||
const sourceStat = await stat(source); |
|
||||
shouldCopy = destStat.ctimeMs !== sourceStat.ctimeMs; |
|
||||
} |
|
||||
|
|
||||
if(shouldCopy) { |
|
||||
await copyFile(source, destPath, constants.COPYFILE_FICLONE); |
|
||||
} |
|
||||
|
|
||||
} |
|
||||
|
|
||||
const filename = join(appPublicPath, "clientAppDefinition.js"); |
|
||||
|
|
||||
const clientAppDefObj = { |
|
||||
hierarchy: appdefinition.hierarchy, |
|
||||
componentLibraries: componentLibraries, |
|
||||
appRootPath: appRootPath, |
|
||||
props: appdefinition.props[pageName] |
|
||||
} |
|
||||
|
|
||||
await writeFile(filename, |
|
||||
`window['##BUDIBASE_APPDEFINITION##'] = ${JSON.stringify(clientAppDefObj)}`); |
|
||||
|
|
||||
} |
|
||||
@ -1,67 +0,0 @@ |
|||||
const { |
|
||||
readJSON, exists |
|
||||
} = require("fs-extra"); |
|
||||
const { |
|
||||
resolve, join , dirname |
|
||||
} = require("path"); |
|
||||
|
|
||||
const getLibDir = (appPath, libname) => { |
|
||||
try { |
|
||||
const componentsFile = require.resolve( |
|
||||
join(libname, "components.json"), |
|
||||
{ paths: [appPath]}); |
|
||||
return dirname(componentsFile); |
|
||||
} catch(e) { |
|
||||
console.log(e); |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
const getComponentsFilepath = libPath => |
|
||||
resolve(libPath, "components.json"); |
|
||||
|
|
||||
module.exports.componentsFilepath = (appPath, libname) => |
|
||||
getComponentsFilepath(getLibDir(appPath, libname)); |
|
||||
|
|
||||
module.exports.componentLibraryInfo = async (appPath, libname) => { |
|
||||
|
|
||||
const libDir = getLibDir(appPath, libname); |
|
||||
const componentsPath = getComponentsFilepath(libDir); |
|
||||
|
|
||||
if(!await exists(componentsPath)) { |
|
||||
const e = new Error(`could not find components definition file at ${componentsPath}`); |
|
||||
e.statusCode = 404; |
|
||||
throw e; |
|
||||
} |
|
||||
|
|
||||
try { |
|
||||
const components = await readJSON(componentsPath); |
|
||||
const namespacedComponents = {_lib:components._lib}; |
|
||||
for(let cname in components) { |
|
||||
if(cname === "_lib" || cname == "_generators") continue; |
|
||||
const namespacedName = `${libname}/${cname}`; |
|
||||
components[cname].name = namespacedName; |
|
||||
namespacedComponents[namespacedName] = components[cname]; |
|
||||
} |
|
||||
|
|
||||
const namespacedGenerators = {} |
|
||||
if(components._generators) { |
|
||||
namespacedGenerators._lib=components._generators._lib || "generators.js"; |
|
||||
for(let gname in components._generators) { |
|
||||
if(gname === "_lib") continue; |
|
||||
const namespacedName = `${libname}/${gname}`; |
|
||||
components._generators[gname].name = namespacedName; |
|
||||
namespacedGenerators[namespacedName] = components._generators[gname]; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
return ({ |
|
||||
components: namespacedComponents, |
|
||||
generators: namespacedGenerators, |
|
||||
libDir, |
|
||||
componentsPath |
|
||||
}); |
|
||||
} catch(e) { |
|
||||
const err = `could not parse JSON - ${componentsPath} : ${e.message}`; |
|
||||
throw new Error(err); |
|
||||
} |
|
||||
} |
|
||||
@ -1,175 +0,0 @@ |
|||||
const { |
|
||||
appPackageFolder, |
|
||||
appsFolder |
|
||||
} = require("../createAppPackage"); |
|
||||
const { |
|
||||
readJSON, writeJSON, readdir, |
|
||||
stat, ensureDir, rename, |
|
||||
unlink, rmdir |
|
||||
} = require("fs-extra"); |
|
||||
const { |
|
||||
join,dirname |
|
||||
} = require("path"); |
|
||||
const { $ } = require("@budibase/core").common; |
|
||||
const { |
|
||||
keyBy, intersection, map |
|
||||
} = require("lodash/fp"); |
|
||||
const {merge} = require("lodash"); |
|
||||
|
|
||||
const { componentLibraryInfo } = require("./componentLibraryInfo"); |
|
||||
const savePackage = require("./savePackage"); |
|
||||
const buildApp = require("./buildApp"); |
|
||||
|
|
||||
module.exports.savePackage = savePackage; |
|
||||
|
|
||||
const getPages = async (appPath) => await readJSON(`${appPath}/pages.json`); |
|
||||
const getAppDefinition = async (appPath) => await readJSON(`${appPath}/appDefinition.json`); |
|
||||
|
|
||||
module.exports.getPackageForBuilder = async (config, appname) => { |
|
||||
const appPath = appPackageFolder(config, appname); |
|
||||
|
|
||||
const pages = await getPages(appPath); |
|
||||
|
|
||||
return ({ |
|
||||
appDefinition: await getAppDefinition(appPath), |
|
||||
|
|
||||
accessLevels: await readJSON(`${appPath}/access_levels.json`), |
|
||||
|
|
||||
pages, |
|
||||
|
|
||||
components: await getComponents(appPath, pages), |
|
||||
|
|
||||
screens: keyBy("name")( |
|
||||
await fetchscreens(appPath)) |
|
||||
}); |
|
||||
|
|
||||
} |
|
||||
|
|
||||
|
|
||||
|
|
||||
module.exports.getApps = async (config, master) => { |
|
||||
const dirs = await readdir(appsFolder(config)); |
|
||||
|
|
||||
return $(master.listApplications(), [ |
|
||||
map(a => a.name), |
|
||||
intersection(dirs) |
|
||||
]); |
|
||||
} |
|
||||
|
|
||||
|
|
||||
const componentPath = (appPath, name) => |
|
||||
join(appPath, "components", name + ".json"); |
|
||||
|
|
||||
module.exports.saveScreen = async (config, appname, component) => { |
|
||||
const appPath = appPackageFolder(config, appname); |
|
||||
const compPath = componentPath(appPath, component.name); |
|
||||
await ensureDir(dirname(compPath)); |
|
||||
await writeJSON( |
|
||||
compPath, |
|
||||
component, |
|
||||
{encoding:"utf8", flag:"w", spaces:2}); |
|
||||
} |
|
||||
|
|
||||
module.exports.renameScreen = async (config, appname, oldName, newName) => { |
|
||||
const appPath = appPackageFolder(config, appname); |
|
||||
|
|
||||
const oldComponentPath = componentPath( |
|
||||
appPath, oldName); |
|
||||
|
|
||||
const newComponentPath = componentPath( |
|
||||
appPath, newName); |
|
||||
|
|
||||
await ensureDir(dirname(newComponentPath)); |
|
||||
await rename( |
|
||||
oldComponentPath, |
|
||||
newComponentPath); |
|
||||
} |
|
||||
|
|
||||
module.exports.deleteScreen = async (config, appname, name) => { |
|
||||
const appPath = appPackageFolder(config, appname); |
|
||||
const componentFile = componentPath(appPath, name); |
|
||||
await unlink(componentFile); |
|
||||
|
|
||||
const dir = dirname(componentFile); |
|
||||
if((await readdir(dir)).length === 0) { |
|
||||
await rmdir(dir); |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
module.exports.componentLibraryInfo = async (config, appname, lib) => { |
|
||||
const appPath = appPackageFolder(config, appname); |
|
||||
return await componentLibraryInfo(appPath, lib); |
|
||||
}; |
|
||||
|
|
||||
|
|
||||
const getComponents = async (appPath, pages ,lib) => { |
|
||||
|
|
||||
let libs; |
|
||||
if(!lib) { |
|
||||
pages = pages || await readJSON( |
|
||||
`${appPath}/pages.json`); |
|
||||
|
|
||||
if(!pages.componentLibraries) return []; |
|
||||
|
|
||||
libs = pages.componentLibraries; |
|
||||
} else { |
|
||||
libs = [lib]; |
|
||||
} |
|
||||
|
|
||||
const components = {}; |
|
||||
const generators = {}; |
|
||||
|
|
||||
for(let l of libs) { |
|
||||
const info = await componentLibraryInfo(appPath, l); |
|
||||
merge(components, info.components); |
|
||||
merge(generators, info.generators); |
|
||||
} |
|
||||
|
|
||||
if(components._lib) delete components._lib; |
|
||||
if(components._generators) delete components._generators; |
|
||||
|
|
||||
return {components, generators}; |
|
||||
} |
|
||||
|
|
||||
const fetchscreens = async (appPath, relativePath = "") => { |
|
||||
|
|
||||
const currentDir = join(appPath, "components", relativePath); |
|
||||
|
|
||||
const contents = await readdir(currentDir); |
|
||||
|
|
||||
const components = []; |
|
||||
|
|
||||
for(let item of contents) { |
|
||||
const itemRelativePath = join(relativePath, item); |
|
||||
const itemFullPath = join(currentDir, item); |
|
||||
const stats = await stat(itemFullPath); |
|
||||
|
|
||||
if(stats.isFile()) { |
|
||||
|
|
||||
if(!item.endsWith(".json")) continue; |
|
||||
|
|
||||
const component = |
|
||||
await readJSON(itemFullPath); |
|
||||
|
|
||||
component.name = itemRelativePath |
|
||||
.substring(0, itemRelativePath.length - 5) |
|
||||
.replace(/\\/g, "/"); |
|
||||
|
|
||||
component.props = component.props || {}; |
|
||||
|
|
||||
components.push(component); |
|
||||
} else { |
|
||||
const childComponents = await fetchscreens( |
|
||||
appPath, join(relativePath, item) |
|
||||
); |
|
||||
|
|
||||
for(let c of childComponents) { |
|
||||
components.push(c); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
return components; |
|
||||
} |
|
||||
|
|
||||
module.exports.getComponents = getComponents; |
|
||||
@ -1,32 +0,0 @@ |
|||||
<!doctype html> |
|
||||
<html> |
|
||||
<head> |
|
||||
<meta charset='utf8'> |
|
||||
<meta name='viewport' content='width=device-width'> |
|
||||
|
|
||||
<title>{{ title }}</title> |
|
||||
<link rel='icon' type='image/png' href='{{ favicon }}'> |
|
||||
|
|
||||
<style> |
|
||||
html, body { |
|
||||
height: 100%; |
|
||||
width: 100%; |
|
||||
} |
|
||||
</style> |
|
||||
|
|
||||
{{ each(options.stylesheets) }} |
|
||||
<link rel='stylesheet' href='{{ @this }}'> |
|
||||
{{ /each }} |
|
||||
|
|
||||
<script src='{{ appRootPath }}/clientAppDefinition.js'></script> |
|
||||
<script src='{{ appRootPath }}/budibase-client.js'></script> |
|
||||
<script> |
|
||||
loadBudibase(); |
|
||||
</script> |
|
||||
|
|
||||
</head> |
|
||||
|
|
||||
<body id="app"> |
|
||||
|
|
||||
</body> |
|
||||
</html> |
|
||||
@ -1,25 +0,0 @@ |
|||||
const { appPackageFolder } = require("../createAppPackage"); |
|
||||
const { writeJSON } = require("fs-extra"); |
|
||||
const buildApp = require("./buildApp"); |
|
||||
|
|
||||
module.exports = async (config, appname, pkg) => { |
|
||||
const appPath = appPackageFolder(config, appname); |
|
||||
await writeJSON( |
|
||||
`${appPath}/appDefinition.json`, |
|
||||
pkg.appDefinition, |
|
||||
{spaces:2}); |
|
||||
|
|
||||
await writeJSON( |
|
||||
`${appPath}/access_levels.json`, |
|
||||
pkg.accessLevels, |
|
||||
{spaces:2}); |
|
||||
|
|
||||
await writeJSON( |
|
||||
`${appPath}/pages.json`, |
|
||||
pkg.pages, |
|
||||
{spaces:2}); |
|
||||
|
|
||||
await buildApp( |
|
||||
config, appname, |
|
||||
pkg.pages, pkg.appDefinition); |
|
||||
} |
|
||||
Loading…
Reference in new issue