1 | export default function sharedUiFactory() {
|
2 |
|
3 |
|
4 | return {
|
5 | init: function($scope, componentAliases) {
|
6 | var service = {};
|
7 | var app = $scope.app;
|
8 | if ($scope.page) {
|
9 |
|
10 | service.route = $scope.page.route;
|
11 | }
|
12 | $scope.sharedUi = service;
|
13 | service.addComponent = function(alias, componentKey) {
|
14 | service[alias] = {
|
15 | setState: function(active, available, data) {
|
16 | app.setSharedUiComponentState($scope, componentKey, active, available, data);
|
17 | },
|
18 | enable: function(data) {
|
19 | app.setSharedUiComponentState($scope, componentKey, undefined, true, data);
|
20 | },
|
21 | disable: function() {
|
22 | app.setSharedUiComponentState($scope, componentKey, false, false, undefined);
|
23 | },
|
24 | show: function(data) {
|
25 | app.setSharedUiComponentState($scope, componentKey, true, true, data);
|
26 | },
|
27 | hide: function(disable) {
|
28 | app.setSharedUiComponentState($scope, componentKey, false, !disable, undefined);
|
29 | },
|
30 | replaceData: function(data) {
|
31 | app.setSharedUiComponentState($scope, componentKey, undefined, undefined, data);
|
32 | },
|
33 | extendData: function(update) {
|
34 | var state = app.getSharedUiComponentState($scope, componentKey);
|
35 | var newData = angular.extend(state.data || {}, update);
|
36 | app.setSharedUiComponentState($scope, componentKey, state.active, state.available, newData);
|
37 | },
|
38 | updateState: function(fn) {
|
39 | var state = app.getSharedUiComponentState($scope, componentKey);
|
40 | fn(state);
|
41 | app.setSharedUiComponentState($scope, componentKey, state.active, state.available, state.data);
|
42 | }
|
43 |
|
44 | };
|
45 | };
|
46 |
|
47 | for (let alias in componentAliases) {
|
48 | service.addComponent(alias, componentAliases[alias]);
|
49 | }
|
50 | return service;
|
51 | }
|
52 | };
|
53 | } |
\ | No newline at end of file |