@widgetic/editor 3.11.4 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (497) hide show
  1. package/README.md +245 -0
  2. package/dist/assets/fonts.json +331 -0
  3. package/dist/assets/icons/ic-browser/audio.svg +7 -0
  4. package/dist/assets/icons/ic-browser/document.svg +11 -0
  5. package/dist/assets/icons/ic-browser/error.svg +5 -0
  6. package/dist/assets/icons/ic-browser/folder.svg +28 -0
  7. package/dist/assets/icons/ic-browser/player-pause.svg +1 -0
  8. package/dist/assets/icons/ic-browser/player-play.svg +1 -0
  9. package/dist/assets/icons/ic-browser/trash.svg +1 -0
  10. package/dist/assets/icons/ic-fixed-position/background-deselected.svg +3 -0
  11. package/dist/assets/icons/ic-fixed-position/background-selected.svg +3 -0
  12. package/dist/assets/icons/ic-fixed-position/bottom-left-background-deselected.svg +3 -0
  13. package/dist/assets/icons/ic-fixed-position/bottom-left-background-selected.svg +3 -0
  14. package/dist/assets/icons/ic-fixed-position/bottom-left-icon.svg +4 -0
  15. package/dist/assets/icons/ic-fixed-position/bottom-right-background-deselected.svg +3 -0
  16. package/dist/assets/icons/ic-fixed-position/bottom-right-background-selected.svg +3 -0
  17. package/dist/assets/icons/ic-fixed-position/bottom-right-icon.svg +4 -0
  18. package/dist/assets/icons/ic-fixed-position/center-bottom-icon.svg +5 -0
  19. package/dist/assets/icons/ic-fixed-position/center-center-icon.svg +3 -0
  20. package/dist/assets/icons/ic-fixed-position/center-left-icon.svg +5 -0
  21. package/dist/assets/icons/ic-fixed-position/center-right-icon.svg +5 -0
  22. package/dist/assets/icons/ic-fixed-position/center-top-icon.svg +5 -0
  23. package/dist/assets/icons/ic-fixed-position/top-left-background-deselected.svg +3 -0
  24. package/dist/assets/icons/ic-fixed-position/top-left-background-selected.svg +3 -0
  25. package/dist/assets/icons/ic-fixed-position/top-left-icon.svg +4 -0
  26. package/dist/assets/icons/ic-fixed-position/top-right-background-deselected.svg +3 -0
  27. package/dist/assets/icons/ic-fixed-position/top-right-background-selected.svg +3 -0
  28. package/dist/assets/icons/ic-fixed-position/top-right-icon.svg +4 -0
  29. package/dist/assets/icons/trash.svg +1 -0
  30. package/dist/components/MockWidget.svelte +108 -0
  31. package/dist/components/MockWidget.svelte.d.ts +22 -0
  32. package/dist/components/WidgetPreview.svelte +852 -0
  33. package/dist/components/WidgetPreview.svelte.d.ts +100 -0
  34. package/dist/components/color-select/ColorSelect.svelte +258 -0
  35. package/dist/components/color-select/ColorSelect.svelte.d.ts +42 -0
  36. package/dist/components/color-select/color.d.ts +25 -0
  37. package/dist/components/color-select/color.js +21 -0
  38. package/dist/components/color-select/constants.d.ts +5 -0
  39. package/dist/components/color-select/constants.js +5 -0
  40. package/dist/components/color-select/render.d.ts +5 -0
  41. package/dist/components/color-select/render.js +77 -0
  42. package/dist/components/color-select/shaders.d.ts +3 -0
  43. package/dist/components/color-select/shaders.js +8 -0
  44. package/dist/components/editors/EmbedEditor.svelte +700 -0
  45. package/dist/components/editors/EmbedEditor.svelte.d.ts +50 -0
  46. package/dist/components/editors/PropsEditor.svelte +3952 -0
  47. package/dist/components/editors/PropsEditor.svelte.d.ts +62 -0
  48. package/dist/components/editors/props-editor.css +73 -0
  49. package/dist/components/ic/AngleInputController.svelte +276 -0
  50. package/dist/components/ic/AngleInputController.svelte.d.ts +26 -0
  51. package/dist/components/ic/BrowserInputController.svelte +724 -0
  52. package/dist/components/ic/BrowserInputController.svelte.d.ts +39 -0
  53. package/dist/components/ic/CheckboxInputController.svelte +203 -0
  54. package/dist/components/ic/CheckboxInputController.svelte.d.ts +41 -0
  55. package/dist/components/ic/ColorPickerInputController.svelte +1584 -0
  56. package/dist/components/ic/ColorPickerInputController.svelte.d.ts +50 -0
  57. package/dist/components/ic/DateFieldInputController.svelte +453 -0
  58. package/dist/components/ic/DateFieldInputController.svelte.d.ts +35 -0
  59. package/dist/components/ic/DatePickerInputController.svelte +364 -0
  60. package/dist/components/ic/DatePickerInputController.svelte.d.ts +28 -0
  61. package/dist/components/ic/DropdownInputController.svelte +226 -0
  62. package/dist/components/ic/DropdownInputController.svelte.d.ts +43 -0
  63. package/dist/components/ic/FixedPositionInputController.svelte +353 -0
  64. package/dist/components/ic/FixedPositionInputController.svelte.d.ts +23 -0
  65. package/dist/components/ic/FontInputController.svelte +2062 -0
  66. package/dist/components/ic/FontInputController.svelte.d.ts +47 -0
  67. package/dist/components/ic/InputControllerHeader.svelte +147 -0
  68. package/dist/components/ic/InputControllerHeader.svelte.d.ts +23 -0
  69. package/dist/components/ic/NumberControls.svelte +299 -0
  70. package/dist/components/ic/NumberControls.svelte.d.ts +30 -0
  71. package/dist/components/ic/NumberInputController.svelte +397 -0
  72. package/dist/components/ic/NumberInputController.svelte.d.ts +30 -0
  73. package/dist/components/ic/PositionInputController.svelte +252 -0
  74. package/dist/components/ic/PositionInputController.svelte.d.ts +37 -0
  75. package/dist/components/ic/RadioGroupInputController.svelte +162 -0
  76. package/dist/components/ic/RadioGroupInputController.svelte.d.ts +38 -0
  77. package/dist/components/ic/RangeCalendarInputController.svelte +262 -0
  78. package/dist/components/ic/RangeCalendarInputController.svelte.d.ts +32 -0
  79. package/dist/components/ic/RoundedCornersInputController.svelte +469 -0
  80. package/dist/components/ic/RoundedCornersInputController.svelte.d.ts +37 -0
  81. package/dist/components/ic/SliderInputController.svelte +411 -0
  82. package/dist/components/ic/SliderInputController.svelte.d.ts +46 -0
  83. package/dist/components/ic/SliderRangeInputController.svelte +155 -0
  84. package/dist/components/ic/SliderRangeInputController.svelte.d.ts +33 -0
  85. package/dist/components/ic/SwitchInputController.svelte +107 -0
  86. package/dist/components/ic/SwitchInputController.svelte.d.ts +24 -0
  87. package/dist/components/ic/TagsInputController.svelte +125 -0
  88. package/dist/components/ic/TagsInputController.svelte.d.ts +27 -0
  89. package/dist/components/ic/TextAreaInputController.svelte +1804 -0
  90. package/dist/components/ic/TextAreaInputController.svelte.d.ts +13 -0
  91. package/dist/components/ic/TextAreaPreviewInputController.svelte +476 -0
  92. package/dist/components/ic/TextAreaPreviewInputController.svelte.d.ts +28 -0
  93. package/dist/components/ic/TextInputController.svelte +70 -0
  94. package/dist/components/ic/TextInputController.svelte.d.ts +30 -0
  95. package/dist/components/ic/TimeInputController.svelte +434 -0
  96. package/dist/components/ic/TimeInputController.svelte.d.ts +25 -0
  97. package/dist/components/ic/VectorInputController.svelte +1826 -0
  98. package/dist/components/ic/VectorInputController.svelte.d.ts +47 -0
  99. package/dist/components/ic/index.d.ts +39 -0
  100. package/dist/components/ic/index.js +24 -0
  101. package/dist/components/ic/shared/CategoryTabs.svelte +40 -0
  102. package/dist/components/ic/shared/CategoryTabs.svelte.d.ts +25 -0
  103. package/dist/components/ic/shared/ItemGrid.svelte +181 -0
  104. package/dist/components/ic/shared/ItemGrid.svelte.d.ts +35 -0
  105. package/dist/components/ic/shared/RecentItemsSection.svelte +260 -0
  106. package/dist/components/ic/shared/RecentItemsSection.svelte.d.ts +35 -0
  107. package/dist/components/ic/shared/index.d.ts +8 -0
  108. package/dist/components/ic/shared/index.js +9 -0
  109. package/dist/components/icons/addnew.svelte +21 -0
  110. package/dist/components/icons/addnew.svelte.d.ts +20 -0
  111. package/dist/components/icons/drag.svelte +29 -0
  112. package/dist/components/icons/drag.svelte.d.ts +20 -0
  113. package/dist/components/icons/drag.svg +1 -0
  114. package/dist/components/icons/locked.svelte +4 -0
  115. package/dist/components/icons/locked.svelte.d.ts +26 -0
  116. package/dist/components/icons/locked.svg +4 -0
  117. package/dist/components/icons/ok.svelte +20 -0
  118. package/dist/components/icons/ok.svelte.d.ts +20 -0
  119. package/dist/components/icons/ok.svg +11 -0
  120. package/dist/components/icons/unlocked.svelte +4 -0
  121. package/dist/components/icons/unlocked.svelte.d.ts +26 -0
  122. package/dist/components/icons/unlocked.svg +4 -0
  123. package/dist/components/icons/x.svelte +14 -0
  124. package/dist/components/icons/x.svelte.d.ts +20 -0
  125. package/dist/components/icons/x.svg +5 -0
  126. package/dist/components/ui/arrows/OpacitySliderArrows.svelte +43 -0
  127. package/dist/components/ui/arrows/OpacitySliderArrows.svelte.d.ts +23 -0
  128. package/dist/components/ui/checkerboard-background/CheckerboardBackground.svelte +15 -0
  129. package/dist/components/ui/checkerboard-background/CheckerboardBackground.svelte.d.ts +20 -0
  130. package/dist/config.d.ts +5 -0
  131. package/dist/config.js +19 -0
  132. package/dist/index.d.ts +4 -0
  133. package/dist/index.js +8 -0
  134. package/dist/stores/userSession.d.ts +7 -0
  135. package/dist/stores/userSession.js +28 -0
  136. package/dist/utils/FontManager.d.ts +276 -0
  137. package/dist/utils/FontManager.js +1283 -0
  138. package/dist/utils/MediaManager.d.ts +35 -0
  139. package/dist/utils/MediaManager.js +59 -0
  140. package/dist/utils/VectorManager.d.ts +190 -0
  141. package/dist/utils/VectorManager.js +754 -0
  142. package/dist/utils/colorAutocomplete.d.ts +10 -0
  143. package/dist/utils/colorAutocomplete.js +28 -0
  144. package/dist/utils/colorNames.d.ts +3 -0
  145. package/dist/utils/colorNames.js +152 -0
  146. package/dist/utils/colorTransparency.d.ts +52 -0
  147. package/dist/utils/colorTransparency.js +114 -0
  148. package/dist/utils/fontUtils.d.ts +34 -0
  149. package/dist/utils/fontUtils.js +132 -0
  150. package/dist/utils/passiveEvents.js +20 -0
  151. package/dist/utils/recentColors.d.ts +10 -0
  152. package/dist/utils/recentColors.js +63 -0
  153. package/dist/utils/skipFonts.d.ts +3 -0
  154. package/dist/utils/skipFonts.js +49 -0
  155. package/dist/utils/vectorUtils.d.ts +34 -0
  156. package/dist/utils/vectorUtils.js +71 -0
  157. package/dist/utils.d.ts +11 -0
  158. package/dist/utils.js +38 -0
  159. package/package.json +134 -74
  160. package/.babelrc +0 -10
  161. package/.bowerrc +0 -4
  162. package/.nvmrc +0 -1
  163. package/Gruntfile.coffee +0 -69
  164. package/bower.json +0 -28
  165. package/css/browser/entries/activateable.styl +0 -29
  166. package/css/browser/entries/audio.styl +0 -39
  167. package/css/browser/entries/folder.styl +0 -79
  168. package/css/browser/entries/image.styl +0 -26
  169. package/css/browser/entries/index.styl +0 -66
  170. package/css/browser/entries/rss.styl +0 -11
  171. package/css/browser/entries/video.styl +0 -11
  172. package/css/browser/index.styl +0 -86
  173. package/css/browser/intent/index.styl +0 -61
  174. package/css/browser/nav/index.styl +0 -73
  175. package/css/browser/social-browser.styl +0 -23
  176. package/css/controls/clock.styl +0 -110
  177. package/css/controls/config.styl +0 -6
  178. package/css/controls/control-audio-details.styl +0 -63
  179. package/css/controls/control-audio.styl +0 -28
  180. package/css/controls/control-browser.styl +0 -48
  181. package/css/controls/control-color.styl +0 -423
  182. package/css/controls/control-date_time.styl +0 -191
  183. package/css/controls/control-dropdown.styl +0 -79
  184. package/css/controls/control-font.styl +0 -147
  185. package/css/controls/control-image-details.styl +0 -35
  186. package/css/controls/control-image.styl +0 -43
  187. package/css/controls/control-order-picker.styl +0 -29
  188. package/css/controls/control-position.styl +0 -390
  189. package/css/controls/control-range.styl +0 -68
  190. package/css/controls/control-scale.styl +0 -30
  191. package/css/controls/control-slider.styl +0 -38
  192. package/css/controls/control-spinner.styl +0 -39
  193. package/css/controls/control-textarea.styl +0 -52
  194. package/css/controls/control-toggle.styl +0 -34
  195. package/css/controls/control-url.styl +0 -32
  196. package/css/controls/control-video-details.styl +0 -85
  197. package/css/controls/control-video.styl +0 -43
  198. package/css/controls/general.styl +0 -98
  199. package/css/controls/index.styl +0 -25
  200. package/css/editor/colors.styl +0 -7
  201. package/css/editor/content/directinput.styl +0 -47
  202. package/css/editor/content/index.styl +0 -111
  203. package/css/editor/content/message.styl +0 -53
  204. package/css/editor/content/tabs.styl +0 -75
  205. package/css/editor/copied-from-old-style.styl +0 -197
  206. package/css/editor/details/bulk-editor.styl +0 -104
  207. package/css/editor/details/index.styl +0 -21
  208. package/css/editor/details/item.styl +0 -153
  209. package/css/editor/embed.styl +0 -106
  210. package/css/editor/footer.styl +0 -180
  211. package/css/editor/full-editor.styl +0 -16
  212. package/css/editor/index.styl +0 -124
  213. package/css/editor/login-popup.styl +0 -13
  214. package/css/editor/preview.styl +0 -257
  215. package/css/editor/skin/editor/index.styl +0 -54
  216. package/css/editor/skin/editor/tabs.styl +0 -111
  217. package/css/editor/skin/index.styl +0 -138
  218. package/css/editor/skin/popup.styl +0 -152
  219. package/css/editor/skin/presets/dropdown.styl +0 -61
  220. package/css/editor/skin/presets/index.styl +0 -86
  221. package/css/editor/skin/presets/list.styl +0 -244
  222. package/css/editor/tooltips.styl +0 -85
  223. package/css/fonts.styl +0 -47
  224. package/css/icons/BlogvioEditor.dev.svg +0 -112
  225. package/css/icons.styl +0 -16
  226. package/css/img/arrow-right-rounded-v-small.png +0 -0
  227. package/css/img/browser-folder-separator.png +0 -0
  228. package/css/img/calendar-input-icons.png +0 -0
  229. package/css/img/check.png +0 -0
  230. package/css/img/close.png +0 -0
  231. package/css/img/composition/edit-icon.png +0 -0
  232. package/css/img/content/audio-icon.png +0 -0
  233. package/css/img/content/folder-icon.png +0 -0
  234. package/css/img/content/messages/error-background.png +0 -0
  235. package/css/img/content/messages/error-icon.png +0 -0
  236. package/css/img/content/messages/notification-background.png +0 -0
  237. package/css/img/content/messages/notification-icon.png +0 -0
  238. package/css/img/content/no-files-audio.png +0 -0
  239. package/css/img/content/no-files-image.png +0 -0
  240. package/css/img/content/no-files-video.png +0 -0
  241. package/css/img/content/no-files.png +0 -0
  242. package/css/img/content/rss-icon.png +0 -0
  243. package/css/img/content/selected.png +0 -0
  244. package/css/img/content/video-icon.png +0 -0
  245. package/css/img/content/with-control-text.png +0 -0
  246. package/css/img/control-dropdown-arrow.png +0 -0
  247. package/css/img/control-image-valid.png +0 -0
  248. package/css/img/control-position-icon.png +0 -0
  249. package/css/img/control-scale-lock-icon.png +0 -0
  250. package/css/img/control-slider-arrows-hover.png +0 -0
  251. package/css/img/control-slider-arrows.png +0 -0
  252. package/css/img/control-spinner-buttons-hover.png +0 -0
  253. package/css/img/control-spinner-buttons.png +0 -0
  254. package/css/img/control-textarea-bold-active.png +0 -0
  255. package/css/img/control-textarea-bold.png +0 -0
  256. package/css/img/control-textarea-italic-active.png +0 -0
  257. package/css/img/control-textarea-italic.png +0 -0
  258. package/css/img/control-textarea-underline-active.png +0 -0
  259. package/css/img/control-textarea-underline.png +0 -0
  260. package/css/img/custom-checkbox-sprite.png +0 -0
  261. package/css/img/details/item-collapse-icon.png +0 -0
  262. package/css/img/details/item-expand-icon.png +0 -0
  263. package/css/img/details/item-sort-icon.png +0 -0
  264. package/css/img/done-arrow.png +0 -0
  265. package/css/img/fb-logo-icon-w.png +0 -0
  266. package/css/img/grid-icons.png +0 -0
  267. package/css/img/icon-reference.png +0 -0
  268. package/css/img/indicator.png +0 -0
  269. package/css/img/loader.gif +0 -0
  270. package/css/img/loaders/audio-white.png +0 -0
  271. package/css/img/loaders/audio.png +0 -0
  272. package/css/img/loaders/photo-white.png +0 -0
  273. package/css/img/loaders/photo.png +0 -0
  274. package/css/img/loaders/util-white.png +0 -0
  275. package/css/img/loaders/util.png +0 -0
  276. package/css/img/loaders/video-white.png +0 -0
  277. package/css/img/loaders/video.png +0 -0
  278. package/css/img/maximize.png +0 -0
  279. package/css/img/minimize.png +0 -0
  280. package/css/img/next-btn.png +0 -0
  281. package/css/img/search-icon-sprite.png +0 -0
  282. package/css/img/services/blogvio.png +0 -0
  283. package/css/img/services/drive.png +0 -0
  284. package/css/img/services/dropbox-login.png +0 -0
  285. package/css/img/services/dropbox.png +0 -0
  286. package/css/img/services/facebook-login.png +0 -0
  287. package/css/img/services/facebook.png +0 -0
  288. package/css/img/services/flickr-login.png +0 -0
  289. package/css/img/services/flickr.png +0 -0
  290. package/css/img/services/instagram-login.png +0 -0
  291. package/css/img/services/instagram.png +0 -0
  292. package/css/img/services/text.png +0 -0
  293. package/css/img/services/uploads.png +0 -0
  294. package/css/img/services/uploads.svg +0 -689
  295. package/css/img/services/webaddress-bw.png +0 -0
  296. package/css/img/services/webaddress.png +0 -0
  297. package/css/img/services/webadress.png +0 -0
  298. package/css/img/services/websearch.png +0 -0
  299. package/css/img/services/wix.png +0 -0
  300. package/css/img/skin/item-active-indicator.png +0 -0
  301. package/css/img/skin/item-hover-icon.png +0 -0
  302. package/css/img/skin/overwrite.png +0 -0
  303. package/css/img/skin/popup-name-icon.png +0 -0
  304. package/css/img/skin/popup-save.png +0 -0
  305. package/css/img/skin/preset.png +0 -0
  306. package/css/img/skin/presets-arrow-purple.png +0 -0
  307. package/css/img/tw-icon-w.png +0 -0
  308. package/css/img/warning.png +0 -0
  309. package/css/img/white-rounded-check.png +0 -0
  310. package/css/index.styl +0 -9
  311. package/css/mixins.styl +0 -62
  312. package/css/scrollable.styl +0 -101
  313. package/karma.conf.js +0 -73
  314. package/lib/control.js +0 -1
  315. package/lib/controls.js +0 -1
  316. package/lib/core.editor.js +0 -4
  317. package/lib/core.js +0 -1
  318. package/lib/core.vendor.js +0 -3
  319. package/lib/dev/control.js +0 -845
  320. package/lib/dev/controls.js +0 -7774
  321. package/lib/dev/core.editor.js +0 -6439
  322. package/lib/dev/core.js +0 -1486
  323. package/lib/dev/core.vendor.js +0 -10708
  324. package/lib/dev/editor.css +0 -166
  325. package/lib/dev/editor.js +0 -29710
  326. package/lib/dev/editor.vendor.js +0 -15119
  327. package/lib/dev/jquery.nanoscroller.js.map +0 -10
  328. package/lib/editor.css +0 -167
  329. package/lib/editor.js +0 -49
  330. package/lib/editor.vendor.js +0 -11
  331. package/src/api/index.coffee +0 -23
  332. package/src/api/mixin.coffee +0 -89
  333. package/src/browser/controller/entry/audio.coffee +0 -38
  334. package/src/browser/controller/entry/button.coffee +0 -16
  335. package/src/browser/controller/entry/file.coffee +0 -35
  336. package/src/browser/controller/entry/folder.coffee +0 -14
  337. package/src/browser/controller/entry/image.coffee +0 -24
  338. package/src/browser/controller/entry/index.coffee +0 -18
  339. package/src/browser/controller/entry/rss.coffee +0 -5
  340. package/src/browser/controller/entry/video.coffee +0 -4
  341. package/src/browser/controller/index.coffee +0 -289
  342. package/src/browser/controller/instagram.coffee +0 -129
  343. package/src/browser/controller/navbar.coffee +0 -48
  344. package/src/browser/controller/social.coffee +0 -213
  345. package/src/browser/model/entry.coffee +0 -18
  346. package/src/browser/model/index.coffee +0 -34
  347. package/src/core/controller/font-loader.coffee +0 -65
  348. package/src/core/controller/lazyload.coffee +0 -14
  349. package/src/core/controller/overlay.coffee +0 -146
  350. package/src/core/controller/popup.coffee +0 -36
  351. package/src/core/controller/scrollable.coffee +0 -68
  352. package/src/core/controls/audio.coffee +0 -56
  353. package/src/core/controls/browser.coffee +0 -271
  354. package/src/core/controls/color.coffee +0 -121
  355. package/src/core/controls/date-time/calendar/index.coffee +0 -99
  356. package/src/core/controls/date-time/calendar/months.coffee +0 -52
  357. package/src/core/controls/date-time/calendar/years.coffee +0 -58
  358. package/src/core/controls/date-time/clock.coffee +0 -62
  359. package/src/core/controls/date-time/helper.coffee +0 -31
  360. package/src/core/controls/date-time/index.coffee +0 -62
  361. package/src/core/controls/date-time/popup.coffee +0 -56
  362. package/src/core/controls/details/audio.coffee +0 -33
  363. package/src/core/controls/details/image.coffee +0 -19
  364. package/src/core/controls/details/video.coffee +0 -14
  365. package/src/core/controls/dropdown.coffee +0 -100
  366. package/src/core/controls/font/font-item.coffee +0 -22
  367. package/src/core/controls/font/font-list.coffee +0 -108
  368. package/src/core/controls/font/fonts-popup.coffee +0 -91
  369. package/src/core/controls/font/index.coffee +0 -66
  370. package/src/core/controls/image.coffee +0 -37
  371. package/src/core/controls/index.coffee +0 -88
  372. package/src/core/controls/orderPicker.coffee +0 -93
  373. package/src/core/controls/position/grid-panel.coffee +0 -75
  374. package/src/core/controls/position/index.coffee +0 -98
  375. package/src/core/controls/position/panel.coffee +0 -68
  376. package/src/core/controls/position/pixel-panel.coffee +0 -54
  377. package/src/core/controls/position/popup.coffee +0 -63
  378. package/src/core/controls/position/reference-panel.coffee +0 -26
  379. package/src/core/controls/range.coffee +0 -191
  380. package/src/core/controls/rss.coffee +0 -16
  381. package/src/core/controls/scale.coffee +0 -78
  382. package/src/core/controls/slider.coffee +0 -122
  383. package/src/core/controls/stepper.coffee +0 -97
  384. package/src/core/controls/text.coffee +0 -54
  385. package/src/core/controls/textarea.coffee +0 -78
  386. package/src/core/controls/toggle.coffee +0 -29
  387. package/src/core/controls/url.coffee +0 -88
  388. package/src/core/controls/video.coffee +0 -9
  389. package/src/core/embed/api.js +0 -178
  390. package/src/core/embed/controller.js +0 -331
  391. package/src/core/models/composition.coffee +0 -178
  392. package/src/core/models/content.coffee +0 -79
  393. package/src/core/models/skin.coffee +0 -91
  394. package/src/core/models/user.coffee +0 -6
  395. package/src/core/models/widget.coffee +0 -88
  396. package/src/core/router/index.coffee +0 -44
  397. package/src/core/services/container/index.js +0 -18
  398. package/src/core/services/container/instance.js +0 -3
  399. package/src/core/services/content.js +0 -80
  400. package/src/core/services/instagram.coffee +0 -47
  401. package/src/core/services/mixin/events.js +0 -17
  402. package/src/core/services/service.js +0 -1
  403. package/src/core/services/sounds.js +0 -81
  404. package/src/core/services/uploads.js +0 -299
  405. package/src/core/utils/popup.coffee +0 -67
  406. package/src/core/utils/should-show.coffee +0 -12
  407. package/src/core/views/audio-details.pug +0 -9
  408. package/src/core/views/audio.pug +0 -7
  409. package/src/core/views/browser.pug +0 -4
  410. package/src/core/views/color.pug +0 -8
  411. package/src/core/views/date-time/calendar.pug +0 -3
  412. package/src/core/views/date-time/clock.pug +0 -12
  413. package/src/core/views/date-time/grid.pug +0 -6
  414. package/src/core/views/date-time/input.pug +0 -4
  415. package/src/core/views/date-time/table.pug +0 -6
  416. package/src/core/views/dropdown.pug +0 -9
  417. package/src/core/views/font/font-item.pug +0 -3
  418. package/src/core/views/font/fonts-list.pug +0 -7
  419. package/src/core/views/font/fonts-popup.pug +0 -5
  420. package/src/core/views/font/index.pug +0 -7
  421. package/src/core/views/image-details.pug +0 -6
  422. package/src/core/views/image.pug +0 -5
  423. package/src/core/views/input-layout.pug +0 -15
  424. package/src/core/views/order-items.pug +0 -7
  425. package/src/core/views/order-picker.pug +0 -7
  426. package/src/core/views/pixelpanel.pug +0 -69
  427. package/src/core/views/position.pug +0 -10
  428. package/src/core/views/range.pug +0 -9
  429. package/src/core/views/scale.pug +0 -7
  430. package/src/core/views/slider.pug +0 -6
  431. package/src/core/views/stepper.pug +0 -6
  432. package/src/core/views/text.pug +0 -4
  433. package/src/core/views/textarea.pug +0 -8
  434. package/src/core/views/toggle.pug +0 -5
  435. package/src/core/views/video-details.pug +0 -7
  436. package/src/core/views/video.pug +0 -4
  437. package/src/core/widget/index.coffee +0 -66
  438. package/src/editor/content/browser/dropzone.html +0 -268
  439. package/src/editor/content/browser/file.html +0 -124
  440. package/src/editor/content/browser/scroll-pane.html +0 -32
  441. package/src/editor/content/browser/service.html +0 -53
  442. package/src/editor/content/browser/upload.coffee +0 -44
  443. package/src/editor/content/browser/upload.html +0 -439
  444. package/src/editor/content/index.coffee +0 -294
  445. package/src/editor/content/input/field.coffee +0 -45
  446. package/src/editor/content/input/index.coffee +0 -115
  447. package/src/editor/content/service/base/photoitem.coffee +0 -49
  448. package/src/editor/content/service/cache.coffee +0 -20
  449. package/src/editor/content/service/default.coffee +0 -59
  450. package/src/editor/content/service/dropbox.coffee +0 -71
  451. package/src/editor/content/service/facebook.coffee +0 -143
  452. package/src/editor/content/service/flickr.coffee +0 -85
  453. package/src/editor/content/service/google-drive-sdk.coffee +0 -18
  454. package/src/editor/content/service/google-drive.coffee +0 -144
  455. package/src/editor/content/service/instagram-social.coffee +0 -84
  456. package/src/editor/content/service/instagram.coffee +0 -168
  457. package/src/editor/content/service/share-popup.coffee +0 -15
  458. package/src/editor/content/service/soundcloud.coffee +0 -163
  459. package/src/editor/content/tab.coffee +0 -27
  460. package/src/editor/details/bulk-editor/attributes-panel.coffee +0 -11
  461. package/src/editor/details/bulk-editor/index.coffee +0 -86
  462. package/src/editor/details/index.coffee +0 -156
  463. package/src/editor/details/item/attributes.coffee +0 -45
  464. package/src/editor/details/item/index.coffee +0 -82
  465. package/src/editor/editor.coffee +0 -274
  466. package/src/editor/footer/breadcrumb.coffee +0 -17
  467. package/src/editor/footer/index.coffee +0 -36
  468. package/src/editor/index.coffee +0 -79
  469. package/src/editor/listeners/embed-listener.coffee +0 -143
  470. package/src/editor/login-popup.coffee +0 -29
  471. package/src/editor/notification-controller.coffee +0 -35
  472. package/src/editor/popup.coffee +0 -68
  473. package/src/editor/remote-preview.coffee +0 -68
  474. package/src/editor/save/index.coffee +0 -62
  475. package/src/editor/skin/delete.coffee +0 -33
  476. package/src/editor/skin/editor/index.coffee +0 -188
  477. package/src/editor/skin/editor/panel.coffee +0 -37
  478. package/src/editor/skin/index.coffee +0 -126
  479. package/src/editor/skin/save.coffee +0 -58
  480. package/src/editor/skin/selector/index.coffee +0 -59
  481. package/src/editor/skin/selector/item.coffee +0 -123
  482. package/src/editor/skin/selector/list.coffee +0 -97
  483. package/src/editor/views/embed.pug +0 -10
  484. package/src/editor/views/loginbutton.pug +0 -8
  485. package/src/editor/views/popup.pug +0 -17
  486. package/src/editor/views/presets.pug +0 -8
  487. package/src/editor/views/presetslist-header.pug +0 -8
  488. package/src/editor/views/skinitem.pug +0 -13
  489. package/src/modules/control.js +0 -3
  490. package/src/modules/controls.js +0 -29
  491. package/src/modules/core.js +0 -19
  492. package/src/modules/editor.js +0 -80
  493. package/test/config.js +0 -3
  494. package/test/core/models/skin-spec.js +0 -209
  495. package/webpack.config.js +0 -46
  496. package/webpack.config.prod.js +0 -9
  497. /package/{src/core/views/date-time/popup.pug → dist/utils/passiveEvents.d.ts} +0 -0
