@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,163 +0,0 @@
1
- Service = require '../../../browser/model'
2
- Entry = require '../../../browser/model/entry'
3
-
4
- # SoundCloud config
5
- widgetic_backend_url = 'https://widgetic.com/wservices/soundcloud/'
6
- SC = require('soundcloud')
7
- config = {
8
- api_url: 'https://api.soundcloud.com'
9
- # for '/connect' endpoint
10
- client_id : 'aed0aa63baf747a83ad0b6b246acddca'
11
- # client_secret: '3173e3098379153d42084aba06fe3ec4',
12
- redirect_uri: 'https://widgetic.com/connect/soundcloud',
13
- tracks_url: widgetic_backend_url + 'tracks/',
14
- # response_type: 'code',
15
-
16
- # for '/oauth2/token' endpoint
17
- grant_type: 'refresh_token',
18
- }
19
- SC.initialize(config);
20
-
21
- # add local config options used in this file only
22
- SC.client_id = config.client_id
23
- SC.api_url = config.api_url
24
- SC.tracks_url = config.tracks_url
25
- try SC.auth_token = localStorage.getItem 'soundcloudAuthToken'
26
- try SC.userId = localStorage.getItem 'soundcloudUserId'
27
-
28
- class SoundCloudService extends Service
29
- constructor: ->
30
- super
31
- # console.log('Soundcloud Service CTR:', @title, @options)
32
-
33
- SCGet: (path) ->
34
- url = "#{SC.api_url}" + path
35
- # console.log("SCGet path:", path, SC.auth_token)
36
- $.ajax(url: url, type: 'GET', dataType: 'json', headers: {'Authorization': 'OAuth ' + SC.auth_token})
37
-
38
- auth: (interactive) =>
39
- # console.log("SoundCloud on auth:", SC.auth_token, SC.userId);
40
-
41
- # show popup to authenticate
42
- if !SC.userId and interactive then @showAuthPopup()
43
-
44
- # trigger auth event to show folders or connect button in browser
45
- else @checkAuth()
46
-
47
- showAuthPopup: ->
48
- # console.log("SC showAuthPopup:", SC)
49
- SC.connect()
50
- .then((response) =>
51
- # console.log("SC did connect:", response);
52
- # get auth_token
53
- SC.auth_token = response.oauth_token
54
- try localStorage.setItem 'soundcloudAuthToken', SC.auth_token
55
- # console.log("SC did connect:", SC);
56
-
57
- # get user info
58
- @SCGet("/me")
59
- .then((response) =>
60
- # console.log("SC getUser result:", response)
61
- SC.userId = response.id
62
- try localStorage.setItem 'soundcloudUserId', SC.userId
63
- @checkAuth();
64
- ).catch (error) =>
65
- console.log("Editor getUser error:", error)
66
- @deauth()
67
- ).catch (error) =>
68
- console.log 'SC Connect Error: ' + error.message
69
- @deauth()
70
-
71
- checkAuth: =>
72
- # console.log 'checkAuth:', SC.userId
73
- @trigger 'auth', SC.userId != null
74
-
75
- deauth: ->
76
- # remove auth_token
77
- SC.auth_token = null
78
- try localStorage.removeItem 'soundcloudAuthToken'
79
-
80
- # remove user
81
- SC.userId = null
82
- try localStorage.removeItem 'soundcloudUserId'
83
-
84
- # trigger auth event
85
- @checkAuth();
86
-
87
- # SoundCloud Files explorer methods
88
- refresh: (@currentFolder) ->
89
- # console.log("Soundcloud service refresh:", @currentFolder)
90
- # if root folder: load subfolders(playlists) and then files
91
- if @currentFolder.root then @fetchPlaylists()
92
-
93
- # if subfolder: load files(tracks) inside
94
- else @fetchTracks @currentFolder.id
95
-
96
- fetchPlaylists: =>
97
- # console.log("fetchPlaylists!");
98
- @SCGet("/users/#{SC.userId}/playlists")
99
- .then((playlists) =>
100
- # console.log("fetchPlaylists result:", playlists);
101
-
102
- # trigger refresh event to show in browser the playlists folders
103
- @trigger 'refresh', (playlists.map @newEntry.bind @, 'folder'), {root: true}
104
-
105
- # load tracks of root folder
106
- @fetchTracks @currentFolder.id
107
- ).catch (error) =>
108
- console.log 'Fetch Playlist error: ' + error.message
109
-
110
- fetchTracks: (playlistId) =>
111
- # console.log("fetchTracks for playlist:", playlistId)
112
- # check if a playlist or entire list of tracks of the current user
113
- path = if playlistId then "/playlists/#{playlistId}" else "/users/#{SC.userId}/tracks"
114
- path += "?access=playable"
115
-
116
-
117
- @SCGet(path)
118
- .then((result) =>
119
- # console.log("fetchTracks result:", result)
120
-
121
- # if root then read directly the tracks
122
- tracks = result
123
-
124
- # if a playlist then get the tracks inside
125
- if result.tracks then tracks = result.tracks
126
-
127
- # trigger event to refresh in browser
128
- @trigger 'refresh', (tracks.map((track) => @newEntry('audio', track))), {root: (if playlistId then false else true)}
129
- ).catch (error) =>
130
- console.log 'Fetch Tracks error: ' + error.message
131
-
132
- newEntry: (type, item, parentId) =>
133
- # console.log("newEntry:", type, item, parentId)
134
- if !parentId
135
- path = @currentFolder.path
136
- path += '/' unless @currentFolder.root
137
- else path = parentId + '/'
138
- path += item.id
139
- # console.log("newEntry:", path, item.id, type)
140
- if type == "folder" then children = item.tracks
141
- {artwork_url, id, duration, title, stream_url} = item
142
- new Entry $.extend {}, {
143
- service: @
144
- type, path, artwork_url, id, children, duration: duration/1000, title, stream_url
145
- name: item.title
146
- }
147
-
148
- getURL: (entry, callback) ->
149
- # old method
150
- # callback "#{entry.stream_url}?client_id=#{SC.client_id}"
151
-
152
- # new 2021 api track path through widgetic endpoint
153
- callback "#{SC.tracks_url}?id=#{entry.id}&atoken=#{SC.auth_token}"
154
-
155
- # new 2021 api get method
156
- # @SCGet("/tracks/#{entry.id}/streams")
157
- # .done((streams) =>
158
- # console.log("fetchTrackStreams result:", streams);
159
- # # callback streams.http_mp3_128_url
160
- # ).fail (error) =>
161
- # console.log 'Fetch Track Streams error: ' + error
162
-
163
- module.exports = SoundCloudService
@@ -1,27 +0,0 @@
1
- Activateable = window.require 'spine/controller/activateable'
2
- Controller = window.require 'spine/controller/index'
3
-
4
- ###
5
- The tab class used to render a service tab.
6
- ###
7
- class ServiceTab extends Controller
8
- className : 'browser-tab'
9
- events : 'click':'active'
10
- @include Activateable
11
-
12
- constructor: ->
13
- super
14
- panelTitle = if @panel.serviceTitle? then @panel.serviceTitle else @panel.title
15
- panelTitle = panelTitle[0].toUpperCase() + panelTitle.slice 1
16
-
17
- @el.append(@len = $ '<div data-count="0"></div>')
18
- .addClass( @panel.title )
19
- # Show the service's capitalized title in a tooltip
20
- .attr 'data-tooltip-text': panelTitle, 'data-tooltip-position':'right center'
21
-
22
- if panelIcon = @panel.options.icon
23
- @el.append "<div class=\"browser-tab--icon\" style=\"background-image: url('#{panelIcon}')\"></div>"
24
-
25
- count: (i) -> @len.attr 'data-count', i
26
-
27
- module.exports = ServiceTab
@@ -1,11 +0,0 @@
1
- Controller = window.require 'spine/controller'
2
- Attributes = require '../item/attributes'
3
-
4
- class AttributesPanel extends Controller
5
- constructor: ->
6
- super
7
-
8
- @attributes = new Attributes {@options, @item, isEditable: -> true}
9
- @el.append @attributes.el
10
-
11
- module.exports = AttributesPanel
@@ -1,86 +0,0 @@
1
- Controller = window.require 'spine/controller'
2
- Content = window.require 'core/models/content'
3
- AttributesPanel = require './attributes-panel'
4
-
5
- class BulkEditor extends Controller
6
- className: 'details_bulk-editor activateable'
7
-
8
- elements:
9
- '.item-details': 'attributesEl'
10
-
11
- events:
12
- 'click .item-toggle': 'toggle'
13
-
14
- _isActive: false
15
-
16
- template: ->
17
- """
18
- <div class="bulk-editor-header">
19
- <div class="bulk-editor-title">#{@options.title}</div>
20
- <div class='item-details-right'>
21
- #{
22
- if @options.help_text
23
- '<div class="control-help" data-tooltip-text="'+@options.help_text+'"></div>'
24
- else ''
25
- }
26
- <div class="item-toggle multi-tabs-toggle" data-icon="❯">
27
- <span data-icon="❯"></span>
28
- </div>
29
- </div>
30
- </div>
31
- <div class="item-details"></div>
32
- """
33
-
34
- toggle: =>
35
- # @attrPanel?.attributes.update()
36
- @_isActive = !@_isActive
37
- @trigger 'toggle', @_isActive
38
- @el.toggleClass 'active', @_isActive
39
- @attributesEl.css
40
- 'margin-bottom': if @_isActive then 0 else -@attributesElHeight
41
-
42
- for: (@composition) =>
43
- return @el.addClass('empty') unless @composition.contentMeta().bulkEditor?
44
-
45
- @item = @composition.bulkContent()
46
-
47
- @item.bind 'change', @_change
48
- @listenTo Content, 'create', @onItemAdded
49
- @listenTo Content, 'change', @onItemChange
50
- @initialize @composition.contentMeta()
51
-
52
- initialize: (contentMeta) =>
53
- @options = contentMeta.bulkEditor
54
- @render()
55
-
56
- @numAttributes = @options.attributes.length
57
- @el.toggleClass('single-attribute', @numAttributes is 1)
58
-
59
- for attr in @options.attributes
60
- (@attributes or= {})[attr] = contentMeta.attributes[attr]
61
-
62
- @attrPanel = new AttributesPanel {options: @attributes, @item, el: @attributesEl}
63
- @attributesElHeight = @attributesEl.outerHeight()
64
-
65
- _change: (item, evType, options)=>
66
- return if (attr = options.attribute) is 'metadata'
67
- @composition.getContent().forEach (c) =>
68
- return if c.id is @item.id or c.editedMeta attr
69
- c.attrMeta attr, false
70
- c.updateAttribute attr, @item[attr], attribute: attr, from: @
71
-
72
- onItemAdded: (item) =>
73
- return unless item.composition_id is @composition.id
74
- @updateItemAttributes Content.find item.id
75
-
76
- updateItemAttributes: (item) =>
77
- return unless item.composition_id is @composition.id
78
- for attr, _ of @attributes when !item.editedMeta(attr) and item[attr] isnt @item[attr]
79
- item.attrMeta attr, false, silent: true
80
- item.updateAttribute attr, @item[attr], attribute: attr, from: @
81
-
82
- onItemChange: (item, evType, options) =>
83
- return if options.attribute isnt 'metadata' or options.silent
84
- @updateItemAttributes c for c in @composition.getContent() when c.id is item.id
85
-
86
- module.exports = BulkEditor
@@ -1,156 +0,0 @@
1
-
2
-
3
- Activator = window.require 'spine/controller/activator'
4
- Activateable = window.require 'spine/controller/activateable'
5
- Scrollable = require '../../core/controller/scrollable'
6
-
7
- Item = require './item'
8
- Content = window.require 'core/models/content'
9
-
10
- BulkEditor = require './bulk-editor'
11
-
12
- ###
13
- Details text
14
- ###
15
- class Details extends Activator
16
- className : 'editor-content'
17
- autoDeactivate : false
18
- title : 'Details'
19
- nextTitle : 'Edit Details'
20
- interval : 0
21
- vh : 0
22
- eof : 0
23
-
24
- @include Activateable
25
- @include Scrollable
26
-
27
- constructor: ->
28
- super
29
- @scroll()
30
- @container.sortable
31
- itemSelector: ".item-details"
32
- handle: ".item-details-order"
33
- onDragStart: @onDragStart
34
- onDrop: @onDrop
35
- onDrag: @onDrag
36
-
37
- @bulkEditor = new BulkEditor()
38
- @bulkEditor.toggle()
39
- @bulkEditor.bind 'toggle', (open) =>
40
- setTimeout (=> @scroll().update()), 500
41
-
42
- # TODO: review usage
43
- @items = []
44
-
45
- for: (@composition) ->
46
- @initialize()
47
-
48
- @el.prepend @bulkEditor.el
49
- @bulkEditor.for @composition
50
-
51
- @
52
-
53
- initialize: (options) =>
54
- return console.warn 'No composition set' unless @composition
55
-
56
- @children (i) -> i.release()
57
- @stopListening()
58
- @listenTo Content, 'create', @addItem
59
-
60
- @composition.getContent().forEach @addItem
61
-
62
- @trigger 'initialized'
63
-
64
- onDragStart: (item, container, _super) =>
65
- item.controller().deactivate()
66
-
67
- _super item,container
68
-
69
- item.controller().deactivate()
70
- @scroll().update()
71
- @$item = $ item
72
-
73
- @vh = @container.parent().height()
74
- @oh = @container[0].scrollHeight
75
- @eof = @el.offset()
76
-
77
- onDrag: (item, position, _super) =>
78
- # position.top += @container.scrollTop()
79
- _super item, position
80
-
81
- offset = @$item.offset()
82
- @position = position
83
- @offset = offset
84
- @dragged = @$item
85
-
86
- top = offset.top - @eof.top < 30
87
- bottom = offset.top - @eof.top > @vh - 10
88
-
89
- unless top or bottom
90
- clearInterval @interval
91
- @interval = 0
92
- else if top
93
- @interval = setInterval @scrollTop , 10 if @interval is 0
94
- else if bottom
95
- @interval = setInterval @scrollBottom, 10 if @interval is 0
96
-
97
- onDrop: (item, container, _super) =>
98
- _super item, container
99
-
100
- item.controller().onDrop()
101
- @$item = null
102
- @_relocate()
103
- clearInterval @interval
104
- @interval = 0
105
-
106
- scrollTop: =>
107
- top = @container.scrollTop()
108
- return unless top > 0
109
- @scroll().scrollTo top - 4
110
- @dragged.css top: parseInt(@dragged.css 'top')-4
111
-
112
- scrollBottom: =>
113
- top = @container.scrollTop()
114
- return unless (elTop = parseInt @dragged.css 'top') < @oh - 4
115
- @scroll().scrollTo top + 4
116
- @dragged.css top: 4+elTop
117
-
118
- _relocate: =>
119
- @children((i) -> i.item.order isnt i.el.index()+1).forEach (i) ->
120
- i.item.updateAttribute 'order', i.el.index()+1, attribute: 'order'
121
-
122
- @scroll().update()
123
-
124
- _release: =>
125
- super
126
-
127
- setTimeout @_relocate, 100
128
- @delay =>
129
- if @isActive() and @children().length is 0
130
- @$trigger 'DetailsEditor:empty'
131
-
132
- addItem: (item) =>
133
- return unless item.composition_id is @composition.id
134
-
135
- @append i = new Item {item, meta: item.meta()}
136
- item.updateAttribute 'order', i.el.index()+1, attribute: 'order'
137
-
138
- @scroll().update()
139
- @items.push i
140
-
141
- _onActivate: =>
142
- return if @children((i) -> i.isActive()).length
143
-
144
- @children((i) -> !i.isInvalid)[0]?.activate animate: true
145
- @scroll().update()
146
-
147
- activate: =>
148
- Activateable.activate.apply @, arguments
149
- @$trigger 'viewChange', 'details'
150
- @delay @_onActivate
151
- @
152
-
153
- onScroll: =>
154
- @children (child) -> child.attributes.deactivate?()
155
-
156
- module.exports = Details
@@ -1,45 +0,0 @@
1
- Controller = window.require 'spine/controller'
2
- Container = window.require 'spine/controller/container'
3
-
4
- class Attributes extends Controller
5
- className : 'item-details-attributes'
6
- @include Container
7
-
8
- constructor: ->
9
- super
10
-
11
- @length = 0
12
- for attribute, options of @options when @isEditable options
13
- Control = window.require(options.control)
14
- # load the details controller for first attribute of type image,video or audio
15
- k = Control = window.require @det options.control if !k?
16
-
17
- control = new Control
18
- options: $.extend true, {}, options.options or {}
19
- attribute: attribute
20
- item: @item
21
- isDetailInput: true
22
- conditions: options.if
23
-
24
- @append control
25
-
26
- @el.toggleClass 'no-attributes', ++@length < 2
27
-
28
- update:=>
29
- @delay =>
30
- for child in @children()
31
- child.setItem @item
32
- det: (str) ->
33
- if (/audio|video|image/.test str) then str.replace('core/controls/', 'core/controls/details/') else str
34
-
35
- deactivate: =>
36
- @children (child) -> child.deactivate?()
37
-
38
- isEditable: (opts) ->
39
- opts.options.editable isnt false
40
-
41
- onDrop: ->
42
- @children (child) -> child.onDrop?()
43
-
44
-
45
- module.exports = Attributes
@@ -1,82 +0,0 @@
1
- Controller = window.require 'spine/controller'
2
- Container = window.require 'spine/controller/container'
3
- Activateable = window.require 'spine/controller/activateable'
4
-
5
- Attributes = require './attributes'
6
-
7
- class Item extends Controller
8
- className: 'item-details'
9
- tag:'li'
10
- @include Container
11
- @include Activateable
12
- elements:
13
- '.item-details-order': 'place'
14
- '.item-details-toggle': 'toggleButton'
15
-
16
- events:
17
- 'click .item-details-toggle': 'toggle'
18
- 'click .item-details-delete': 'destroy'
19
- 'invalid':'_onItemValidation'
20
- 'valid':'_onItemValidation'
21
-
22
- constructor: ->
23
- super
24
- @item.bind 'destroy', @release
25
- @item.bind 'change', @_change
26
-
27
- order = "<div class='item-details-order'></div>"
28
- toggle = "<div class='item-details-toggle'></div>"
29
- idel = "<div class='item-details-delete' data-icon='⏍'></div>"
30
- right = $ "<div class='item-details-right'></div>"
31
-
32
- @attributes = new Attributes {options:@meta.attributes, @item}
33
- right.append toggle, idel
34
- @append order, @attributes, right
35
-
36
- _change : (item,type,options) =>
37
- return unless options.attribute is 'order'
38
- @place.html item.order
39
-
40
- activate: (options={})->
41
- return if @attributes.length < 2 or @isInvalid
42
- Activateable.activate.apply @,[options]
43
-
44
- @animateFirstAttribute() if options.animate
45
- @attributes.update()
46
-
47
- deactivate: ->
48
- Activateable.deactivate.apply @, arguments
49
- @attributes.deactivate()
50
-
51
- toggle: =>
52
- if @isActive() then @deactivate() else @activate()
53
- @parent().scroll().update()
54
-
55
- destroy:=> @item.destroy()
56
-
57
- # triggered by the item's main attribute
58
- _onItemValidation: (e) =>
59
- @isInvalid = e.type is 'invalid' and @attributes.el.children().first().is e.target
60
- @el.toggleClass 'item-invalid', @isInvalid
61
- @deactivate() if @isInvalid
62
-
63
- # on activation, slideDown the first @attribute
64
- animateFirstAttribute: ->
65
- # get the extended height
66
- h = @el.height()
67
- # set the animation start/ default min-height
68
- @el.height @el.css 'minHeight'
69
- # activate the transitions
70
- @el.addClass('transitions').on 'transitionend webkitTransitionEnd', (e) =>
71
- return unless $(e.target).is @el
72
- # remove the transitions and update the scrollbar
73
- @el.removeAttr('style').removeClass 'transitions'
74
- @parent().scroll().update()
75
-
76
- @el.off 'transitionend webkitTransitionEnd'
77
- .height h
78
-
79
- onDrop: ->
80
- @attributes.onDrop()
81
-
82
- module.exports = Item