@flexem/fc-designer 3.0.1-alpha.98 → 3.0.1-alpha.99

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.
@@ -1,199 +1,199 @@
1
- <div class="design-view-list">
2
- <div class="screen">
3
- <div class="configTitle">
4
- <span>{{lc('Page')}}</span>
5
- <text-setting-modal #textSettingModalComponent></text-setting-modal>
6
- <text-library-setting-modal #textLibrarySettingModalComponent></text-library-setting-modal>
7
- <add-text-item-modal #addTextItemModalComponent></add-text-item-modal>
8
- <system-text-library-modal #systemTextLibraryModalComponent></system-text-library-modal>
9
- <confirm-dialog #confirmDialog (onConfirm)="onDeleteTextItemConfirm()"></confirm-dialog>
10
- </div>
11
- <div class="screenBody">
12
- <div class="view-expander">
13
- <a class="expander-button" nz-popconfirm [nzPopconfirmTitle]="lc('MaxCountTip', recommendedMaxAmount)"
14
- nzPopconfirmPlacement="rightTop" [nzCancelText]="l('Cancel')" [nzOkText]="l('Continue')"
15
- (nzOnConfirm)="createView(configureViewType.web)" (nzOnCancel)="shownTip = true" [nzCondition]="!showMaxCountTip">
16
- <i class="fcloud-addCity"></i>
17
- </a>
18
- <div data-toggle="collapse" href="#web-views" role="button" aria-controls="web-views">
19
- <i class="fa expander-icon"></i>
20
- <span class="screen-name">{{lc('Web')}}</span>
21
- </div>
22
- </div>
23
- <div id="web-views" class="collapse show">
24
- <div *ngFor="let view of webViews; let i = index" class="screen-items" [class.selected]="view.id==selectedViewId"
25
- (click)="openView(view)">
26
- <i class="screen-icon" [ngClass]="getIconClass(view)"></i>
27
- <span class="screen-name">{{view.name}}</span>
28
- <span class="more" [id]="'operation_'+view.id" (click)="showOrHideMoreSet($event)">
29
- <i class="screen-icon more-icon"></i>
30
- <div class="screen-more">
31
- <nav>
32
- <a (click)="setViewSettings(view)">{{l('Modify')}}</a>
33
- <a class="expander-button" nz-popconfirm [nzPopconfirmTitle]="lc('MaxCountTip', recommendedMaxAmount)"
34
- nzPopconfirmPlacement="rightTop" [nzCancelText]="l('Cancel')" [nzOkText]="l('Continue')"
35
- (nzOnConfirm)="copyView(view)" (nzOnCancel)="shownTip = true" [nzCondition]="!showMaxCountTip">{{lc('Copy')}}</a>
36
- <a (click)="setWebMainView(view)"
37
- *ngIf="view.id!=webMainViewId">{{lc('SetAsWebMainView')}}</a>
38
- <a (click)="deleteView(view)">{{lc('Delete')}}</a>
39
- <a *ngIf="i !== 0" (click)="moveUp(view, 'web', i)">{{lc('MoveUp')}}</a>
40
- <a *ngIf="i + 1 !== webViews.length" (click)="moveDown(view, 'web', i)">{{lc('MoveDown')}}</a>
41
- </nav>
42
- </div>
43
- </span>
44
- </div>
45
- </div>
46
-
47
- <div class="view-expander">
48
- <a class="expander-button" nz-popconfirm [nzPopconfirmTitle]="lc('MaxCountTip', recommendedMaxAmount)"
49
- nzPopconfirmPlacement="rightTop" [nzCancelText]="l('Cancel')" [nzOkText]="l('Continue')"
50
- (nzOnConfirm)="createView(configureViewType.mobile)" (nzOnCancel)="shownTip = true" [nzCondition]="!showMaxCountTip">
51
- <i class="fcloud-addCity"></i>
52
- </a>
53
- <div data-toggle="collapse" href="#mobile-views" role="button" aria-controls="mobile-views">
54
- <i class="fa expander-icon"></i>
55
- <span class="screen-name">{{lc('Mobile')}}</span>
56
- </div>
57
- </div>
58
- <div id="mobile-views" class="collapse show">
59
- <div *ngFor="let view of mobileViews; let i = index" class="screen-items" [class.selected]="view.id==selectedViewId
60
- " (click)="openView(view)">
61
- <i class="screen-icon" [ngClass]="getIconClass(view)"></i>
62
- <span class="screen-name">
63
- <em>{{view.name}}</em>
64
- </span>
65
- <span class="more" [id]="'operation_'+view.id" (click)="showOrHideMoreSet($event)">
66
- <i class="screen-icon more-icon "></i>
67
- <div class="screen-more">
68
- <nav>
69
- <a (click)="setViewSettings(view)">{{l('Modify')}}</a>
70
- <a class="expander-button" nz-popconfirm [nzPopconfirmTitle]="lc('MaxCountTip', recommendedMaxAmount)"
71
- nzPopconfirmPlacement="rightTop" [nzCancelText]="l('Cancel')" [nzOkText]="l('Continue')"
72
- (nzOnConfirm)="copyView(view)" (nzOnCancel)="shownTip = true" [nzCondition]="!showMaxCountTip">{{lc('Copy')}}</a>
73
- <a (click)="setMobileMainView(view)"
74
- *ngIf="view.id!=mobileMainViewId">{{lc('SetAsMobileMainView')}}</a>
75
- <a (click)="resetMobileMainView()"
76
- *ngIf="view.id==mobileMainViewId">{{lc('ResetMobileMainView')}}</a>
77
- <a (click)="deleteView(view)">{{lc('Delete')}}</a>
78
- <a *ngIf="i !== 0" (click)="moveUp(view, 'mobile', i)">{{lc('MoveUp')}}</a>
79
- <a *ngIf="i + 1 !== mobileViews.length" (click)="moveDown(view, 'mobile', i)">{{lc('MoveDown')}}</a>
80
- </nav>
81
- </div>
82
- </span>
83
- </div>
84
- </div>
85
-
86
- <div class="view-expander">
87
- <a class="expander-button" nz-popconfirm [nzPopconfirmTitle]="lc('MaxCountTip', recommendedMaxAmount)"
88
- nzPopconfirmPlacement="rightTop" [nzCancelText]="l('Cancel')" [nzOkText]="l('Continue')"
89
- (nzOnConfirm)="createView(configureViewType.popView)" (nzOnCancel)="shownTip = true" [nzCondition]="!showMaxCountTip">
90
- <i class="fcloud-addCity"></i>
91
- </a>
92
- <div data-toggle="collapse" href="#pop-window-views" role="button" aria-controls="pop-window-views">
93
- <i class="fa expander-icon"></i>
94
- <span class="screen-name">{{lc('PopView')}}</span>
95
- </div>
96
- </div>
97
- <div id="pop-window-views" class="collapse show">
98
- <div *ngFor="let view of popViews; let i = index" class="screen-items" [class.selected]="view.id==selectedViewId"
99
- (click)="openView(view)">
100
- <i class="screen-icon" [ngClass]="getIconClass(view)"></i>
101
- <span class="screen-name">
102
- <em>{{view.name}}</em>
103
- </span>
104
- <span class="more" [id]="'operation_'+view.id" (click)="showOrHideMoreSet($event)">
105
- <i class="screen-icon more-icon "></i>
106
- <div class="screen-more">
107
- <nav>
108
- <a (click)="setViewSettings(view)">{{l('Modify')}}</a>
109
- <a class="expander-button" nz-popconfirm [nzPopconfirmTitle]="lc('MaxCountTip', recommendedMaxAmount)"
110
- nzPopconfirmPlacement="rightTop" [nzCancelText]="l('Cancel')" [nzOkText]="l('Continue')"
111
- (nzOnConfirm)="copyView(view)" (nzOnCancel)="shownTip = true" [nzCondition]="!showMaxCountTip">{{lc('Copy')}}</a>
112
- <a (click)="deleteView(view)">{{lc('Delete')}}</a>
113
- <a *ngIf="i !== 0" (click)="moveUp(view, 'pop', i)">{{lc('MoveUp')}}</a>
114
- <a *ngIf="i + 1 !== popViews.length" (click)="moveDown(view, 'pop', i)">{{lc('MoveDown')}}</a>
115
- </nav>
116
- </div>
117
- </span>
118
- </div>
119
- </div>
120
-
121
- <div class="screen-items" [class.selected]="selectedViewId==thumbnailView.id"
122
- (click)="openView(thumbnailView)">
123
- <i class="screen-icon" class="screen-icon screen-thumbnail-icon"></i>
124
- <span class="screen-name">{{lc("Thumbnail")}}</span>
125
- <span class="more" [id]="'operation_'+thumbnailView.id" (click)="showOrHideMoreSet($event)">
126
- <i class="screen-icon more-icon "></i>
127
- <div class="screen-more">
128
- <nav>
129
- <a (click)="setViewSettings(thumbnailView)">{{lc('SetViewSettings_Menu')}}</a>
130
- </nav>
131
- </div>
132
- </span>
133
- </div>
134
- <!-- 文本库 -->
135
- <div class="view-expander">
136
- <div data-toggle="collapse" href="#text-library" role="button" aria-controls="text-library">
137
- <i class="fa expander-icon"></i>
138
- <span class="screen-name">{{lc('TextLibrary')}}</span>
139
- <i nz-icon nzType="question-circle" theme="outline" nz-popover [nzPopoverContent]="lc('TextLibraryTips')" nzPopoverPlacement="right" style="margin-left: 6px;"></i>
140
- </div>
141
- </div>
142
- <div id="text-library" class="collapse show">
143
- <!-- 文本列表折叠点 -->
144
- <div class="text-list-container">
145
- <div class="view-expander">
146
- <div data-toggle="collapse" href="#text-list" role="button" aria-controls="text-list">
147
- <i class="fa expander-icon"></i>
148
- <span class="screen-name">{{lc('TextList')}}</span>
149
- <a class="expander-button" (click)="addTextItem(); $event.stopPropagation()">
150
- <i class="fcloud-addCity"></i>
151
- </a>
152
- </div>
153
- </div>
154
- <div id="text-list" class="collapse show">
155
- <!-- 使用递归模板展示树形结构 -->
156
- <ng-template #treeNode let-items>
157
- <div *ngFor="let item of items" class="screen-items" [class.selected]="item === selectedTextItem" (click)="selectTextItem(item)">
158
- <i class="screen-icon system-text-icon"></i>
159
- <span class="screen-name">{{item.name}}</span>
160
- <span class="more" [id]="'text-operation_'+item.id" (click)="showOrHideMoreSet($event)">
161
- <i class="screen-icon more-icon"></i>
162
- <div class="screen-more">
163
- <nav>
164
- <a (click)="modifyTextItem(item)">{{lc('Modify')}}</a>
165
- <a (click)="deleteTextItem(item)">{{lc('Delete')}}</a>
166
- </nav>
167
- </div>
168
- </span>
169
- <!-- 如果有子节点,递归展示 -->
170
- <div *ngIf="item.children && item.children.length > 0" class="text-list-children">
171
- <ng-container *ngTemplateOutlet="treeNode; context: { $implicit: item.children }"></ng-container>
172
- </div>
173
- </div>
174
- </ng-template>
175
- <!-- 初始调用递归模板 -->
176
- <ng-container *ngTemplateOutlet="treeNode; context: { $implicit: textItems }"></ng-container>
177
- </div>
178
- </div>
179
-
180
- <!-- 系统文本 -->
181
- <div class="system-text-container">
182
- <div class="view-expander">
183
- <div data-toggle="collapse" href="#system-text" role="button" aria-controls="system-text">
184
- <i class="fa expander-icon"></i>
185
- <span class="screen-name">{{lc('SystemTextList')}}</span>
186
- </div>
187
- </div>
188
- <div id="system-text" class="collapse show">
189
- <div class="screen-items component-builtin-text" (click)="openSystemTextLibrary()">
190
- <i class="screen-icon system-text-icon"></i>
191
- <span class="screen-name">{{lc('ComponentBuiltInText')}}</span>
192
- </div>
193
- </div>
194
- </div>
195
- </div>
196
- </div>
197
- </div>
198
-
199
- </div>
1
+ <div class="design-view-list">
2
+ <div class="screen">
3
+ <div class="configTitle">
4
+ <span>{{lc('Page')}}</span>
5
+ <text-setting-modal #textSettingModalComponent></text-setting-modal>
6
+ <text-library-setting-modal #textLibrarySettingModalComponent></text-library-setting-modal>
7
+ <add-text-item-modal #addTextItemModalComponent></add-text-item-modal>
8
+ <system-text-library-modal #systemTextLibraryModalComponent></system-text-library-modal>
9
+ <confirm-dialog #confirmDialog (onConfirm)="onDeleteTextItemConfirm()"></confirm-dialog>
10
+ </div>
11
+ <div class="screenBody">
12
+ <div class="view-expander">
13
+ <a class="expander-button" nz-popconfirm [nzPopconfirmTitle]="lc('MaxCountTip', recommendedMaxAmount)"
14
+ nzPopconfirmPlacement="rightTop" [nzCancelText]="l('Cancel')" [nzOkText]="l('Continue')"
15
+ (nzOnConfirm)="createView(configureViewType.web)" (nzOnCancel)="shownTip = true" [nzCondition]="!showMaxCountTip">
16
+ <i class="fcloud-addCity"></i>
17
+ </a>
18
+ <div data-toggle="collapse" href="#web-views" role="button" aria-controls="web-views">
19
+ <i class="fa expander-icon"></i>
20
+ <span class="screen-name">{{lc('Web')}}</span>
21
+ </div>
22
+ </div>
23
+ <div id="web-views" class="collapse show">
24
+ <div *ngFor="let view of webViews; let i = index" class="screen-items" [class.selected]="view.id==selectedViewId"
25
+ (click)="openView(view)">
26
+ <i class="screen-icon" [ngClass]="getIconClass(view)"></i>
27
+ <span class="screen-name">{{view.name}}</span>
28
+ <span class="more" [id]="'operation_'+view.id" (click)="showOrHideMoreSet($event)">
29
+ <i class="screen-icon more-icon"></i>
30
+ <div class="screen-more">
31
+ <nav>
32
+ <a (click)="setViewSettings(view)">{{l('Modify')}}</a>
33
+ <a class="expander-button" nz-popconfirm [nzPopconfirmTitle]="lc('MaxCountTip', recommendedMaxAmount)"
34
+ nzPopconfirmPlacement="rightTop" [nzCancelText]="l('Cancel')" [nzOkText]="l('Continue')"
35
+ (nzOnConfirm)="copyView(view)" (nzOnCancel)="shownTip = true" [nzCondition]="!showMaxCountTip">{{lc('Copy')}}</a>
36
+ <a (click)="setWebMainView(view)"
37
+ *ngIf="view.id!=webMainViewId">{{lc('SetAsWebMainView')}}</a>
38
+ <a (click)="deleteView(view)">{{lc('Delete')}}</a>
39
+ <a *ngIf="i !== 0" (click)="moveUp(view, 'web', i)">{{lc('MoveUp')}}</a>
40
+ <a *ngIf="i + 1 !== webViews.length" (click)="moveDown(view, 'web', i)">{{lc('MoveDown')}}</a>
41
+ </nav>
42
+ </div>
43
+ </span>
44
+ </div>
45
+ </div>
46
+
47
+ <div class="view-expander">
48
+ <a class="expander-button" nz-popconfirm [nzPopconfirmTitle]="lc('MaxCountTip', recommendedMaxAmount)"
49
+ nzPopconfirmPlacement="rightTop" [nzCancelText]="l('Cancel')" [nzOkText]="l('Continue')"
50
+ (nzOnConfirm)="createView(configureViewType.mobile)" (nzOnCancel)="shownTip = true" [nzCondition]="!showMaxCountTip">
51
+ <i class="fcloud-addCity"></i>
52
+ </a>
53
+ <div data-toggle="collapse" href="#mobile-views" role="button" aria-controls="mobile-views">
54
+ <i class="fa expander-icon"></i>
55
+ <span class="screen-name">{{lc('Mobile')}}</span>
56
+ </div>
57
+ </div>
58
+ <div id="mobile-views" class="collapse show">
59
+ <div *ngFor="let view of mobileViews; let i = index" class="screen-items" [class.selected]="view.id==selectedViewId
60
+ " (click)="openView(view)">
61
+ <i class="screen-icon" [ngClass]="getIconClass(view)"></i>
62
+ <span class="screen-name">
63
+ <em>{{view.name}}</em>
64
+ </span>
65
+ <span class="more" [id]="'operation_'+view.id" (click)="showOrHideMoreSet($event)">
66
+ <i class="screen-icon more-icon "></i>
67
+ <div class="screen-more">
68
+ <nav>
69
+ <a (click)="setViewSettings(view)">{{l('Modify')}}</a>
70
+ <a class="expander-button" nz-popconfirm [nzPopconfirmTitle]="lc('MaxCountTip', recommendedMaxAmount)"
71
+ nzPopconfirmPlacement="rightTop" [nzCancelText]="l('Cancel')" [nzOkText]="l('Continue')"
72
+ (nzOnConfirm)="copyView(view)" (nzOnCancel)="shownTip = true" [nzCondition]="!showMaxCountTip">{{lc('Copy')}}</a>
73
+ <a (click)="setMobileMainView(view)"
74
+ *ngIf="view.id!=mobileMainViewId">{{lc('SetAsMobileMainView')}}</a>
75
+ <a (click)="resetMobileMainView()"
76
+ *ngIf="view.id==mobileMainViewId">{{lc('ResetMobileMainView')}}</a>
77
+ <a (click)="deleteView(view)">{{lc('Delete')}}</a>
78
+ <a *ngIf="i !== 0" (click)="moveUp(view, 'mobile', i)">{{lc('MoveUp')}}</a>
79
+ <a *ngIf="i + 1 !== mobileViews.length" (click)="moveDown(view, 'mobile', i)">{{lc('MoveDown')}}</a>
80
+ </nav>
81
+ </div>
82
+ </span>
83
+ </div>
84
+ </div>
85
+
86
+ <div class="view-expander">
87
+ <a class="expander-button" nz-popconfirm [nzPopconfirmTitle]="lc('MaxCountTip', recommendedMaxAmount)"
88
+ nzPopconfirmPlacement="rightTop" [nzCancelText]="l('Cancel')" [nzOkText]="l('Continue')"
89
+ (nzOnConfirm)="createView(configureViewType.popView)" (nzOnCancel)="shownTip = true" [nzCondition]="!showMaxCountTip">
90
+ <i class="fcloud-addCity"></i>
91
+ </a>
92
+ <div data-toggle="collapse" href="#pop-window-views" role="button" aria-controls="pop-window-views">
93
+ <i class="fa expander-icon"></i>
94
+ <span class="screen-name">{{lc('PopView')}}</span>
95
+ </div>
96
+ </div>
97
+ <div id="pop-window-views" class="collapse show">
98
+ <div *ngFor="let view of popViews; let i = index" class="screen-items" [class.selected]="view.id==selectedViewId"
99
+ (click)="openView(view)">
100
+ <i class="screen-icon" [ngClass]="getIconClass(view)"></i>
101
+ <span class="screen-name">
102
+ <em>{{view.name}}</em>
103
+ </span>
104
+ <span class="more" [id]="'operation_'+view.id" (click)="showOrHideMoreSet($event)">
105
+ <i class="screen-icon more-icon "></i>
106
+ <div class="screen-more">
107
+ <nav>
108
+ <a (click)="setViewSettings(view)">{{l('Modify')}}</a>
109
+ <a class="expander-button" nz-popconfirm [nzPopconfirmTitle]="lc('MaxCountTip', recommendedMaxAmount)"
110
+ nzPopconfirmPlacement="rightTop" [nzCancelText]="l('Cancel')" [nzOkText]="l('Continue')"
111
+ (nzOnConfirm)="copyView(view)" (nzOnCancel)="shownTip = true" [nzCondition]="!showMaxCountTip">{{lc('Copy')}}</a>
112
+ <a (click)="deleteView(view)">{{lc('Delete')}}</a>
113
+ <a *ngIf="i !== 0" (click)="moveUp(view, 'pop', i)">{{lc('MoveUp')}}</a>
114
+ <a *ngIf="i + 1 !== popViews.length" (click)="moveDown(view, 'pop', i)">{{lc('MoveDown')}}</a>
115
+ </nav>
116
+ </div>
117
+ </span>
118
+ </div>
119
+ </div>
120
+
121
+ <div class="screen-items" [class.selected]="selectedViewId==thumbnailView.id"
122
+ (click)="openView(thumbnailView)">
123
+ <i class="screen-icon" class="screen-icon screen-thumbnail-icon"></i>
124
+ <span class="screen-name">{{lc("Thumbnail")}}</span>
125
+ <span class="more" [id]="'operation_'+thumbnailView.id" (click)="showOrHideMoreSet($event)">
126
+ <i class="screen-icon more-icon "></i>
127
+ <div class="screen-more">
128
+ <nav>
129
+ <a (click)="setViewSettings(thumbnailView)">{{lc('SetViewSettings_Menu')}}</a>
130
+ </nav>
131
+ </div>
132
+ </span>
133
+ </div>
134
+ <!-- 文本库 -->
135
+ <div class="view-expander">
136
+ <div data-toggle="collapse" href="#text-library" role="button" aria-controls="text-library">
137
+ <i class="fa expander-icon"></i>
138
+ <span class="screen-name">{{lc('TextLibrary')}}</span>
139
+ <i nz-icon nzType="question-circle" theme="outline" nz-popover [nzPopoverContent]="lc('TextLibraryTips')" nzPopoverPlacement="right" style="margin-left: 6px;"></i>
140
+ </div>
141
+ </div>
142
+ <div id="text-library" class="collapse show">
143
+ <!-- 文本列表折叠点 -->
144
+ <div class="text-list-container">
145
+ <div class="view-expander">
146
+ <div data-toggle="collapse" href="#text-list" role="button" aria-controls="text-list">
147
+ <i class="fa expander-icon"></i>
148
+ <span class="screen-name">{{lc('TextList')}}</span>
149
+ <a class="expander-button" (click)="addTextItem(); $event.stopPropagation()">
150
+ <i class="fcloud-addCity"></i>
151
+ </a>
152
+ </div>
153
+ </div>
154
+ <div id="text-list" class="collapse show">
155
+ <!-- 使用递归模板展示树形结构 -->
156
+ <ng-template #treeNode let-items>
157
+ <div *ngFor="let item of items" class="screen-items" [class.selected]="item === selectedTextItem" (click)="selectTextItem(item)">
158
+ <i class="screen-icon system-text-icon"></i>
159
+ <span class="screen-name">{{item.name}}</span>
160
+ <span class="more" [id]="'text-operation_'+item.id" (click)="showOrHideMoreSet($event)">
161
+ <i class="screen-icon more-icon"></i>
162
+ <div class="screen-more">
163
+ <nav>
164
+ <a (click)="modifyTextItem(item)">{{lc('Modify')}}</a>
165
+ <a (click)="deleteTextItem(item)">{{lc('Delete')}}</a>
166
+ </nav>
167
+ </div>
168
+ </span>
169
+ <!-- 如果有子节点,递归展示 -->
170
+ <div *ngIf="item.children && item.children.length > 0" class="text-list-children">
171
+ <ng-container *ngTemplateOutlet="treeNode; context: { $implicit: item.children }"></ng-container>
172
+ </div>
173
+ </div>
174
+ </ng-template>
175
+ <!-- 初始调用递归模板 -->
176
+ <ng-container *ngTemplateOutlet="treeNode; context: { $implicit: textItems }"></ng-container>
177
+ </div>
178
+ </div>
179
+
180
+ <!-- 系统文本 -->
181
+ <div class="system-text-container">
182
+ <div class="view-expander">
183
+ <div data-toggle="collapse" href="#system-text" role="button" aria-controls="system-text">
184
+ <i class="fa expander-icon"></i>
185
+ <span class="screen-name">{{lc('SystemTextList')}}</span>
186
+ </div>
187
+ </div>
188
+ <div id="system-text" class="collapse show">
189
+ <div class="screen-items component-builtin-text" (click)="openSystemTextLibrary()">
190
+ <i class="screen-icon system-text-icon"></i>
191
+ <span class="screen-name">{{lc('ComponentBuiltInText')}}</span>
192
+ </div>
193
+ </div>
194
+ </div>
195
+ </div>
196
+ </div>
197
+ </div>
198
+
199
+ </div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "main": "bundles/fc-designer.umd.js",
3
- "version": "3.0.1-alpha.98",
3
+ "version": "3.0.1-alpha.99",
4
4
  "module": "public_api.js",
5
5
  "typings": "public_api.d.ts",
6
6
  "license": "UNLICENSED",