@@ -1,294 +0,0 @@
1
-
2
-
3
- Activateable = window.require 'spine/controller/activateable'
4
- Tabs = window.require 'spine/controller/tabs'
5
- ContentModel = window.require 'core/models/content'
6
- CompositionModel = window.require 'core/models/composition'
7
-
8
- Tab = require './tab'
9
-
10
- Browser = require '../../browser/controller'
11
- DirectInput = require './input'
12
-
13
- Notificator = require '../notification-controller'
14
-
15
- UploadBrowser = require './browser/upload'
16
-
17
- Container = require('Core/services/container/instance').default
18
-
19
- class Content extends Tabs
20
- className : 'content-browser'
21
- tabContainerClass : 'content-browser-tabs'
22
- containerClass : 'content-browser-container'
23
-
24
- title : 'Content'
25
- nextTitle : 'Edit Content'
26
- tabRenderer : Tab
27
-
28
- @include Activateable
29
- interval : 0
30
-
31
- events:
32
- 'editor:browser:active' : '_onBrowserState'
33
- 'editor:browser:auth' : '_onBrowserState'
34
-
35
- constructor:->
36
- @browsers = {}
37
- super
38
-
39
- @el.prepend (@notificator = new Notificator).el
40
- Container.Content.events.error @showError
41
- @$bind 'error', (ev, message) => @showError(message)
42
-
43
- children: (filter = -> true) ->
44
- browser for _, browser of @browsers when filter(browser)
45
-
46
- setPremium: (@premium) ->
47
-
48
- activate: =>
49
- Activateable.activate.apply @, arguments
50
- @children((i)->i.isActive())?[0]?.auth?()
51
- # @children((i)->i.isActive())?[0]?.refresh?()
52
- @$trigger 'viewChange', 'content'
53
- @
54
-
55
- deactivate: =>
56
- Activateable.deactivate.apply @, arguments
57
- @children((i) -> i.isActive())[0]?.refreshChildren?()
58
-
59
- for: (@composition) ->
60
- @initialize()
61
- @
62
-
63
- initialize: () =>
64
- return console.warn 'No composition set' unless @composition
65
-
66
- @children((i) -> i.release())
67
- @stopListening()
68
-
69
- @meta = @composition.contentMeta()
70
- @browserOptions = @meta.browser?.options
71
-
72
- # add browser for the upload source
73
- @addBrowser UploadBrowser
74
-
75
- # read other sources and filter the ones that don't work anymore
76
- sources = @meta.browser?.sources
77
- # console.log('Editor Content sources:', sources);
78
- if sources
79
- delete sources.facebook
80
- delete sources.websearch
81
- delete sources.blogvio
82
- delete sources.dropbox
83
- delete sources.flickr
84
- delete sources["google-drive"]
85
-
86
- # add a browser(legacy) for all alternative source
87
- @legacyAddBrowser source, key for key, source of sources
88
-
89
- # add a browser(legacy) for the direct-input source
90
- if @meta.input
91
- @append @input = new DirectInput {control:@meta.input, @composition}
92
- @browsers['input'] = @input
93
- @listenTo @input, 'canAdd', @contentCanAdd
94
-
95
- # console.log('Editor Content @browsers:', @browsers)
96
-
97
- # add content listeners
98
- @listenTo ContentModel, 'destroy', @onItemDestroy
99
- @listenTo ContentModel, 'update', @_onItemUpdate
100
- @listenTo ContentModel, 'create', @_onItemCreate
101
- @listenTo ContentModel, 'change', => @el.toggleClass 'has-reached-max', @composition.maxContentReached()
102
-
103
- # console.log('Editor Content initialized:', ContentModel, @composition, @browsers);
104
-
105
- # activate the first tab
106
- @children()[0].active()
107
-
108
- @trigger 'initialized'
109
-
110
- addBrowser: (Browser) =>
111
- # console.log("addBrowser:", Browser)
112
- return unless Browser.isCompatible @browserOptions?.types
113
- browser = new Browser { filetypes: @browserOptions?.types }
114
-
115
- browser.on 'toggle', ({file, options}) =>
116
- # HACK do not try to toggle the item after upload if the widget already has max content
117
- return if options?.afterUpload and Container.Content.maxContentReached(@composition)
118
- try
119
- Container.Content.toggleItem(
120
- @composition,
121
- Browser.name,
122
- file.id,
123
- file.url,
124
- # TODO: add file prop to content attr map to meta?
125
- { title: file.name } if @meta.attributes.title
126
- )
127
- catch e
128
- console.warn e
129
-
130
- browser.on 'clearContent', =>
131
- Container.Content.clearContent(@composition, Browser.name)
132
-
133
- browser.observe 'selected', (selected) -> browser.tab.count selected.length
134
-
135
- updateSelected = =>
136
- contentItems = Container.Content.getItemsByService(Browser.name)
137
- selected = contentItems.map (item) -> item.metadata.id
138
- browser.set({ selected })
139
-
140
- Container.Content.events.change updateSelected
141
- updateSelected()
142
-
143
- @append @browsers[Browser.name] = browser
144
-
145
- ###
146
- # @deprecated
147
- # TODO: replace with addBrowser calls
148
- # TODO: refactor all browsers to get the service from the service container
149
- ###
150
- legacyAddBrowser: (service, serviceName) =>
151
- Service = window.require service.module or 'editor/content/service/default'
152
- content = @composition.getContent().filter((i)->i.metadata?.service is serviceName).map((i)->i.metadata)
153
- Browser = window.require service.browser or Service.browser
154
- # console.log("legacyAddBrowser:", Browser, Service, content)
155
-
156
- @browsers[serviceName] = browser = new Browser
157
- content: content
158
- title: serviceName
159
- Service: Service
160
- options: $.extend {}, @browserOptions, service.options or {}
161
-
162
- @listenTo browser, 'add', @contentAdd
163
- @listenTo browser, 'remove', @contentRemove
164
- @listenTo browser, 'update', @contentUpdate
165
- @listenTo browser, 'canAdd', @contentCanAdd
166
- @append browser
167
-
168
- focusBrowser: (browser) =>
169
- (@browsers[browser] or {'links': @input}[browser])?.active()
170
-
171
- ###
172
- # @deprecated
173
- # TODO: use Content service
174
- ###
175
- contentCanAdd: (callback, just_checking) =>
176
- if @premium
177
- @_premiumContentCanAdd(callback, just_checking)
178
- else
179
- @_freeContentCanAdd(callback, just_checking)
180
-
181
- ###
182
- # @deprecated
183
- ###
184
- _premiumContentCanAdd: (callback, just_checking) =>
185
- return callback.call @ unless @composition.maxContentReached()
186
- @showError 'max', true unless just_checking
187
-
188
- ###
189
- # @deprecated
190
- ###
191
- _freeContentCanAdd: (callback, just_checking) =>
192
- max = @composition.contentMeta().options.free_user_limit
193
- return callback.call @ unless @composition.maxContentReached(max)
194
- @showError 'maxFree', true unless just_checking
195
-
196
- ###
197
- # @deprecated
198
- # TODO: use Content service
199
- ###
200
- contentAdd: (item) =>
201
- # console.log('Editor Content Tab onContentAdded:', item);
202
- props= {}
203
- props[attr] = item[attr] for attr, opts of @meta.attributes when item[attr]?
204
- props.metadata = item
205
- props.composition_id = @composition.id
206
-
207
- props[@meta.browser.options.attribute] = item.url
208
- (new ContentModel(props)).save()
209
-
210
- ###
211
- Event Handler for browser `remove` event
212
-
213
- Destroy the ContentModel associated with a removed item
214
- @deprecated
215
- TODO: use Content service
216
- ###
217
- contentRemove: (item) =>
218
-
219
- @stopListening ContentModel, 'destroy', @onItemDestroy
220
- removedContent = ContentModel.all().filter((i) =>
221
- # console.log("contentRemove filter:", i)
222
- i.metadata?.id is item.id and i.composition_id is @composition.id
223
- )
224
- # console.log('Editor Content contentRemove:', item, ContentModel.all(), removedContent)
225
- removedContent[0]?.destroy()
226
- @listenTo ContentModel, 'destroy', @onItemDestroy
227
-
228
- @showError('min', true) unless @composition.hasEnoughContent()
229
-
230
- ###
231
- Event Handler for browser `update` event
232
-
233
- Update the ContentModel associated with an updated item
234
- @deprecated
235
- TODO: use Content service
236
- ###
237
- contentUpdate: (item, attribute, value) =>
238
- content = ContentModel.all().filter((i) =>
239
- i.metadata is item
240
- )
241
- return unless content.length
242
-
243
- content[0].updateAttribute(attribute, value)
244
-
245
- ###
246
- Event Handler for ContentModel `destroy` event
247
-
248
- Deselect the item in the associated browser service
249
- @deprecated
250
- TODO: use Content service
251
- ###
252
- onItemDestroy: (item) =>
253
- # check if the removed Content is for the current working composition
254
- return unless item.composition_id is @composition.id
255
- # check if the Content was added with a browser service
256
- if (service = item.metadata?.service) and service isnt 'directinput'
257
- @browsers[service]?.removeEntry? item.metadata
258
- true
259
-
260
- _onItemCreate: (item) =>
261
- return unless item.composition_id is @composition.id
262
- if (service = item.metadata?.service) and service isnt 'directinput'
263
- @browsers[service]?.addEntry? item.metadata
264
- else
265
- @input.addEntry item
266
- true
267
-
268
- _onItemUpdate: (item) =>
269
- return unless item.composition_id is @composition.id
270
- if (service = item.metadata?.service) and service isnt 'directinput'
271
- @browsers[service]?.updateEntry? item, item.metadata
272
- true
273
-
274
- showError: (error, upgradeCTA = false) =>
275
- message = if @composition[error+'ErrorMsg'] then @composition[error+'ErrorMsg']() else error
276
- @notificator.notify message, {
277
- timeout: 10000
278
- onClick: (=> @$trigger 'Content:upgrade') if upgradeCTA
279
- }
280
-
281
- # TODO: see if this can be removed
282
- _onBrowserState: (event, options) =>
283
- @$trigger 'editor:content:browserState', options
284
-
285
- afterAdd:(child)=>
286
- super
287
- return unless child.options.pos
288
- @tabs.el.children(":nth-child(#{child.options.pos})").before child.tab.el
289
-
290
- release: ->
291
- @_release @
292
- super
293
-
294
- module.exports = Content
@@ -1,45 +0,0 @@
1
- Controller = window.require 'spine/controller'
2
- Container = window.require 'spine/controller/container'
3
-
4
- ###
5
- Item Render for each content item used in the WebAddress service
6
- ###
7
- class WebAdressField extends Controller
8
- className: 'directinput-field'
9
- title : 'directinput'
10
-
11
- @include Container
12
-
13
- elements:
14
- '.field-delete' : 'del'
15
- 'input': 'input'
16
-
17
- events:
18
- 'click .field-delete' : '_delete'
19
- 'focus input': 'onInputFocus'
20
- 'click .input-textarea': 'onInputFocus'
21
-
22
- constructor:->
23
- super
24
- @control = $.extend true, {}, @control
25
- @$addClass('new') if @item.isNew()
26
- @listenTo @item, 'create', => @$removeClass 'new'
27
- @listenTo @item, 'destroy', @release
28
-
29
- Control = window.require @control.control
30
- @control = new Control { @item ,attribute:@control.attribute, options:@control.options}
31
- @append @control, "<span class='field-delete' data-icon='⏍'></span>"
32
-
33
- _delete: -> @item.destroy()
34
-
35
- enable: =>
36
- @el.toggleClass 'disabled', @disabled = false
37
-
38
- disable: =>
39
- @el.toggleClass 'disabled', @disabled = true
40
-
41
- onInputFocus: =>
42
- @parent().trigger 'canAdd', (->), !@disabled
43
- @input.blur() if @disabled
44
-
45
- module.exports = WebAdressField
@@ -1,115 +0,0 @@
1
-
2
-
3
- Controller = window.require 'spine/controller'
4
- Container = window.require 'spine/controller/container'
5
- Activateable = window.require 'spine/controller/activateable'
6
- Scrollable = require '../../../core/controller/scrollable'
7
-
8
- Content = window.require 'core/models/content'
9
- Field = require './field'
10
- Composition = window.require 'core/models/composition'
11
-
12
- checkItem = (item) -> (i) -> i.item.eql item
13
-
14
- class DirectInput extends Controller
15
- className : 'directinput browser'
16
- title : 'directinput'
17
- serviceTitle: 'link'
18
-
19
- @include Container
20
- @include Activateable
21
- @include Scrollable
22
- attributes: 'authenticated': true
23
-
24
- constructor: ->
25
- super
26
- @append @contentItems()...
27
-
28
- @delay =>
29
- do @new#wait for parent to listen to @trigger
30
- @tab.el.attr 'control', @control.control
31
- @_updateTabCount()
32
-
33
- @listenTo @composition, 'save', @_onCompositionSave
34
- @listenTo Content, 'destroy', @delay.bind @, @new
35
-
36
- contentItems: =>
37
- @composition.getContent().filter( (i) ->
38
- not i.metadata?.service or i.metadata?.service is 'directinput'
39
- ).map (item) => new Field {@control, item}
40
-
41
- ###
42
- Create a new input field for the `Content` item
43
- ###
44
- addEntry: (item) ->
45
- # check if this Content item already has an input
46
- return if !!@children(checkItem item).length
47
-
48
- # create the input field
49
- @append field = new Field {@control, item}
50
- # move the `new field` after this input field
51
- @_getNewField().el.insertAfter field.el
52
-
53
- @_updateTabCount()
54
- @scroll().update()
55
- @
56
-
57
- _new: (i) =>
58
- return @field.enable() if @field?
59
-
60
- @item = new Content metadata: {service: 'directinput'}, composition_id: @composition.id
61
- @field = new Field {@control, @item}
62
- @item.one 'create', @onItemCreated
63
- @append @field
64
-
65
- @_updateTabCount()
66
- @scroll().update()
67
- @scroll().scrollTo('bottom', inertia: false) if i
68
-
69
- new: (i) =>
70
- @_updateTabCount()
71
- @_new i
72
- @field.disable()
73
- @trigger 'canAdd', @field.enable, true
74
- do @_new unless @_count()
75
-
76
- onItemCreated: =>
77
- @item = @field = null
78
- @new()
79
-
80
- _release:(e)=>
81
- Container._release.apply @,[e]
82
- @_updateTabCount()
83
- @scroll().update()
84
-
85
- active: =>
86
- Activateable.active.apply @, arguments
87
- @$trigger "editor:browser:active", {service: 'directinput', authenticated: false}
88
- @scroll().update()
89
-
90
- activate: =>
91
- Activateable.activate.apply @, arguments
92
-
93
- return unless @field?
94
- @field.disable()
95
- @trigger 'canAdd', @field.enable, true
96
-
97
- _updateTabCount: ->
98
- @tab?.count @_count()
99
-
100
- _count: ->
101
- @children((i) -> !i.item.isNew()).length
102
-
103
- _getNewField: -> @children((i)-> i.item.isNew())[0]
104
-
105
- ###
106
- Event handler for the composition `save` event
107
-
108
- Updates the composition_id of the `new entry` field's Content item
109
- when the composition's id is changed after persistance
110
- ###
111
- _onCompositionSave: (comp, options) =>
112
- return unless options.changedID
113
- @_getNewField()?.item.composition_id = @composition.id
114
-
115
- module.exports = DirectInput
@@ -1,49 +0,0 @@
1
- Controller = window.require 'spine/controller'
2
- Activateable = window.require 'spine/controller/activateable'
3
- Content = window.require 'core/models/content'
4
-
5
- ###
6
- # @deprecated
7
- ###
8
- class PhotoItem extends Controller
9
- className : 'service-photo-item loading'
10
- elements : 'img' : 'img'
11
-
12
- @include Activateable
13
-
14
- photoOptions : null
15
- photoData : null
16
-
17
- constructor: ->
18
- super
19
- @$bind('click', @toggle)
20
- @item = new Content()
21
- @listenTo Content, 'destroy', @_destroy
22
- @listenTo Content, 'create', @_create
23
-
24
- toggle: (e)=>
25
- return if @el.is '.loading'
26
- if @isActive()
27
- @item.destroy()
28
- else
29
- atts = {}
30
- atts["#{@attribute}"] = @photoData
31
- atts["options"] = @photoOptions
32
- @item.updateAttributes atts, {@attribute,from:@}
33
-
34
- done: =>
35
- @$trigger('itemReady').$removeClass 'loading'
36
-
37
- error: =>
38
- @$trigger('itemReady').release()
39
-
40
- _destroy: (item) =>
41
- if @item and item and item.eql(@item)
42
- @deactivate()
43
- @item = new Content()
44
-
45
- _create: (item) =>
46
- if @item and item and item.eql(@item)
47
- @activate()
48
-
49
- module.exports = PhotoItem
@@ -1,20 +0,0 @@
1
-
2
- module.exports = do ->
3
- _namespace = 'e_gd_c'
4
- _cache_exp = 10000#cache expires after 10s
5
- # _cache = JSON.parse localStorage.getItem(_namespace) or '{}'
6
- _cache = {}
7
- init: (namespace, cache_exp) ->
8
- _namespace = namespace
9
- _cache_exp = cache_exp
10
- clear: (prefix, id) ->
11
- return _cache[prefix] = {} unless id
12
- _cache[prefix]?[id] = null
13
- set: (prefix, id, value) ->
14
- (_cache[prefix] or= {})[id] = value
15
- _cache[prefix][id].__exp__ = +new Date + _cache_exp
16
- # localStorage.setItem _namespace, JSON.stringify _cache
17
- check: (prefix, id) ->
18
- _cache[prefix]?[id]?.__exp__ > +new Date
19
- get: (prefix, id) ->
20
- _cache[prefix]?[id]
@@ -1,59 +0,0 @@
1
- Service = require '../../../browser/model'
2
- Entry = require '../../../browser/model/entry'
3
-
4
- class DefaultService extends Service
5
- hideDisconnectBtn: true
6
-
7
- constructor: ->
8
- super
9
- @title = "#{@title[0].toUpperCase()}#{@title[1...]}"
10
- @authenticated = false
11
- @authPromise = (@authDef = new $.Deferred).promise()
12
- window.editor.el.bind "content:#{@title.toLowerCase()}:add", @addItems
13
-
14
- _auth: (interactive) ->
15
- @triggerAuthRequire interactive
16
- @trigger 'auth', @authenticated
17
-
18
- if @authenticated
19
- setTimeout => @authDef.resolve()
20
-
21
- addItems: (e, data = {items: []}) =>
22
- @auth !(@authenticated = true) unless @authenticated
23
-
24
- @authPromise.then =>
25
- @trigger 'refresh', [@addContentEntry()] unless @hasAddContentEntry
26
- @trigger 'refresh', (data.items or []).map @newEntry
27
-
28
- refresh: (currentFolder) ->
29
- currentFolder
30
-
31
- addContentEntry: =>
32
- @hasAddContentEntry = true
33
- entry = @newEntry name: "Add content", url: '/', type: 'button'
34
- entry.className = 'add-content-entity'
35
- entry.bind 'select', @triggerAuthRequire.bind @, true
36
- entry
37
-
38
- newEntry: (item) =>
39
- _item = new Entry
40
- service: @
41
- name: item.name or item.title or item.url
42
- path: item.url
43
- type: item.type
44
- url: item.url
45
- _item[i] = o for i,o of item
46
- _item
47
-
48
- getURL: (entry, callback) ->
49
- callback entry.url
50
-
51
- preview: (entry) ->
52
- entry.url
53
-
54
- deauth: ->
55
-
56
- triggerAuthRequire: (interactive) =>
57
- @trigger 'auth-req', {interactive, source: @title, 'content-type': @options.types}
58
-
59
- module.exports = DefaultService
@@ -1,71 +0,0 @@
1
-
2
- Service = require '../../../browser/model'
3
- Entry = require '../../../browser/model/entry'
4
- faqLink = "<a class=\"add-content-instr-link\" target=\"_blank\" href=\"http://blog.widgetic.com/post/101481120261/how-to-load-your-content-from-dropbox\">How to load your content?</a>"
5
-
6
- class DropboxPopupDriver extends Dropbox.Drivers.Popup
7
- openWindow: (url) -> @popup.location.href = url
8
- openPopup: -> @popup =
9
- window.open '/connect/dropbox.html', '_dropboxOauthSigninWindow', @popupWindowSpec 980, 700
10
-
11
- settings =
12
- client:
13
- key: 'ekn9VjZx0VA=|nnWESTkqe31UYqt/Qllbpa2sjX1YmmcmNEPH/vwn0w=='
14
- sandbox: true
15
- fileRoot: 'auto'
16
- driver:
17
- receiverUrl : "https://widgetic.com/connect/dropbox"
18
- rememberUser : true
19
-
20
- Mime =
21
- image:['image/png','image/jpeg','image/jpg','image/gif','image/bmp']
22
- audio:['audio/mp3','audio/mpeg']
23
- video:['video/mp4']
24
- folder:['inode/directory']
25
-
26
- Dropbox.Stat.prototype.entry = (service,entry)->
27
- props = { @name, @path,id:@path}
28
- props.type = k for k,v of Mime when v.indexOf(@mimeType) > -1
29
- new Entry(props)
30
-
31
- class DropboxService extends Service
32
- responses: {}
33
- faqLink: $ faqLink
34
-
35
- constructor: ->
36
- super
37
- @authenticated = false
38
- (@client = new Dropbox.Client settings.client).authDriver new DropboxPopupDriver settings.driver
39
- @allMime = [].concat.apply([], (Mime[type] for type in @options.types when Mime[type]?)).concat Mime.folder
40
- #
41
- @root.navTitle = 'Dropbox/Apps/Blogvio'
42
-
43
- _auth: (interactive=true) ->
44
- DropboxPopupDriver::openPopup() if interactive
45
- @client.authenticate {interactive}, @onAuth
46
-
47
- onAuth:(error,client)=>
48
- @trigger 'auth', not error and client.isAuthenticated()
49
- @client.reset() if error
50
-
51
- refresh:(entry)->
52
- @client.stat entry.path, {readDir: true, cacheHash: entry.hash}, (e, stat, entries) =>
53
-
54
- entry.hash = stat?.versionTag or entry.hash
55
- if e and e.status = 304
56
- entries = @responses[entry.hash] or []
57
- else
58
- entries = entries.filter((i)=>@allMime.indexOf(i.mimeType)>-1).map (i)->i.entry()
59
- @responses[entry.hash] = entries
60
- @trigger 'refresh', entries
61
-
62
- getURL:(entry,callback)->
63
- if entry.url
64
- return callback(entry.url)
65
- @client.makeUrl entry.path, {downloadHack:true,long:true},(error,purl)->
66
- callback(purl.url)
67
-
68
- preview:(entry)->@client.thumbnailUrl entry.path,size:'m'
69
- deauth:->@client.signOut =>@trigger 'auth',false
70
-
71
- module.exports = DropboxService