@widgetic/editor 3.11.3 → 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,23 +0,0 @@
1
- Api =
2
- enabled : true
3
- app_id : '528495b81d8a0c3130000000_5zjgq5bllucc4ok88404occgcgsckswcc40g8ggs08ckswc4kw'
4
- redirect_uri : "http://local.blogvio.com/connect/blogvio.html"
5
-
6
- ###
7
- Runs a callback with the API disabled
8
-
9
- This allows changes to models without triggering persist
10
- ###
11
- disable : (callback) ->
12
- if @enabled
13
- @enabled = false
14
- try
15
- do callback
16
- catch e
17
- throw e
18
- finally
19
- @enabled = true
20
- else
21
- do callback
22
-
23
- module.exports = Api
@@ -1,89 +0,0 @@
1
- Api = require './index'
2
- stringify = Widgetic.JSON.stringify
3
- Helper = window.require 'spine/utils/helper'
4
- url = (object,id=true)->
5
- u=(object.className or object.constructor.className).toLowerCase()+'s'
6
- if id and object.id and (not /^c\-[\d]+/.test object.id)
7
- u+='/'+ encodeURIComponent(object.id)
8
- u
9
- class Base
10
- request: ->
11
- if Api.enabled
12
- return Widgetic.api.apply(Widgetic, arguments)
13
-
14
- def = Widgetic.Aye.defer()
15
- def.reject('Widgetic API is disabled.')
16
- return def.promise
17
-
18
- class Singleton extends Base
19
- constructor: (@record) ->
20
- @model = @record.constructor
21
-
22
- reload: (options) ->
23
- @request(url(@record)).then(@recordResponse(options),@failedReload(options))
24
-
25
- create: (options) ->
26
- @request(url(@record,false),'POST',stringify(@record)).then(@recordResponse(options), @failedWithData(options))
27
-
28
- update: (options) ->
29
- isNew = /^c\-[\d]+/.test @record.id
30
- @request(url(@record,not isNew),(if isNew then 'POST' else 'PUT'),stringify(@record)).then(@recordResponse(options), @failedWithData(options))
31
-
32
- destroy: (options) ->
33
- @request(url(@record),'DELETE').then(@recordResponse(options), @failedWithData(options))
34
-
35
- # Private
36
- recordResponse: (options = {}) =>
37
- (data) =>
38
- if (data = if (blank = Helper.isBlank(data)) then false else @model.fromJSON(data))
39
- Api.disable =>
40
- @record.changeID(data.id) if data.id and @record.id isnt data.id
41
- @record.updateAttributes {id: data.id}, fromApi:true
42
-
43
- @record.trigger('apiSuccess', data)
44
- options.done?.apply(@record, arguments)
45
- return @record
46
-
47
- failedWithData:(options={})=>
48
- (error) =>
49
- @record.trigger('apiError', error)
50
- options.fail?.apply(@record, arguments)
51
- throw error
52
-
53
- class Collection extends Base
54
- constructor: (@model) ->
55
-
56
- find: (id, params = {}) ->
57
- @request(url(new @model(id: id)), null, params).then(@recordsResponse, @failResponse)
58
-
59
- all: (params = {}) ->
60
- @request(url(@model), false, params).then(@recordsResponse, @failResponse)
61
-
62
- fetch: (params = {}, options = {}) ->
63
- delete params.id if id = params.id
64
- (if id then @find(id, params) else @all(params)).then((record) => @model.refresh(record, options))
65
-
66
- # Private
67
- recordsResponse : (data) =>
68
- @model.trigger 'apiSuccess'
69
- return data
70
-
71
- failResponse : (error) =>
72
- @model.trigger 'apiError', null, error
73
- throw new Error(error.message)
74
-
75
- Include = {ajax: -> new Singleton(@)}
76
- Extend = {ajax: -> new Collection(@)}
77
-
78
- Mixin =
79
- extended: ->
80
- @extend Extend
81
- @include Include
82
-
83
- # Private
84
- ajaxFetch: ->@ajax().fetch(arguments...)
85
- ajaxChange: (record, type, options = {}) ->
86
- return if options.ajax is false
87
- record.ajax()[type](options)
88
-
89
- module.exports = Mixin
@@ -1,38 +0,0 @@
1
- FileController = require './file'
2
- class AudioController extends FileController
3
- className:'browser-audio'
4
- events:
5
- 'click .browser-entry-info':'togglePlay'
6
-
7
- constructor:->
8
- super
9
- @deflt={volume:100,onpause:@status,onstop:@status,onresume:@status,onfinish:@status,onplay:@status,fromController:'browser-audio'}
10
-
11
- status : =>
12
- return unless @sound
13
- @el.toggleClass 'playing',!@sound.paused and @sound.playState is 1
14
-
15
- togglePlay:->
16
- @el.toggleClass 'loading', !@sound
17
- withurl = (url)=>
18
- @item.url = url
19
- @sound = soundManager.createSound($.extend {url}, @deflt) or null
20
- @togglePlay()
21
- if @sound
22
- unless @el.is('.playing')
23
- sound.stop().setPosition(0) for id, sound of soundManager.sounds when sound.instanceOptions.fromController is 'browser-audio' and sound.id isnt @sound.id
24
- @sound.togglePause()
25
- # if @
26
- else
27
- @$trigger 'getURL', withurl
28
-
29
- release:->
30
- try
31
- @sound.destruct()
32
- @sound = null
33
- super
34
-
35
- refresh: =>
36
- @sound?.pause()
37
-
38
- module.exports = AudioController
@@ -1,16 +0,0 @@
1
- FolderController = require './folder'
2
- class ButtonController extends FolderController
3
- className: 'browser-entry browser-folder'
4
- events:'click':'click'
5
-
6
- constructor: ->
7
- super
8
- @el.addClass className if (className = @item.className)?
9
-
10
- update: ->
11
- @el.attr 'data-count', 0
12
-
13
- click: ->
14
- @item.trigger 'select'
15
-
16
- module.exports = ButtonController
@@ -1,35 +0,0 @@
1
- EntryController = require './index'
2
- Activateable = window.require 'spine/controller/activateable'
3
- class FileController extends EntryController
4
- className: 'browser-entry'
5
-
6
- @include Activateable
7
-
8
- events:
9
- 'click .browser-entry-prew':'toggle'
10
-
11
- constructor: ->
12
- super
13
- @update({@selected})
14
- @activate() if @selected
15
- @listenTo @item, 'refresh', @refresh
16
- @refresh()
17
-
18
- update:(opts={})->
19
- @el.toggleClass('active',opts.selected)
20
-
21
- toggle: ->
22
- return if !@isActive() and @item.onActivate? and !@item.onActivate?()
23
- if @isActive() then @deactivate() else @active()
24
-
25
- getPreviewURL: => @getPreview @item if @item
26
-
27
- refresh: =>
28
- if @item.isPrivate
29
- @el.addClass 'private-entry'
30
- @el.attr 'data-tooltip-text', 'To use this item, make it public.'
31
- else
32
- @el.removeClass 'private-entry',
33
- @el.removeAttr 'data-tooltip-text'
34
-
35
- module.exports = FileController
@@ -1,14 +0,0 @@
1
- EntryController = require './index'
2
- class FolderController extends EntryController
3
- className: 'browser-folder'
4
- events:'click':'click'
5
-
6
- constructor:->
7
- super
8
- @update({@count})
9
-
10
- update:(opts={})->@el.attr 'data-count', opts.count or 0
11
-
12
- click : ->@trigger 'select', @item
13
-
14
- module.exports = FolderController
@@ -1,24 +0,0 @@
1
- FileController = require './file'
2
-
3
- class ImageController extends FileController
4
- className: 'browser-image'
5
- img: -> $('<span class="browser-image-prew_img"></span>').css
6
- background:"url(#{@previewUrl()}) center center no-repeat"
7
- opacity: 1
8
-
9
- show: =>
10
- super
11
- @appendPreview()
12
- # @preview.attr 'data-tooltip-image', @previewUrl()
13
-
14
- appendPreview: =>
15
- (not @_previewUrl) and @preview.append @img()
16
-
17
- saveURL: (@_previewUrl) => @appendPreview()
18
-
19
- url: => @getURL? @item, @saveURL
20
-
21
- previewUrl: =>
22
- (@_previewUrl or= @getPreviewURL? @item) or @url()
23
-
24
- module.exports = ImageController
@@ -1,18 +0,0 @@
1
- Controller = window.require 'spine/controller'
2
-
3
- class EntryController extends Controller
4
- tag: 'span'
5
- className: 'browser-entry'
6
- constructor:->
7
- super
8
- # remove the extension from item's title
9
- itemTitle = @item.name?.replace(/\.[a-zA-Z]{3,4}$/, '') or 'No Title'
10
-
11
- @preview = $('<div class="browser-entry-prew"><span class="browser-entry-icon"></span></div>')
12
- @info = $('<div class="browser-entry-info">'+(itemTitle)+'</div>')
13
- @el.append @preview, @info
14
-
15
- show: =>
16
- @item.onShow?()
17
-
18
- module.exports = EntryController
@@ -1,5 +0,0 @@
1
- FileController = require './file'
2
- class RssEntryController extends FileController
3
- className:'browser-rss'
4
-
5
- module.exports = RssEntryController
@@ -1,4 +0,0 @@
1
- FileController = require './file'
2
- class VideoController extends FileController
3
- className:'browser-video'
4
- module.exports = VideoController
@@ -1,289 +0,0 @@
1
- Controller = window.require 'spine/controller'
2
- Activateable = window.require 'spine/controller/activateable'
3
- Container = window.require 'spine/controller/container'
4
-
5
- Scrollable = require '../../core/controller/scrollable'
6
- Lazyloader = require '../../core/controller/lazyload'
7
-
8
- Entry = require './entry'
9
- NavBar = require './navbar'
10
-
11
- Intent = (options) ->
12
- content = ""
13
- if options.colors or options.icon or options.connectButton
14
- content = """
15
- <div class=\"before\" style=\"background: #{options.colors.dark} url('#{options.icon}')\"></div><!--
16
- --><div class=\"after\" style=\"background: #{options.colors.light}\">#{options.connectButton.label}</div>
17
- """
18
-
19
- """
20
- <div class=\"browser-login\">
21
- <div class=\"browser-login-cont\">
22
- <div class=\"browser-login-message\">add content from your account</div>
23
- <div class=\"browser-login-button\" data-content=\"#{!!content}\">#{content}</div>
24
- </div>
25
- </div>"
26
- """
27
-
28
- Controllers =
29
- folder: require './entry/folder'
30
- button: require './entry/button'
31
- image : require './entry/image'
32
- audio : require './entry/audio'
33
- video : require './entry/video'
34
- rss : require './entry/rss'
35
-
36
- class Browser extends Controller
37
- className: 'browser'
38
-
39
- @include Container
40
- @include Activateable
41
- @include Scrollable
42
- @include Lazyloader
43
-
44
- scrollOptions: {}
45
-
46
- events:
47
- 'click .browser-login-button': 'auth'
48
-
49
- constructor: ->
50
- super
51
- # console.log("Default Browser CTR:", @Service, @title, @options)
52
- @service = new @Service @title, @options
53
- @serviceTitle or= @service.title
54
-
55
- # show how many content items the user has selected on this source
56
- @currentContent = []
57
- # @delay => @tab.count @content.length
58
-
59
-
60
- @addNavBar()
61
- @intent = $ Intent @service.options
62
- @el.addClass @title
63
- @el.attr 'data-filetype', @options.types[0]
64
-
65
- @on('activate', @auth).listenTo @service, 'auth', @onAuth
66
- @listenTo @nav, 'select', @setFolder
67
- @listenTo @nav, 'logout', @onLogout
68
- @listenTo @service, 'refresh', @onFolderRefresh
69
- @listenTo @service, 'auth-req', @_requestAuth
70
- @$bind 'getURL', (e, callback) => @service.getURL $(e.target).controller().item, callback
71
-
72
- addNavBar: ->
73
- @nav = new NavBar disconnectBtn: !@service.hideDisconnectBtn
74
-
75
- active: ->
76
- Activateable.active.apply @, arguments
77
- @scrollOptions.documentContext = @el.get(0).ownerDocument
78
- @scroll()
79
- @el.append @nav.el, @intent
80
- @el.append @service.faqLink if @service.faqLink?
81
- @refreshChildren()
82
- @delay =>
83
- @$trigger "editor:browser:active", service: @Service.name, authenticated: (@authenticated is true and @nav.el.is ':visible')
84
-
85
- deactivate: =>
86
- Activateable.deactivate.apply @, arguments
87
- @refreshChildren()
88
-
89
- ###
90
- Auth request and event handler
91
- ###
92
- auth: (e) ->
93
- # console.log("Default browser auth:", e)
94
- return if String(@el.attr 'authenticated') is 'true'
95
- @service.auth e?.type is 'click'
96
-
97
- onAuth: (@authenticated) =>
98
- # console.log("Default browser onAuth:", @authenticated)
99
- # reset lists of content
100
- @currentContent = []
101
-
102
- # show currentSource count
103
- if @authenticated then @updateCurrentCount()
104
- # clear current content count
105
- else
106
- @tab.count 0
107
-
108
- @el.attr {@authenticated}
109
- @setFolder @service.root if @authenticated
110
- @$trigger "editor:browser:auth", service: @Service.name, authenticated: (@authenticated is true)
111
-
112
- onLogout: =>
113
- @service.deauth()
114
- @refreshChildren()
115
- @currentFolder = null
116
-
117
- ###
118
- Folder loading
119
- ###
120
- setFolder: (entry) =>
121
- isSameFolder = @currentFolder?.path is entry.path
122
- @nav.addItem entry unless isSameFolder
123
- entry.children = []
124
- @currentFolder = entry
125
-
126
- @empty().$addClass 'loading'
127
- @service.refresh entry
128
- @
129
-
130
- refreshChildren: =>
131
- @children (child) -> child.refresh?()
132
-
133
- refresh: ->
134
- return if @refreshing
135
- @refreshing = true
136
- @setFolder(@currentFolder) if @currentFolder
137
-
138
- # update the current authenticated user's selected items count
139
- updateCurrentCount: =>
140
- # console.log("Update count:", @content, @currentContent)
141
- @tab.count @content.filter((a) => @currentContent.some((b) => a.id == b.id)).length
142
-
143
- onFolderRefresh: (children, opts = {}) =>
144
- # console.log("onFolderRefresh:", children, opts.root)
145
-
146
- # on first root folder refresh: get entire list of content update selected items count
147
- if opts.root
148
- # console.log("onFolderRefresh update count:", children, opts.root, @service)
149
-
150
- # reset lists of content
151
- rootChildren = []
152
- subfoldersChildren = []
153
-
154
- # create the list of "root subfolders files" and the list of "root files"
155
- children.map((child) =>
156
- if child.type == "folder" then subfoldersChildren = subfoldersChildren.concat(child.children.map((subChild) => @service.newEntry('audio', subChild, child.id)))
157
- else rootChildren.push(child)
158
- )
159
- # console.log("on Root refresh:", rootChildren, subfoldersChildren)
160
-
161
- # if loading subfolders children for the first time
162
- if subfoldersChildren.length && !@currentContent.length
163
- # console.log("LOAD SUBFOLDERS FILES!")
164
- @currentContent = @currentContent.concat(subfoldersChildren)
165
-
166
- # if loading files children: filter those that are already in currentContent(that are subfoldersFiles)
167
- if rootChildren.length
168
- # console.log("LOAD ROOT FILES:", rootChildren)
169
- children = rootChildren = rootChildren.filter((child) => !@currentContent.some((subChild) => subChild.id == child.id));
170
- @currentContent = @currentContent.concat(rootChildren)
171
-
172
- # console.log("on Root refresh:", @content, @currentContent);
173
-
174
- # show currentSource count
175
- @updateCurrentCount()
176
-
177
- # clear empty children in current folder
178
- if opts.hard then @empty().$addClass 'loading'
179
-
180
- # turn refreshing off
181
- @refreshing = false
182
-
183
- # hide loader
184
- @$removeClass('loading')
185
-
186
- # save the new children in current folder's array
187
- @currentFolder.children = @currentFolder.children.concat children
188
- # children = @children()
189
-
190
- # show no item icon if no children
191
- @el.toggleClass 'no-items', !children.length and !@children().length
192
-
193
- # append the new children when they are not hidden to the browser canvas
194
- for item in children when not /^\.[^\.]/.test item.name
195
- # prepare options
196
- opts=
197
- item : item
198
- getPreview : (item) => @service.preview item
199
- getURL : (item, _c) => @service.getURL item, _c
200
- count : @getContentItemsInFolder(item) if isFolder = item.type is 'folder'
201
- selected : !!@content.filter((i)-> i.path is item.path).length unless isFolder
202
- # create controller
203
- controller = new Controllers[item.type] opts
204
- @append controller
205
- @listenTo controller, 'select', @setFolder if item.type is 'folder'
206
-
207
- # children.forEach (child) -> child.release()
208
-
209
- # update scroll and start lazy load
210
- @scroll().update()
211
- @lazyLoad()
212
-
213
-
214
- ###
215
- Livecycle and activation
216
- ###
217
- afterAdd: (child) ->
218
- Container.afterAdd.call @, child
219
- @listenTo child, 'active', @_active
220
- @listenTo child, 'activate', @_activate
221
- @listenTo child, 'deactivate', @_deactivate
222
- child
223
-
224
- _active: (child, options={}) =>
225
- @trigger 'canAdd', -> child.activate options
226
-
227
- # TODO: check if this is release properly
228
- _release: =>
229
- child = Container._release.apply @, arguments
230
- @stopListening child
231
- child
232
-
233
- _activate: (child,options) =>
234
- @addEntry item = child.item
235
- item.service = @title
236
- item.active = true
237
- item.getURLPromise = @service.getURL item, do (stat = ++item.stat)=> (url)=>
238
- return unless item.active and item.stat is stat
239
- item.url = url
240
- @trigger 'add', item
241
-
242
- _deactivate: (child,options) =>
243
- child.item.active = false
244
- @removeEntry child.item
245
- @trigger 'remove', child.item
246
-
247
- empty: ->
248
- child.release() for child in @children()
249
- @scroll().update()
250
- @
251
-
252
- addEntry: (item) ->
253
- itm = it for it in @content when it.path is item.path
254
- return if @content.indexOf(itm) isnt -1
255
- @content.push item
256
- # show currentSource count
257
- @updateCurrentCount()
258
-
259
- removeEntry: (item) ->
260
- itm = it for it in @content when it.path is item.path
261
- @content.splice @content.indexOf(itm), 1
262
- # show currentSource count
263
- @updateCurrentCount()
264
-
265
- for child in @children() when child.item.type in ['folder', 'button'] or child.isActive?()
266
- child.update @getOptions child.item
267
-
268
- recount: ->
269
- # console.log("Default Browser recount:", @children())
270
- child.update @getOptions child.item for child in @children()
271
-
272
- getOptions: (item) =>
273
- count: @content.filter((i)-> !i.path.indexOf item.path ).length if isFolder = item.type is 'folder'
274
- selected: !!@content.filter((i)-> i.path is item.path).length unless isFolder
275
-
276
- whileScrolling: => @lazyLoad()
277
-
278
- getContentItemsInFolder: (folder) =>
279
- folderPath = folder.path.toLowerCase() + '/'
280
-
281
- @content.filter (i)->
282
- contentPath = i.path.toLowerCase()
283
- return contentPath.indexOf(folderPath) is 0
284
- .length
285
-
286
- _requestAuth: (opts) =>
287
- @$trigger 'content:auth-req', opts
288
-
289
- module.exports = Browser
@@ -1,129 +0,0 @@
1
- Controller = window.require 'spine/controller'
2
- Activateable = window.require 'spine/controller/activateable'
3
- Container = window.require 'spine/controller/container'
4
-
5
- LoginIntent = ->
6
- """
7
- <div class=\"browser-login\">
8
- <div class=\"browser-login-cont\">
9
- <div class=\"browser-login-message\">add content from your account</div>
10
- <div class=\"browser-login-button\"></div>
11
- </div>
12
- </div>"
13
- """
14
-
15
- LogoutIntent = (options = {}) ->
16
- """
17
- <div class=\"browser-intent-logout\">
18
- <div class=\"browser-login-cont\">
19
- <!-- <img width="100" height="100" src="#{options.profile_picture}"/> -->
20
- <div class=\"browser-login-message\">You are connected as <strong style="font-size: 21px;">#{options.username}</strong></div>
21
- <div class=\"browser-login-button browser-logout-button\"></div>
22
- </div>
23
- </div>"
24
- """
25
-
26
- class InstagramBrowser extends Controller
27
- className: 'browser instagram-browser'
28
-
29
- @include Container
30
- @include Activateable
31
-
32
- events:
33
- 'click .browser-login-button': 'auth'
34
- 'click .browser-logout-button': 'onLogout'
35
-
36
- constructor: ->
37
- super
38
- @service = new @Service @title, @options
39
- @serviceTitle or= @service.title
40
-
41
- @delay => @tab.count @content.length
42
-
43
- @loginIntent = $ LoginIntent()
44
- @logoutIntent = $ LogoutIntent()
45
-
46
- @el.addClass @title
47
-
48
- @listenTo @service, 'auth', @onAuth
49
-
50
- # if there exists content created using this service,
51
- # use the first one as the connected account
52
- # (there should be only one, but just in case)
53
- @authenticated = !!@content.length
54
- console.log("Editor Instagram Browser @authenticated:", @authenticated, @content[0]);
55
- @el.attr {@authenticated}
56
- if @authenticated
57
- @connectedAccount = @content[0]
58
- # the content metadata stores the SHA256 hash of the user's Instagram token
59
- @service.getUser(@connectedAccount.token)
60
- .then((user) =>
61
- console.log("Editor Instagram Browser CT getUser result:", user)
62
- if(user.error)
63
- # console.log("Editor Browser get inst user result:", user)
64
- # @onAuth(false);
65
- this._updateLogoutIntent(@connectedAccount)
66
- else
67
- this._updateLogoutIntent(user)
68
- )
69
- .catch((err) => console.log("Editor Browser getUser err:", err))
70
-
71
- active: ->
72
- Activateable.active.apply @, arguments
73
- @el.append @loginIntent, @logoutIntent
74
-
75
- @delay =>
76
- @$trigger "editor:browser:active", service: @Service.name, @authenticated
77
-
78
- deactivate: =>
79
- Activateable.deactivate.apply @, arguments
80
-
81
- auth: (e) ->
82
- console.log("Editor Instagram Browser auth handler:", e, @authenticated);
83
- return if @authenticated
84
- @service.auth( e?.type is 'click')
85
- true
86
-
87
- onAuth: (@authenticated) =>
88
- console.log("Editor Instagram Browser onAuth:", @authenticated, @service.user)
89
- @el.attr {@authenticated}
90
- @$trigger "editor:browser:auth", service: @Service.name, @authenticated
91
- return unless @authenticated
92
- @_updateLogoutIntent(@service.user)
93
-
94
- item = {}
95
- item.service = @title
96
- item.token = @service.getToken()
97
- item.path = Math.random().toString()
98
- item.active = true
99
- item.type = 'user_id'
100
- item.id = @service.user.id
101
- item.url = 'Instagram User: @' + @service.user.username
102
- item.username = @service.user.username
103
- @connectedAccount = item
104
- @trigger 'add', item
105
-
106
- # called after 'add' event is processed by content panel
107
- addEntry: (entry) ->
108
- return if @content.indexOf(entry) isnt -1
109
- @tab.count @content.push entry
110
-
111
- onLogout: =>
112
- if @connectedAccount
113
- @trigger 'remove', @connectedAccount
114
- @removeEntry @connectedAccount
115
-
116
- @service.deauth()
117
-
118
- removeEntry: (entry) ->
119
- if @content.indexOf(entry) >= 0
120
- @content.splice @content.indexOf(entry), 1
121
- @tab.count @content.length
122
-
123
- _updateLogoutIntent: (user) ->
124
- # console.log("update logout intent:", user)
125
- @logoutIntent.remove()
126
- @logoutIntent = $ LogoutIntent user
127
- @el.append @logoutIntent
128
-
129
- module.exports = InstagramBrowser