Page Menu
Home
Code
Search
Configure Global Search
Log In
Files
F390825
ref.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
5 KB
Subscribers
None
ref.js
View Options
/*
Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
if
(
!
dojo
.
_hasResource
[
"dojox.json.ref"
]){
dojo
.
_hasResource
[
"dojox.json.ref"
]
=
true
;
dojo
.
provide
(
"dojox.json.ref"
);
dojo
.
require
(
"dojo.date.stamp"
);
dojox
.
json
.
ref
=
{
resolveJson
:
function
(
_1
,
_2
){
_2
=
_2
||
{};
var
_3
=
_2
.
idAttribute
||
"id"
;
var
_4
=
this
.
refAttribute
;
var
_5
=
_2
.
idAsRef
;
var
_6
=
_2
.
idPrefix
||
""
;
var
_7
=
_2
.
assignAbsoluteIds
;
var
_8
=
_2
.
index
||
{};
var
_9
=
_2
.
timeStamps
;
var
_a
,
_b
=
[];
var
_c
=
/^(.*\/)?(\w+:\/\/)|[^\/\.]+\/\.\.\/|^.*\/(\/)/
;
var
_d
=
this
.
_addProp
;
var
F
=
function
(){
};
function
_e
(
it
,
_f
,
_10
,
_11
,
_12
,
_13
){
var
i
,
_14
,
val
,
id
=
_3
in
it
?
it
[
_3
]
:
_10
;
if
(
_3
in
it
||
((
id
!==
undefined
)
&&
_11
)){
id
=
(
_6
+
id
).
replace
(
_c
,
"$2$3"
);
}
var
_15
=
_13
||
it
;
if
(
id
!==
undefined
){
if
(
_7
){
it
.
__id
=
id
;
}
if
(
_2
.
schemas
&&
(
!
(
it
instanceof
Array
))
&&
(
val
=
id
.
match
(
/^(.+\/)[^\.\[]*$/
))){
_12
=
_2
.
schemas
[
val
[
1
]];
}
if
(
_8
[
id
]
&&
((
it
instanceof
Array
)
==
(
_8
[
id
]
instanceof
Array
))){
_15
=
_8
[
id
];
delete
_15
.
$ref
;
delete
_15
.
_loadObject
;
_14
=
true
;
}
else
{
var
_16
=
_12
&&
_12
.
prototype
;
if
(
_16
){
F
.
prototype
=
_16
;
_15
=
new
F
();
}
}
_8
[
id
]
=
_15
;
if
(
_9
){
_9
[
id
]
=
_2
.
time
;
}
}
while
(
_12
){
var
_17
=
_12
.
properties
;
if
(
_17
){
for
(
i
in
it
){
var
_18
=
_17
[
i
];
if
(
_18
&&
_18
.
format
==
"date-time"
&&
typeof
it
[
i
]
==
"string"
){
it
[
i
]
=
dojo
.
date
.
stamp
.
fromISOString
(
it
[
i
]);
}
}
}
_12
=
_12
[
"extends"
];
}
var
_19
=
it
.
length
;
for
(
i
in
it
){
if
(
i
==
_19
){
break
;
}
if
(
it
.
hasOwnProperty
(
i
)){
val
=
it
[
i
];
if
((
typeof
val
==
"object"
)
&&
val
&&!
(
val
instanceof
Date
)
&&
i
!=
"__parent"
){
_a
=
val
[
_4
]
||
(
_5
&&
val
[
_3
]);
if
(
!
_a
||!
val
.
__parent
){
val
.
__parent
=
it
;
}
if
(
_a
){
delete
it
[
i
];
var
_1a
=
_a
.
toString
().
replace
(
/(#)([^\.\[])/
,
"$1.$2"
).
match
(
/(^([^\[]*\/)?[^#\.\[]*)#?([\.\[].*)?/
);
if
((
_a
=
(
_1a
[
1
]
==
"$"
||
_1a
[
1
]
==
"this"
||
_1a
[
1
]
==
""
)
?
_1
:
_8
[(
_6
+
_1a
[
1
]).
replace
(
_c
,
"$2$3"
)])){
if
(
_1a
[
3
]){
_1a
[
3
].
replace
(
/(\[([^\]]+)\])|(\.?([^\.\[]+))/g
,
function
(
t
,
a
,
b
,
c
,
d
){
_a
=
_a
&&
_a
[
b
?
b
.
replace
(
/[\"\'\\]/
,
""
)
:
d
];
});
}
}
if
(
_a
){
val
=
_a
;
}
else
{
if
(
!
_f
){
var
_1b
;
if
(
!
_1b
){
_b
.
push
(
_15
);
}
_1b
=
true
;
val
=
_e
(
val
,
false
,
val
[
_4
],
true
,
_18
);
val
.
_loadObject
=
_2
.
loader
;
}
}
}
else
{
if
(
!
_f
){
val
=
_e
(
val
,
_b
==
it
,
id
===
undefined
?
undefined
:
_d
(
id
,
i
),
false
,
_18
,
_15
!=
it
&&
typeof
_15
[
i
]
==
"object"
&&
_15
[
i
]);
}
}
}
it
[
i
]
=
val
;
if
(
_15
!=
it
&&!
_15
.
__isDirty
){
var
old
=
_15
[
i
];
_15
[
i
]
=
val
;
if
(
_14
&&
val
!==
old
&&!
_15
.
_loadObject
&&!
(
i
.
charAt
(
0
)
==
"_"
&&
i
.
charAt
(
1
)
==
"_"
)
&&
i
!=
"$ref"
&&!
(
val
instanceof
Date
&&
old
instanceof
Date
&&
val
.
getTime
()
==
old
.
getTime
())
&&!
(
typeof
val
==
"function"
&&
typeof
old
==
"function"
&&
val
.
toString
()
==
old
.
toString
())
&&
_8
.
onUpdate
){
_8
.
onUpdate
(
_15
,
i
,
old
,
val
);
}
}
}
}
if
(
_14
&&
(
_3
in
it
)){
for
(
i
in
_15
){
if
(
!
_15
.
__isDirty
&&
_15
.
hasOwnProperty
(
i
)
&&!
it
.
hasOwnProperty
(
i
)
&&!
(
i
.
charAt
(
0
)
==
"_"
&&
i
.
charAt
(
1
)
==
"_"
)
&&!
(
_15
instanceof
Array
&&
isNaN
(
i
))){
if
(
_8
.
onUpdate
&&
i
!=
"_loadObject"
&&
i
!=
"_idAttr"
){
_8
.
onUpdate
(
_15
,
i
,
_15
[
i
],
undefined
);
}
delete
_15
[
i
];
while
(
_15
instanceof
Array
&&
_15
.
length
&&
_15
[
_15
.
length
-
1
]
===
undefined
){
_15
.
length
--
;
}
}
}
}
else
{
if
(
_8
.
onLoad
){
_8
.
onLoad
(
_15
);
}
}
return
_15
;
};
if
(
_1
&&
typeof
_1
==
"object"
){
_1
=
_e
(
_1
,
false
,
_2
.
defaultId
,
true
);
_e
(
_b
,
false
);
}
return
_1
;
},
fromJson
:
function
(
str
,
_1c
){
function
ref
(
_1d
){
var
_1e
=
{};
_1e
[
this
.
refAttribute
]
=
_1d
;
return
_1e
;
};
try
{
var
_1f
=
eval
(
"("
+
str
+
")"
);
}
catch
(
e
){
throw
new
SyntaxError
(
"Invalid JSON string: "
+
e
.
message
+
" parsing: "
+
str
);
}
if
(
_1f
){
return
this
.
resolveJson
(
_1f
,
_1c
);
}
return
_1f
;
},
toJson
:
function
(
it
,
_20
,
_21
,
_22
){
var
_23
=
this
.
_useRefs
;
var
_24
=
this
.
_addProp
;
var
_25
=
this
.
refAttribute
;
_21
=
_21
||
""
;
var
_26
=
{};
var
_27
=
{};
function
_28
(
it
,
_29
,
_2a
){
if
(
typeof
it
==
"object"
&&
it
){
var
_2b
;
if
(
it
instanceof
Date
){
return
"\""
+
dojo
.
date
.
stamp
.
toISOString
(
it
,{
zulu
:
true
})
+
"\""
;
}
var
id
=
it
.
__id
;
if
(
id
){
if
(
_29
!=
"#"
&&
((
_23
&&!
id
.
match
(
/#/
))
||
_26
[
id
])){
var
ref
=
id
;
if
(
id
.
charAt
(
0
)
!=
"#"
){
if
(
it
.
__clientId
==
id
){
ref
=
"cid:"
+
id
;
}
else
{
if
(
id
.
substring
(
0
,
_21
.
length
)
==
_21
){
ref
=
id
.
substring
(
_21
.
length
);
}
else
{
ref
=
id
;
}
}
}
var
_2c
=
{};
_2c
[
_25
]
=
ref
;
return
_28
(
_2c
,
"#"
);
}
_29
=
id
;
}
else
{
it
.
__id
=
_29
;
_27
[
_29
]
=
it
;
}
_26
[
_29
]
=
it
;
_2a
=
_2a
||
""
;
var
_2d
=
_20
?
_2a
+
dojo
.
toJsonIndentStr
:
""
;
var
_2e
=
_20
?
"\n"
:
""
;
var
sep
=
_20
?
" "
:
""
;
if
(
it
instanceof
Array
){
var
res
=
dojo
.
map
(
it
,
function
(
obj
,
i
){
var
val
=
_28
(
obj
,
_24
(
_29
,
i
),
_2d
);
if
(
typeof
val
!=
"string"
){
val
=
"undefined"
;
}
return
_2e
+
_2d
+
val
;
});
return
"["
+
res
.
join
(
","
+
sep
)
+
_2e
+
_2a
+
"]"
;
}
var
_2f
=
[];
for
(
var
i
in
it
){
if
(
it
.
hasOwnProperty
(
i
)){
var
_30
;
if
(
typeof
i
==
"number"
){
_30
=
"\""
+
i
+
"\""
;
}
else
{
if
(
typeof
i
==
"string"
&&
(
i
.
charAt
(
0
)
!=
"_"
||
i
.
charAt
(
1
)
!=
"_"
)){
_30
=
dojo
.
_escapeString
(
i
);
}
else
{
continue
;
}
}
var
val
=
_28
(
it
[
i
],
_24
(
_29
,
i
),
_2d
);
if
(
typeof
val
!=
"string"
){
continue
;
}
_2f
.
push
(
_2e
+
_2d
+
_30
+
":"
+
sep
+
val
);
}
}
return
"{"
+
_2f
.
join
(
","
+
sep
)
+
_2e
+
_2a
+
"}"
;
}
else
{
if
(
typeof
it
==
"function"
&&
dojox
.
json
.
ref
.
serializeFunctions
){
return
it
.
toString
();
}
}
return
dojo
.
toJson
(
it
);
};
var
_31
=
_28
(
it
,
"#"
,
""
);
if
(
!
_22
){
for
(
var
i
in
_27
){
delete
_27
[
i
].
__id
;
}
}
return
_31
;
},
_addProp
:
function
(
id
,
_32
){
return
id
+
(
id
.
match
(
/#/
)
?
id
.
length
==
1
?
""
:
"."
:
"#"
)
+
_32
;
},
refAttribute
:
"$ref"
,
_useRefs
:
false
,
serializeFunctions
:
false
};
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Feb 22, 15:27 (22 h, 31 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
25191
Default Alt Text
ref.js (5 KB)
Attached To
rZED Zed
Event Timeline
Log In to Comment