@appaflytech/zeyrek-ai-mcp 0.0.20 → 0.0.21
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.
- package/README.md +14 -13
- package/dist/config.js +0 -2
- package/dist/knowledge/componentCatalog.js +940 -215
- package/dist/knowledge/componentEvents.js +368 -75
- package/dist/knowledge/normalize.js +66 -63
- package/dist/knowledge/rules.js +29 -6
- package/dist/knowledge/styleResolve.js +1 -1
- package/dist/knowledge/themeResolve.js +3 -3
- package/dist/platform/diagnostics.js +85 -0
- package/dist/platform/domSummary.js +1 -1
- package/dist/platform/ifExists.js +129 -0
- package/dist/platform/responses.js +2 -1
- package/dist/platform/{capture/capture.js → screenshot.js} +509 -23
- package/dist/platform/strictArguments.js +22 -2
- package/dist/platform/writeDiff.js +58 -31
- package/dist/platform/writeView.js +17 -0
- package/dist/resources/guides/component.md +9 -6
- package/dist/resources/guides/functions.md +32 -3
- package/dist/resources/guides/getting-started.md +35 -0
- package/dist/resources/guides/layout.md +7 -11
- package/dist/resources/guides/page.md +49 -71
- package/dist/resources/guides/translation.md +5 -6
- package/dist/resources/schema-fingerprint.json +2 -2
- package/dist/resources/schemas/GlobalFunctionUpdateResultDto.json +18 -0
- package/dist/server.js +0 -2
- package/dist/tools/applications.js +3 -60
- package/dist/tools/components.js +10 -50
- package/dist/tools/designSchemaPatch.js +13 -18
- package/dist/tools/externalComponents.js +4 -25
- package/dist/tools/flows.js +38 -51
- package/dist/tools/functions.js +20 -10
- package/dist/tools/layouts.js +9 -41
- package/dist/tools/microservices.js +39 -11
- package/dist/tools/pages.js +95 -127
- package/dist/tools/platformInfo.js +1 -2
- package/dist/tools/schemaOps.js +2 -2
- package/dist/tools/screenWrite.js +2 -2
- package/dist/tools/screens.js +3 -9
- package/dist/tools/workflows.js +39 -12
- package/package.json +7 -2
- package/dist/knowledge/mobileComponentCatalog.js +0 -331
- package/dist/knowledge/mobileComponentEvents.js +0 -50
- package/dist/knowledge/platform/lint.js +0 -205
- package/dist/knowledge/platform/mobile.js +0 -78
- package/dist/knowledge/platform/mobileRules.js +0 -121
- package/dist/knowledge/platform/mobileTabs.js +0 -108
- package/dist/knowledge/platform/profile.js +0 -20
- package/dist/knowledge/platform/resolve.js +0 -122
- package/dist/knowledge/platform/web.js +0 -38
- package/dist/knowledge/styleResolveNative.js +0 -410
- package/dist/platform/capture/actions.js +0 -333
- package/dist/platform/capture/browser.js +0 -1
- package/dist/platform/capture/index.js +0 -10
- package/dist/platform/capture/readiness.js +0 -103
- package/dist/platform/capture/summary.js +0 -77
- package/dist/platform/capture/target.js +0 -5
- package/dist/platform/capture/targets/studio-mobile.js +0 -15
- package/dist/platform/capture/targets/studio-web.js +0 -5
- package/dist/resources/examples/mobile-app-shell-drawer.json +0 -209
- package/dist/resources/examples/mobile-app-shell-stack.json +0 -123
- package/dist/resources/examples/mobile-app-shell-tab.json +0 -174
- package/dist/resources/examples/mobile-list-detail-form.json +0 -656
- package/dist/resources/guides/mobile.md +0 -215
- package/dist/tools/mobile.js +0 -203
- package/dist/tools/profileWrite.js +0 -45
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"_meta": {
|
|
3
|
-
"synthetic": true,
|
|
4
|
-
"note": "Mobil uygulama kabuğu — ÇEKMECE: app-bar (leading 'menu' + menuTarget) + slot + drawer widget'ı. Çekmece ayar değil bileşendir; içindeki düğmeler sıradan redirect akışlarıyla sayfa açar. mobile_app_create drawer:true ile bu kabuğu kurar.",
|
|
5
|
-
"pairsWith": "mobile-app-shell-stack, mobile-app-shell-tab",
|
|
6
|
-
"sourceRef": "platform_guide('mobile') §Gezinme; plans/mobil-uygulama-expo/05-mobil-ayarlar-ve-gezinme.md §2.5, §8"
|
|
7
|
-
},
|
|
8
|
-
"_rules": {
|
|
9
|
-
"flexOnly": "Mobil çizer yalnız flex'tir: blocks boş, sıra dizi indeksi, ölçü appearance ile (MOB-001). Kökte layout prop'u YOK — mobil container şeması onu düşürür.",
|
|
10
|
-
"singleSlot": "TEK slot; sayfa şeması slot'a yerleşir (LAY-002 / LAY-006 web'dekiyle aynı).",
|
|
11
|
-
"appBarTitle": "app-bar.title boşsa sayfa adı yazılır; leading 'auto' yığında geri düğmesi, kökte (menuTarget varsa) menü düğmesi çizer.",
|
|
12
|
-
"catalog": "app-bar, slot ve drawer mobil kataloğun Dalga 1 bileşenleridir. component_list mobil uygulamada bunları döndürmüyorsa katalog henüz yazılmamıştır ve layout_create 422 unknown-type alır (MOB-003).",
|
|
13
|
-
"verify": "Kabuğu layout'a bağlı bir sayfada page_screenshot ile doğrula (mobilde varsayılan device: 'phone').",
|
|
14
|
-
"menuTarget": "app-bar.menuTarget çekmecenin elementId'sidir (nav_drawer); iç rol app_bar__menu düğmesidir — page_screenshot actions:[{ action:'click', target:'app_bar__menu' }] çekmeceyi açar.",
|
|
15
|
-
"drawerFlows": "Menü düğmelerine akış ayrı adımda bağlanır: flow_create (host: 'layout', adım redirect { path: '<sayfa slug'ı>' }) → layout_schema_patch set_event { target: 'menu_gorevler', event: 'click' }.",
|
|
16
|
-
"drawerNode": "Çekmece mobil kataloğun `drawer` bileşenidir (kind 'component', çocuk alır): layout'a doğrudan yazılır, prop'ları katalogdakilerdir (`position`, `size`, `title`, `isDismissDisabled`); kapalı doğar, `app-bar` menüsü `isOpen: true` yazarak açar. Katalogda olmayan prop (ör. `width`, `overlay`) ya da seçenek dışı değer (düğmede `variant: 'ghost'` — geçerli olanlar `solid`/`text`/`outline`) layout_create'i 422 ile düşürür."
|
|
17
|
-
},
|
|
18
|
-
"mobileAppCreate": {
|
|
19
|
-
"slug": "saha-menu",
|
|
20
|
-
"name": "Saha",
|
|
21
|
-
"drawer": true,
|
|
22
|
-
"pages": [
|
|
23
|
-
{
|
|
24
|
-
"pageSlug": "gorevler",
|
|
25
|
-
"pageName": "Görevler"
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
"pageSlug": "profil",
|
|
29
|
-
"pageName": "Profil"
|
|
30
|
-
}
|
|
31
|
-
]
|
|
32
|
-
},
|
|
33
|
-
"layoutCreate": {
|
|
34
|
-
"name": "Mobil kabuk",
|
|
35
|
-
"views": [
|
|
36
|
-
{
|
|
37
|
-
"elementId": "shell_root",
|
|
38
|
-
"name": "shell_root",
|
|
39
|
-
"type": "container",
|
|
40
|
-
"kind": "component",
|
|
41
|
-
"props": {
|
|
42
|
-
"title": {
|
|
43
|
-
"type": "static",
|
|
44
|
-
"ref": null,
|
|
45
|
-
"data": ""
|
|
46
|
-
},
|
|
47
|
-
"direction": {
|
|
48
|
-
"type": "static",
|
|
49
|
-
"ref": null,
|
|
50
|
-
"data": "column"
|
|
51
|
-
},
|
|
52
|
-
"gap": {
|
|
53
|
-
"type": "static",
|
|
54
|
-
"ref": null,
|
|
55
|
-
"data": "none"
|
|
56
|
-
},
|
|
57
|
-
"size": {
|
|
58
|
-
"type": "static",
|
|
59
|
-
"ref": null,
|
|
60
|
-
"data": "grow"
|
|
61
|
-
},
|
|
62
|
-
"wrap": {
|
|
63
|
-
"type": "static",
|
|
64
|
-
"ref": null,
|
|
65
|
-
"data": false
|
|
66
|
-
}
|
|
67
|
-
},
|
|
68
|
-
"states": {
|
|
69
|
-
"isDroppable": true,
|
|
70
|
-
"isWrapper": true
|
|
71
|
-
},
|
|
72
|
-
"appearance": {
|
|
73
|
-
"heightType": "fill",
|
|
74
|
-
"widthType": "fill"
|
|
75
|
-
},
|
|
76
|
-
"blocks": [],
|
|
77
|
-
"events": [],
|
|
78
|
-
"validations": [],
|
|
79
|
-
"stateBindings": [],
|
|
80
|
-
"children": [
|
|
81
|
-
{
|
|
82
|
-
"elementId": "app_bar",
|
|
83
|
-
"name": "app_bar",
|
|
84
|
-
"type": "app-bar",
|
|
85
|
-
"kind": "component",
|
|
86
|
-
"props": {
|
|
87
|
-
"title": {
|
|
88
|
-
"type": "static",
|
|
89
|
-
"ref": null,
|
|
90
|
-
"data": ""
|
|
91
|
-
},
|
|
92
|
-
"leading": {
|
|
93
|
-
"type": "static",
|
|
94
|
-
"ref": null,
|
|
95
|
-
"data": "menu"
|
|
96
|
-
},
|
|
97
|
-
"menuTarget": {
|
|
98
|
-
"type": "static",
|
|
99
|
-
"ref": null,
|
|
100
|
-
"data": "nav_drawer"
|
|
101
|
-
}
|
|
102
|
-
},
|
|
103
|
-
"appearance": {
|
|
104
|
-
"widthType": "fill"
|
|
105
|
-
},
|
|
106
|
-
"blocks": [],
|
|
107
|
-
"events": [],
|
|
108
|
-
"validations": [],
|
|
109
|
-
"stateBindings": [],
|
|
110
|
-
"children": []
|
|
111
|
-
},
|
|
112
|
-
{
|
|
113
|
-
"elementId": "page_slot",
|
|
114
|
-
"name": "page_slot",
|
|
115
|
-
"type": "slot",
|
|
116
|
-
"kind": "component",
|
|
117
|
-
"props": {},
|
|
118
|
-
"appearance": {
|
|
119
|
-
"widthType": "fill",
|
|
120
|
-
"heightType": "fill"
|
|
121
|
-
},
|
|
122
|
-
"blocks": [],
|
|
123
|
-
"events": [],
|
|
124
|
-
"validations": [],
|
|
125
|
-
"stateBindings": [],
|
|
126
|
-
"children": []
|
|
127
|
-
},
|
|
128
|
-
{
|
|
129
|
-
"elementId": "nav_drawer",
|
|
130
|
-
"name": "nav_drawer",
|
|
131
|
-
"type": "drawer",
|
|
132
|
-
"kind": "component",
|
|
133
|
-
"props": {
|
|
134
|
-
"position": {
|
|
135
|
-
"type": "static",
|
|
136
|
-
"ref": null,
|
|
137
|
-
"data": "left"
|
|
138
|
-
},
|
|
139
|
-
"size": {
|
|
140
|
-
"type": "static",
|
|
141
|
-
"ref": null,
|
|
142
|
-
"data": "default"
|
|
143
|
-
}
|
|
144
|
-
},
|
|
145
|
-
"appearance": {},
|
|
146
|
-
"blocks": [],
|
|
147
|
-
"events": [],
|
|
148
|
-
"validations": [],
|
|
149
|
-
"stateBindings": [],
|
|
150
|
-
"children": [
|
|
151
|
-
{
|
|
152
|
-
"elementId": "menu_gorevler",
|
|
153
|
-
"name": "menu_gorevler",
|
|
154
|
-
"type": "button",
|
|
155
|
-
"kind": "component",
|
|
156
|
-
"props": {
|
|
157
|
-
"text": {
|
|
158
|
-
"type": "static",
|
|
159
|
-
"ref": null,
|
|
160
|
-
"data": "Görevler"
|
|
161
|
-
},
|
|
162
|
-
"variant": {
|
|
163
|
-
"type": "static",
|
|
164
|
-
"ref": null,
|
|
165
|
-
"data": "text"
|
|
166
|
-
}
|
|
167
|
-
},
|
|
168
|
-
"appearance": {
|
|
169
|
-
"widthType": "fill"
|
|
170
|
-
},
|
|
171
|
-
"blocks": [],
|
|
172
|
-
"events": [],
|
|
173
|
-
"validations": [],
|
|
174
|
-
"stateBindings": [],
|
|
175
|
-
"children": []
|
|
176
|
-
},
|
|
177
|
-
{
|
|
178
|
-
"elementId": "menu_profil",
|
|
179
|
-
"name": "menu_profil",
|
|
180
|
-
"type": "button",
|
|
181
|
-
"kind": "component",
|
|
182
|
-
"props": {
|
|
183
|
-
"text": {
|
|
184
|
-
"type": "static",
|
|
185
|
-
"ref": null,
|
|
186
|
-
"data": "Profil"
|
|
187
|
-
},
|
|
188
|
-
"variant": {
|
|
189
|
-
"type": "static",
|
|
190
|
-
"ref": null,
|
|
191
|
-
"data": "text"
|
|
192
|
-
}
|
|
193
|
-
},
|
|
194
|
-
"appearance": {
|
|
195
|
-
"widthType": "fill"
|
|
196
|
-
},
|
|
197
|
-
"blocks": [],
|
|
198
|
-
"events": [],
|
|
199
|
-
"validations": [],
|
|
200
|
-
"stateBindings": [],
|
|
201
|
-
"children": []
|
|
202
|
-
}
|
|
203
|
-
]
|
|
204
|
-
}
|
|
205
|
-
]
|
|
206
|
-
}
|
|
207
|
-
]
|
|
208
|
-
}
|
|
209
|
-
}
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"_meta": {
|
|
3
|
-
"synthetic": true,
|
|
4
|
-
"note": "Mobil uygulama kabuğu — YIĞIN (varsayılan gezinme): app-bar + tek slot. Sekme ayarı yok; redirect sayfayı yığına iter, app-bar geri düğmesi ve cihaz geri tuşu döner. layout_create'in views alanına olduğu gibi verilebilir; mobile_app_create tabs ve drawer verilmeyince bu kabuğu kurar.",
|
|
5
|
-
"pairsWith": "mobile-app-shell-tab (sekmeli), mobile-app-shell-drawer (çekmeceli), mobile-list-detail-form (üç sayfa)",
|
|
6
|
-
"sourceRef": "platform_guide('mobile') §Gezinme; plans/mobil-uygulama-expo/05-mobil-ayarlar-ve-gezinme.md §2.5-2.6"
|
|
7
|
-
},
|
|
8
|
-
"_rules": {
|
|
9
|
-
"flexOnly": "Mobil çizer yalnız flex'tir: blocks boş, sıra dizi indeksi, ölçü appearance ile (MOB-001). Kökte layout prop'u YOK — mobil container şeması onu düşürür.",
|
|
10
|
-
"singleSlot": "TEK slot; sayfa şeması slot'a yerleşir (LAY-002 / LAY-006 web'dekiyle aynı).",
|
|
11
|
-
"appBarTitle": "app-bar.title boşsa sayfa adı yazılır; leading 'auto' yığında geri düğmesi, kökte (menuTarget varsa) menü düğmesi çizer.",
|
|
12
|
-
"catalog": "app-bar, slot ve drawer mobil kataloğun Dalga 1 bileşenleridir. component_list mobil uygulamada bunları döndürmüyorsa katalog henüz yazılmamıştır ve layout_create 422 unknown-type alır (MOB-003).",
|
|
13
|
-
"verify": "Kabuğu layout'a bağlı bir sayfada page_screenshot ile doğrula (mobilde varsayılan device: 'phone')."
|
|
14
|
-
},
|
|
15
|
-
"mobileAppCreate": {
|
|
16
|
-
"slug": "saha",
|
|
17
|
-
"name": "Saha",
|
|
18
|
-
"pages": [
|
|
19
|
-
{
|
|
20
|
-
"pageSlug": "gorevler",
|
|
21
|
-
"pageName": "Görevler"
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
"pageSlug": "detay",
|
|
25
|
-
"pageName": "Görev detayı"
|
|
26
|
-
}
|
|
27
|
-
]
|
|
28
|
-
},
|
|
29
|
-
"layoutCreate": {
|
|
30
|
-
"name": "Mobil kabuk",
|
|
31
|
-
"views": [
|
|
32
|
-
{
|
|
33
|
-
"elementId": "shell_root",
|
|
34
|
-
"name": "shell_root",
|
|
35
|
-
"type": "container",
|
|
36
|
-
"kind": "component",
|
|
37
|
-
"props": {
|
|
38
|
-
"title": {
|
|
39
|
-
"type": "static",
|
|
40
|
-
"ref": null,
|
|
41
|
-
"data": ""
|
|
42
|
-
},
|
|
43
|
-
"direction": {
|
|
44
|
-
"type": "static",
|
|
45
|
-
"ref": null,
|
|
46
|
-
"data": "column"
|
|
47
|
-
},
|
|
48
|
-
"gap": {
|
|
49
|
-
"type": "static",
|
|
50
|
-
"ref": null,
|
|
51
|
-
"data": "none"
|
|
52
|
-
},
|
|
53
|
-
"size": {
|
|
54
|
-
"type": "static",
|
|
55
|
-
"ref": null,
|
|
56
|
-
"data": "grow"
|
|
57
|
-
},
|
|
58
|
-
"wrap": {
|
|
59
|
-
"type": "static",
|
|
60
|
-
"ref": null,
|
|
61
|
-
"data": false
|
|
62
|
-
}
|
|
63
|
-
},
|
|
64
|
-
"states": {
|
|
65
|
-
"isDroppable": true,
|
|
66
|
-
"isWrapper": true
|
|
67
|
-
},
|
|
68
|
-
"appearance": {
|
|
69
|
-
"heightType": "fill",
|
|
70
|
-
"widthType": "fill"
|
|
71
|
-
},
|
|
72
|
-
"blocks": [],
|
|
73
|
-
"events": [],
|
|
74
|
-
"validations": [],
|
|
75
|
-
"stateBindings": [],
|
|
76
|
-
"children": [
|
|
77
|
-
{
|
|
78
|
-
"elementId": "app_bar",
|
|
79
|
-
"name": "app_bar",
|
|
80
|
-
"type": "app-bar",
|
|
81
|
-
"kind": "component",
|
|
82
|
-
"props": {
|
|
83
|
-
"title": {
|
|
84
|
-
"type": "static",
|
|
85
|
-
"ref": null,
|
|
86
|
-
"data": ""
|
|
87
|
-
},
|
|
88
|
-
"leading": {
|
|
89
|
-
"type": "static",
|
|
90
|
-
"ref": null,
|
|
91
|
-
"data": "auto"
|
|
92
|
-
}
|
|
93
|
-
},
|
|
94
|
-
"appearance": {
|
|
95
|
-
"widthType": "fill"
|
|
96
|
-
},
|
|
97
|
-
"blocks": [],
|
|
98
|
-
"events": [],
|
|
99
|
-
"validations": [],
|
|
100
|
-
"stateBindings": [],
|
|
101
|
-
"children": []
|
|
102
|
-
},
|
|
103
|
-
{
|
|
104
|
-
"elementId": "page_slot",
|
|
105
|
-
"name": "page_slot",
|
|
106
|
-
"type": "slot",
|
|
107
|
-
"kind": "component",
|
|
108
|
-
"props": {},
|
|
109
|
-
"appearance": {
|
|
110
|
-
"widthType": "fill",
|
|
111
|
-
"heightType": "fill"
|
|
112
|
-
},
|
|
113
|
-
"blocks": [],
|
|
114
|
-
"events": [],
|
|
115
|
-
"validations": [],
|
|
116
|
-
"stateBindings": [],
|
|
117
|
-
"children": []
|
|
118
|
-
}
|
|
119
|
-
]
|
|
120
|
-
}
|
|
121
|
-
]
|
|
122
|
-
}
|
|
123
|
-
}
|
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"_meta": {
|
|
3
|
-
"synthetic": true,
|
|
4
|
-
"note": "Mobil uygulama kabuğu — SEKMELER: layout yığındakiyle AYNI (app-bar + slot); sekmeler layout'ta değil uygulama ayarındadır (properties.mobile.tabs). Çubuk runtime'da cihaz ekranının altında çizilir, kimliği __tabs, öğeleri __tabs__item-<sayfa slug'ı>.",
|
|
5
|
-
"pairsWith": "mobile-app-shell-stack, mobile-list-detail-form",
|
|
6
|
-
"sourceRef": "platform_guide('mobile') §Gezinme; zeyrek-mcp/src/knowledge/platform/mobileTabs.ts (normalizeMobileTabs)"
|
|
7
|
-
},
|
|
8
|
-
"_rules": {
|
|
9
|
-
"flexOnly": "Mobil çizer yalnız flex'tir: blocks boş, sıra dizi indeksi, ölçü appearance ile (MOB-001). Kökte layout prop'u YOK — mobil container şeması onu düşürür.",
|
|
10
|
-
"singleSlot": "TEK slot; sayfa şeması slot'a yerleşir (LAY-002 / LAY-006 web'dekiyle aynı).",
|
|
11
|
-
"appBarTitle": "app-bar.title boşsa sayfa adı yazılır; leading 'auto' yığında geri düğmesi, kökte (menuTarget varsa) menü düğmesi çizer.",
|
|
12
|
-
"catalog": "app-bar, slot ve drawer mobil kataloğun Dalga 1 bileşenleridir. component_list mobil uygulamada bunları döndürmüyorsa katalog henüz yazılmamıştır ve layout_create 422 unknown-type alır (MOB-003).",
|
|
13
|
-
"verify": "Kabuğu layout'a bağlı bir sayfada page_screenshot ile doğrula (mobilde varsayılan device: 'phone').",
|
|
14
|
-
"tabsNeedPageIds": "items[].page sayfa ID'sidir (slug değil): sekme ayarı sayfalar KURULDUKTAN SONRA application_update ile yazılır. 1-5 öğe, tekrar yok (MOB-007).",
|
|
15
|
-
"noTabBarNode": "Layout'a ya da sayfaya tab-bar / drawer-menu düğümü koyma — katalog bileşeni değiller, MOB-007 uyarısı alır."
|
|
16
|
-
},
|
|
17
|
-
"mobileAppCreate": {
|
|
18
|
-
"slug": "saha",
|
|
19
|
-
"name": "Saha",
|
|
20
|
-
"pages": [
|
|
21
|
-
{
|
|
22
|
-
"pageSlug": "gorevler",
|
|
23
|
-
"pageName": "Görevler"
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
"pageSlug": "yeni",
|
|
27
|
-
"pageName": "Yeni görev"
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
"pageSlug": "profil",
|
|
31
|
-
"pageName": "Profil"
|
|
32
|
-
}
|
|
33
|
-
],
|
|
34
|
-
"tabs": [
|
|
35
|
-
{
|
|
36
|
-
"pageSlug": "gorevler",
|
|
37
|
-
"label": "Görevler",
|
|
38
|
-
"icon": "list"
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
"pageSlug": "yeni",
|
|
42
|
-
"label": "Yeni",
|
|
43
|
-
"icon": "add"
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
"pageSlug": "profil",
|
|
47
|
-
"label": "Profil",
|
|
48
|
-
"icon": "user"
|
|
49
|
-
}
|
|
50
|
-
]
|
|
51
|
-
},
|
|
52
|
-
"layoutCreate": {
|
|
53
|
-
"name": "Mobil kabuk",
|
|
54
|
-
"views": [
|
|
55
|
-
{
|
|
56
|
-
"elementId": "shell_root",
|
|
57
|
-
"name": "shell_root",
|
|
58
|
-
"type": "container",
|
|
59
|
-
"kind": "component",
|
|
60
|
-
"props": {
|
|
61
|
-
"title": {
|
|
62
|
-
"type": "static",
|
|
63
|
-
"ref": null,
|
|
64
|
-
"data": ""
|
|
65
|
-
},
|
|
66
|
-
"direction": {
|
|
67
|
-
"type": "static",
|
|
68
|
-
"ref": null,
|
|
69
|
-
"data": "column"
|
|
70
|
-
},
|
|
71
|
-
"gap": {
|
|
72
|
-
"type": "static",
|
|
73
|
-
"ref": null,
|
|
74
|
-
"data": "none"
|
|
75
|
-
},
|
|
76
|
-
"size": {
|
|
77
|
-
"type": "static",
|
|
78
|
-
"ref": null,
|
|
79
|
-
"data": "grow"
|
|
80
|
-
},
|
|
81
|
-
"wrap": {
|
|
82
|
-
"type": "static",
|
|
83
|
-
"ref": null,
|
|
84
|
-
"data": false
|
|
85
|
-
}
|
|
86
|
-
},
|
|
87
|
-
"states": {
|
|
88
|
-
"isDroppable": true,
|
|
89
|
-
"isWrapper": true
|
|
90
|
-
},
|
|
91
|
-
"appearance": {
|
|
92
|
-
"heightType": "fill",
|
|
93
|
-
"widthType": "fill"
|
|
94
|
-
},
|
|
95
|
-
"blocks": [],
|
|
96
|
-
"events": [],
|
|
97
|
-
"validations": [],
|
|
98
|
-
"stateBindings": [],
|
|
99
|
-
"children": [
|
|
100
|
-
{
|
|
101
|
-
"elementId": "app_bar",
|
|
102
|
-
"name": "app_bar",
|
|
103
|
-
"type": "app-bar",
|
|
104
|
-
"kind": "component",
|
|
105
|
-
"props": {
|
|
106
|
-
"title": {
|
|
107
|
-
"type": "static",
|
|
108
|
-
"ref": null,
|
|
109
|
-
"data": ""
|
|
110
|
-
},
|
|
111
|
-
"leading": {
|
|
112
|
-
"type": "static",
|
|
113
|
-
"ref": null,
|
|
114
|
-
"data": "auto"
|
|
115
|
-
}
|
|
116
|
-
},
|
|
117
|
-
"appearance": {
|
|
118
|
-
"widthType": "fill"
|
|
119
|
-
},
|
|
120
|
-
"blocks": [],
|
|
121
|
-
"events": [],
|
|
122
|
-
"validations": [],
|
|
123
|
-
"stateBindings": [],
|
|
124
|
-
"children": []
|
|
125
|
-
},
|
|
126
|
-
{
|
|
127
|
-
"elementId": "page_slot",
|
|
128
|
-
"name": "page_slot",
|
|
129
|
-
"type": "slot",
|
|
130
|
-
"kind": "component",
|
|
131
|
-
"props": {},
|
|
132
|
-
"appearance": {
|
|
133
|
-
"widthType": "fill",
|
|
134
|
-
"heightType": "fill"
|
|
135
|
-
},
|
|
136
|
-
"blocks": [],
|
|
137
|
-
"events": [],
|
|
138
|
-
"validations": [],
|
|
139
|
-
"stateBindings": [],
|
|
140
|
-
"children": []
|
|
141
|
-
}
|
|
142
|
-
]
|
|
143
|
-
}
|
|
144
|
-
]
|
|
145
|
-
},
|
|
146
|
-
"applicationUpdate": {
|
|
147
|
-
"properties": {
|
|
148
|
-
"mobile": {
|
|
149
|
-
"tabs": {
|
|
150
|
-
"enabled": true,
|
|
151
|
-
"style": "default",
|
|
152
|
-
"showLabels": true,
|
|
153
|
-
"items": [
|
|
154
|
-
{
|
|
155
|
-
"page": "<gorevler sayfa id'si>",
|
|
156
|
-
"label": "Görevler",
|
|
157
|
-
"icon": "list"
|
|
158
|
-
},
|
|
159
|
-
{
|
|
160
|
-
"page": "<yeni sayfa id'si>",
|
|
161
|
-
"label": "Yeni",
|
|
162
|
-
"icon": "add"
|
|
163
|
-
},
|
|
164
|
-
{
|
|
165
|
-
"page": "<profil sayfa id'si>",
|
|
166
|
-
"label": "Profil",
|
|
167
|
-
"icon": "user"
|
|
168
|
-
}
|
|
169
|
-
]
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
}
|