github
Advanced Search
  • Home
  • Pricing and Signup
  • Explore GitHub
  • Blog
  • Login

yui / yui3

  • Admin
  • Watch Unwatch
  • Fork
  • Your Fork
  • Pull Request
  • Download Source
    • 406
    • 95
  • Source
  • Commits
  • Network (95)
  • Downloads (1,696)
  • Graphs
  • Tree: c1d524c

click here to add a description

click here to add a homepage

  • Switch Branches (1)
    • master
  • Switch Tags (1,696)
    • yui3-1948
    • yui3-1947
    • yui3-1946
    • yui3-1945
    • yui3-1944
    • yui3-1943
    • yui3-1942
    • yui3-1941
    • yui3-1940
    • yui3-1939
    • yui3-1938
    • yui3-1937
    • yui3-1936
    • yui3-1935
    • yui3-1934
    • yui3-1933
    • yui3-1932
    • yui3-1931
    • yui3-1930
    • yui3-1929
    • yui3-1928
    • yui3-1927
    • yui3-1926
    • yui3-1925
    • yui3-1924
    • yui3-1923
    • yui3-1922
    • yui3-1921
    • yui3-1920
    • yui3-1919
    • yui3-1918
    • yui3-1917
    • yui3-1916
    • yui3-1915
    • yui3-1914
    • yui3-1913
    • yui3-1912
    • yui3-1911
    • yui3-1910
    • yui3-1909
    • yui3-1908
    • yui3-1907
    • yui3-1906
    • yui3-1905
    • yui3-1904
    • yui3-1903
    • yui3-1902
    • yui3-1901
    • yui3-1900
    • yui3-1899
    • yui3-1898
    • yui3-1897
    • yui3-1896
    • yui3-1895
    • yui3-1894
    • yui3-1893
    • yui3-1892
    • yui3-1891
    • yui3-1890
    • yui3-1889
    • yui3-1888
    • yui3-1887
    • yui3-1886
    • yui3-1885
    • yui3-1884
    • yui3-1883
    • yui3-1882
    • yui3-1881
    • yui3-1880
    • yui3-1879
    • yui3-1878
    • yui3-1877
    • yui3-1876
    • yui3-1875
    • yui3-1874
    • yui3-1873
    • yui3-1872
    • yui3-1871
    • yui3-1870
    • yui3-1869
    • yui3-1868
    • yui3-1867
    • yui3-1866
    • yui3-1865
    • yui3-1864
    • yui3-1863
    • yui3-1862
    • yui3-1861
    • yui3-1860
    • yui3-1859
    • yui3-1858
    • yui3-1857
    • yui3-1856
    • yui3-1855
    • yui3-1854
    • yui3-1853
    • yui3-1852
    • yui3-1851
    • yui3-1850
    • yui3-1849
    • yui3-1848
    • yui3-1847
    • yui3-1846
    • yui3-1845
    • yui3-1844
    • yui3-1843
    • yui3-1842
    • yui3-1841
    • yui3-1840
    • yui3-1839
    • yui3-1838
    • yui3-1837
    • yui3-1836
    • yui3-1835
    • yui3-1834
    • yui3-1833
    • yui3-1832
    • yui3-1831
    • yui3-1830
    • yui3-1829
    • yui3-1828
    • yui3-1827
    • yui3-1826
    • yui3-1825
    • yui3-1824
    • yui3-1823
    • yui3-1822
    • yui3-1821
    • yui3-1820
    • yui3-1819
    • yui3-1818
    • yui3-1817
    • yui3-1816
    • yui3-1815
    • yui3-1814
    • yui3-1813
    • yui3-1812
    • yui3-1811
    • yui3-1810
    • yui3-1809
    • yui3-1808
    • yui3-1807
    • yui3-1806
    • yui3-1805
    • yui3-1804
    • yui3-1803
    • yui3-1802
    • yui3-1801
    • yui3-1800
    • yui3-1799
    • yui3-1798
    • yui3-1797
    • yui3-1796
    • yui3-1795
    • yui3-1794
    • yui3-1792
    • yui3-1791
    • yui3-1790
    • yui3-1789
    • yui3-1788
    • yui3-1787
    • yui3-1786
    • yui3-1785
    • yui3-1784
    • yui3-1783
    • yui3-1782
    • yui3-1781
    • yui3-1780
    • yui3-1779
    • yui3-1778
    • yui3-1777
    • yui3-1776
    • yui3-1775
    • yui3-1774
    • yui3-1773
    • yui3-1772
    • yui3-1771
    • yui3-1770
    • yui3-1769
    • yui3-1768
    • yui3-1767
    • yui3-1766
    • yui3-1765
    • yui3-1764
    • yui3-1763
    • yui3-1762
    • yui3-1761
    • yui3-1760
    • yui3-1759
    • yui3-1758
    • yui3-1757
    • yui3-1756
    • yui3-1755
    • yui3-1754
    • yui3-1753
    • yui3-1752
    • yui3-1751
    • yui3-1750
    • yui3-1749
    • yui3-1748
    • yui3-1747
    • yui3-1746
    • yui3-1745
    • yui3-1744
    • yui3-1743
    • yui3-1742
    • yui3-1741
    • yui3-1740
    • yui3-1739
    • yui3-1738
    • yui3-1737
    • yui3-1736
    • yui3-1735
    • yui3-1734
    • yui3-1733
    • yui3-1732
    • yui3-1731
    • yui3-1730
    • yui3-1729
    • yui3-1728
    • yui3-1727
    • yui3-1726
    • yui3-1725
    • yui3-1724
    • yui3-1723
    • yui3-1722
    • yui3-1721
    • yui3-1720
    • yui3-1719
    • yui3-1718
    • yui3-1717
    • yui3-1716
    • yui3-1715
    • yui3-1714
    • yui3-1713
    • yui3-1712
    • yui3-1711
    • yui3-1710
    • yui3-1709
    • yui3-1708
    • yui3-1707
    • yui3-1706
    • yui3-1705
    • yui3-1704
    • yui3-1703
    • yui3-1702
    • yui3-1701
    • yui3-1700
    • yui3-1699
    • yui3-1698
    • yui3-1697
    • yui3-1696
    • yui3-1695
    • yui3-1694
    • yui3-1693
    • yui3-1692
    • yui3-1691
    • yui3-1690
    • yui3-1689
    • yui3-1688
    • yui3-1687
    • yui3-1686
    • yui3-1685
    • yui3-1684
    • yui3-1683
    • yui3-1682
    • yui3-1681
    • yui3-1680
    • yui3-1679
    • yui3-1678
    • yui3-1677
    • yui3-1676
    • yui3-1675
    • yui3-1674
    • yui3-1673
    • yui3-1672
    • yui3-1671
    • yui3-1670
    • yui3-1669
    • yui3-1668
    • yui3-1667
    • yui3-1666
    • yui3-1665
    • yui3-1664
    • yui3-1663
    • yui3-1662
    • yui3-1661
    • yui3-1660
    • yui3-1659
    • yui3-1658
    • yui3-1657
    • yui3-1656
    • yui3-1655
    • yui3-1654
    • yui3-1653
    • yui3-1652
    • yui3-1651
    • yui3-1650
    • yui3-1649
    • yui3-1648
    • yui3-1647
    • yui3-1646
    • yui3-1645
    • yui3-1644
    • yui3-1643
    • yui3-1642
    • yui3-1641
    • yui3-1640
    • yui3-1639
    • yui3-1638
    • yui3-1637
    • yui3-1636
    • yui3-1635
    • yui3-1634
    • yui3-1633
    • yui3-1632
    • yui3-1631
    • yui3-1630
    • yui3-1629
    • yui3-1628
    • yui3-1627
    • yui3-1626
    • yui3-1625
    • yui3-1624
    • yui3-1623
    • yui3-1622
    • yui3-1621
    • yui3-1620
    • yui3-1619
    • yui3-1618
    • yui3-1617
    • yui3-1616
    • yui3-1615
    • yui3-1614
    • yui3-1613
    • yui3-1612
    • yui3-1611
    • yui3-1610
    • yui3-1609
    • yui3-1608
    • yui3-1607
    • yui3-1606
    • yui3-1605
    • yui3-1604
    • yui3-1603
    • yui3-1602
    • yui3-1601
    • yui3-1600
    • yui3-1599
    • yui3-1598
    • yui3-1597
    • yui3-1596
    • yui3-1595
    • yui3-1594
    • yui3-1593
    • yui3-1592
    • yui3-1591
    • yui3-1590
    • yui3-1589
    • yui3-1588
    • yui3-1587
    • yui3-1586
    • yui3-1585
    • yui3-1584
    • yui3-1583
    • yui3-1582
    • yui3-1581
    • yui3-1580
    • yui3-1579
    • yui3-1578
    • yui3-1577
    • yui3-1576
    • yui3-1575
    • yui3-1574
    • yui3-1573
    • yui3-1572
    • yui3-1571
    • yui3-1570
    • yui3-1569
    • yui3-1568
    • yui3-1567
    • yui3-1566
    • yui3-1565
    • yui3-1564
    • yui3-1563
    • yui3-1562
    • yui3-1561
    • yui3-1560
    • yui3-1559
    • yui3-1558
    • yui3-1557
    • yui3-1556
    • yui3-1555
    • yui3-1554
    • yui3-1553
    • yui3-1552
    • yui3-1551
    • yui3-1550
    • yui3-1549
    • yui3-1548
    • yui3-1547
    • yui3-1546
    • yui3-1545
    • yui3-1544
    • yui3-1543
    • yui3-1542
    • yui3-1541
    • yui3-1540
    • yui3-1539
    • yui3-1538
    • yui3-1537
    • yui3-1536
    • yui3-1535
    • yui3-1534
    • yui3-1533
    • yui3-1532
    • yui3-1531
    • yui3-1530
    • yui3-1529
    • yui3-1528
    • yui3-1527
    • yui3-1526
    • yui3-1525
    • yui3-1524
    • yui3-1523
    • yui3-1522
    • yui3-1521
    • yui3-1520
    • yui3-1519
    • yui3-1518
    • yui3-1517
    • yui3-1516
    • yui3-1515
    • yui3-1514
    • yui3-1513
    • yui3-1512
    • yui3-1511
    • yui3-1510
    • yui3-1509
    • yui3-1508
    • yui3-1507
    • yui3-1506
    • yui3-1505
    • yui3-1504
    • yui3-1503
    • yui3-1502
    • yui3-1501
    • yui3-1500
    • yui3-1499
    • yui3-1498
    • yui3-1497
    • yui3-1496
    • yui3-1495
    • yui3-1494
    • yui3-1493
    • yui3-1492
    • yui3-1491
    • yui3-1490
    • yui3-1489
    • yui3-1488
    • yui3-1487
    • yui3-1486
    • yui3-1485
    • yui3-1484
    • yui3-1483
    • yui3-1482
    • yui3-1481
    • yui3-1480
    • yui3-1479
    • yui3-1478
    • yui3-1477
    • yui3-1476
    • yui3-1475
    • yui3-1474
    • yui3-1473
    • yui3-1472
    • yui3-1471
    • yui3-1470
    • yui3-1469
    • yui3-1468
    • yui3-1467
    • yui3-1466
    • yui3-1465
    • yui3-1464
    • yui3-1463
    • yui3-1462
    • yui3-1461
    • yui3-1460
    • yui3-1459
    • yui3-1458
    • yui3-1457
    • yui3-1456
    • yui3-1455
    • yui3-1454
    • yui3-1453
    • yui3-1452
    • yui3-1451
    • yui3-1450
    • yui3-1449
    • yui3-1448
    • yui3-1447
    • yui3-1446
    • yui3-1445
    • yui3-1444
    • yui3-1443
    • yui3-1442
    • yui3-1441
    • yui3-1440
    • yui3-1439
    • yui3-1438
    • yui3-1437
    • yui3-1436
    • yui3-1435
    • yui3-1434
    • yui3-1433
    • yui3-1432
    • yui3-1431
    • yui3-1430
    • yui3-1429
    • yui3-1428
    • yui3-1427
    • yui3-1426
    • yui3-1425
    • yui3-1424
    • yui3-1423
    • yui3-1422
    • yui3-1421
    • yui3-1420
    • yui3-1419
    • yui3-1418
    • yui3-1417
    • yui3-1416
    • yui3-1415
    • yui3-1414
    • yui3-1413
    • yui3-1412
    • yui3-1411
    • yui3-1410
    • yui3-1409
    • yui3-1408
    • yui3-1407
    • yui3-1406
    • yui3-1405
    • yui3-1404
    • yui3-1403
    • yui3-1402
    • yui3-1401
    • yui3-1400
    • yui3-1399
    • yui3-1398
    • yui3-1397
    • yui3-1396
    • yui3-1395
    • yui3-1394
    • yui3-1393
    • yui3-1392
    • yui3-1391
    • yui3-1390
    • yui3-1389
    • yui3-1388
    • yui3-1387
    • yui3-1386
    • yui3-1385
    • yui3-1384
    • yui3-1383
    • yui3-1382
    • yui3-1381
    • yui3-1380
    • yui3-1379
    • yui3-1378
    • yui3-1377
    • yui3-1376
    • yui3-1375
    • yui3-1374
    • yui3-1373
    • yui3-1372
    • yui3-1371
    • yui3-1370
    • yui3-1369
    • yui3-1368
    • yui3-1367
    • yui3-1366
    • yui3-1365
    • yui3-1364
    • yui3-1363
    • yui3-1362
    • yui3-1361
    • yui3-1360
    • yui3-1359
    • yui3-1358
    • yui3-1357
    • yui3-1356
    • yui3-1355
    • yui3-1354
    • yui3-1353
    • yui3-1352
    • yui3-1351
    • yui3-1350
    • yui3-1349
    • yui3-1348
    • yui3-1347
    • yui3-1346
    • yui3-1345
    • yui3-1344
    • yui3-1343
    • yui3-1342
    • yui3-1341
    • yui3-1340
    • yui3-1339
    • yui3-1338
    • yui3-1337
    • yui3-1336
    • yui3-1335
    • yui3-1334
    • yui3-1333
    • yui3-1332
    • yui3-1331
    • yui3-1330
    • yui3-1329
    • yui3-1328
    • yui3-1327
    • yui3-1326
    • yui3-1325
    • yui3-1324
    • yui3-1323
    • yui3-1322
    • yui3-1321
    • yui3-1320
    • yui3-1319
    • yui3-1318
    • yui3-1317
    • yui3-1316
    • yui3-1315
    • yui3-1314
    • yui3-1313
    • yui3-1312
    • yui3-1311
    • yui3-1310
    • yui3-1309
    • yui3-1308
    • yui3-1307
    • yui3-1306
    • yui3-1305
    • yui3-1304
    • yui3-1303
    • yui3-1302
    • yui3-1301
    • yui3-1300
    • yui3-1299
    • yui3-1298
    • yui3-1297
    • yui3-1296
    • yui3-1295
    • yui3-1294
    • yui3-1293
    • yui3-1292
    • yui3-1291
    • yui3-1290
    • yui3-1289
    • yui3-1288
    • yui3-1287
    • yui3-1286
    • yui3-1285
    • yui3-1284
    • yui3-1283
    • yui3-1282
    • yui3-1281
    • yui3-1280
    • yui3-1279
    • yui3-1278
    • yui3-1277
    • yui3-1276
    • yui3-1275
    • yui3-1274
    • yui3-1273
    • yui3-1272
    • yui3-1271
    • yui3-1270
    • yui3-1269
    • yui3-1268
    • yui3-1267
    • yui3-1266
    • yui3-1265
    • yui3-1264
    • yui3-1263
    • yui3-1262
    • yui3-1261
    • yui3-1260
    • yui3-1259
    • yui3-1258
    • yui3-1257
    • yui3-1256
    • yui3-1255
    • yui3-1254
    • yui3-1253
    • yui3-1252
    • yui3-1251
    • yui3-1250
    • yui3-1249
    • yui3-1248
    • yui3-1247
    • yui3-1246
    • yui3-1245
    • yui3-1244
    • yui3-1243
    • yui3-1242
    • yui3-1241
    • yui3-1240
    • yui3-1239
    • yui3-1238
    • yui3-1237
    • yui3-1236
    • yui3-1235
    • yui3-1234
    • yui3-1233
    • yui3-1232
    • yui3-1231
    • yui3-1230
    • yui3-1229
    • yui3-1228
    • yui3-1227
    • yui3-1226
    • yui3-1225
    • yui3-1224
    • yui3-1223
    • yui3-1222
    • yui3-1221
    • yui3-1220
    • yui3-1219
    • yui3-1218
    • yui3-1216
    • yui3-1215
    • yui3-1214
    • yui3-1213
    • yui3-1212
    • yui3-1211
    • yui3-1210
    • yui3-1209
    • yui3-1208
    • yui3-1207
    • yui3-1206
    • yui3-1205
    • yui3-1204
    • yui3-1203
    • yui3-1202
    • yui3-1201
    • yui3-1200
    • yui3-1199
    • yui3-1198
    • yui3-1197
    • yui3-1196
    • yui3-1195
    • yui3-1194
    • yui3-1193
    • yui3-1192
    • yui3-1191
    • yui3-1190
    • yui3-1189
    • yui3-1188
    • yui3-1187
    • yui3-1186
    • yui3-1185
    • yui3-1184
    • yui3-1183
    • yui3-1182
    • yui3-1181
    • yui3-1180
    • yui3-1179
    • yui3-1178
    • yui3-1177
    • yui3-1176
    • yui3-1175
    • yui3-1174
    • yui3-1173
    • yui3-1172
    • yui3-1171
    • yui3-1170
    • yui3-1169
    • yui3-1168
    • yui3-1167
    • yui3-1166
    • yui3-1165
    • yui3-1164
    • yui3-1163
    • yui3-1162
    • yui3-1161
    • yui3-1160
    • yui3-1159
    • yui3-1158
    • yui3-1157
    • yui3-1156
    • yui3-1155
    • yui3-1154
    • yui3-1153
    • yui3-1152
    • yui3-1151
    • yui3-1150
    • yui3-1149
    • yui3-1148
    • yui3-1147
    • yui3-1146
    • yui3-1145
    • yui3-1144
    • yui3-1143
    • yui3-1142
    • yui3-1141
    • yui3-1140
    • yui3-1139
    • yui3-1138
    • yui3-1137
    • yui3-1136
    • yui3-1135
    • yui3-1134
    • yui3-1133
    • yui3-1132
    • yui3-1131
    • yui3-1130
    • yui3-1129
    • yui3-1128
    • yui3-1127
    • yui3-1126
    • yui3-1125
    • yui3-1124
    • yui3-1123
    • yui3-1122
    • yui3-1121
    • yui3-1120
    • yui3-1119
    • yui3-1118
    • yui3-1117
    • yui3-1116
    • yui3-1115
    • yui3-1114
    • yui3-1113
    • yui3-1112
    • yui3-1111
    • yui3-1110
    • yui3-1109
    • yui3-1108
    • yui3-1107
    • yui3-1106
    • yui3-1105
    • yui3-1104
    • yui3-1103
    • yui3-1102
    • yui3-1101
    • yui3-1100
    • yui3-1099
    • yui3-1098
    • yui3-1097
    • yui3-1096
    • yui3-1095
    • yui3-1094
    • yui3-1093
    • yui3-1092
    • yui3-1091
    • yui3-1090
    • yui3-1089
    • yui3-1088
    • yui3-1087
    • yui3-1086
    • yui3-1085
    • yui3-1084
    • yui3-1083
    • yui3-1082
    • yui3-1081
    • yui3-1080
    • yui3-1079
    • yui3-1078
    • yui3-1077
    • yui3-1076
    • yui3-1075
    • yui3-1074
    • yui3-1073
    • yui3-1072
    • yui3-1071
    • yui3-1070
    • yui3-1069
    • yui3-1068
    • yui3-1067
    • yui3-1066
    • yui3-1065
    • yui3-1064
    • yui3-1063
    • yui3-1062
    • yui3-1061
    • yui3-1060
    • yui3-1059
    • yui3-1058
    • yui3-1057
    • yui3-1056
    • yui3-1055
    • yui3-1054
    • yui3-1053
    • yui3-1052
    • yui3-1051
    • yui3-1050
    • yui3-1049
    • yui3-1048
    • yui3-1047
    • yui3-1046
    • yui3-1045
    • yui3-1044
    • yui3-1043
    • yui3-1042
    • yui3-1041
    • yui3-1040
    • yui3-1034
    • yui3-1033
    • yui3-1032
    • yui3-1031
    • yui3-1030
    • yui3-1029
    • yui3-1028
    • yui3-1027
    • yui3-1026
    • yui3-1025
    • yui3-1024
    • yui3-1023
    • yui3-1022
    • yui3-1021
    • yui3-1020
    • yui3-1019
    • yui3-1018
    • yui3-1017
    • yui3-1016
    • yui3-1015
    • yui3-1014
    • yui3-1013
    • yui3-1012
    • yui3-1011
    • yui3-1010
    • yui3-1009
    • yui3-1008
    • yui3-1007
    • yui3-1006
    • yui3-1005
    • yui3-1004
    • yui3-1003
    • yui3-1002
    • yui3-1001
    • yui3-1000
    • yui3-999
    • yui3-998
    • yui3-997
    • yui3-996
    • yui3-995
    • yui3-994
    • yui3-993
    • yui3-992
    • yui3-991
    • yui3-990
    • yui3-989
    • yui3-988
    • yui3-987
    • yui3-986
    • yui3-985
    • yui3-984
    • yui3-983
    • yui3-982
    • yui3-981
    • yui3-980
    • yui3-979
    • yui3-978
    • yui3-977
    • yui3-976
    • yui3-975
    • yui3-974
    • yui3-973
    • yui3-972
    • yui3-971
    • yui3-970
    • yui3-969
    • yui3-968
    • yui3-967
    • yui3-966
    • yui3-965
    • yui3-964
    • yui3-963
    • yui3-962
    • yui3-961
    • yui3-960
    • yui3-959
    • yui3-958
    • yui3-957
    • yui3-956
    • yui3-955
    • yui3-954
    • yui3-953
    • yui3-952
    • yui3-951
    • yui3-950
    • yui3-949
    • yui3-948
    • yui3-947
    • yui3-946
    • yui3-945
    • yui3-944
    • yui3-943
    • yui3-942
    • yui3-941
    • yui3-940
    • yui3-939
    • yui3-938
    • yui3-937
    • yui3-936
    • yui3-935
    • yui3-934
    • yui3-933
    • yui3-932
    • yui3-931
    • yui3-930
    • yui3-929
    • yui3-928
    • yui3-927
    • yui3-926
    • yui3-925
    • yui3-924
    • yui3-923
    • yui3-922
    • yui3-921
    • yui3-920
    • yui3-919
    • yui3-918
    • yui3-917
    • yui3-916
    • yui3-915
    • yui3-914
    • yui3-913
    • yui3-912
    • yui3-911
    • yui3-910
    • yui3-909
    • yui3-908
    • yui3-907
    • yui3-906
    • yui3-905
    • yui3-904
    • yui3-903
    • yui3-902
    • yui3-901
    • yui3-900
    • yui3-899
    • yui3-898
    • yui3-897
    • yui3-896
    • yui3-895
    • yui3-894
    • yui3-893
    • yui3-892
    • yui3-891
    • yui3-890
    • yui3-889
    • yui3-888
    • yui3-887
    • yui3-886
    • yui3-885
    • yui3-884
    • yui3-883
    • yui3-882
    • yui3-881
    • yui3-880
    • yui3-879
    • yui3-878
    • yui3-877
    • yui3-876
    • yui3-875
    • yui3-874
    • yui3-873
    • yui3-872
    • yui3-871
    • yui3-870
    • yui3-869
    • yui3-868
    • yui3-867
    • yui3-866
    • yui3-865
    • yui3-864
    • yui3-863
    • yui3-862
    • yui3-861
    • yui3-860
    • yui3-859
    • yui3-858
    • yui3-857
    • yui3-856
    • yui3-855
    • yui3-854
    • yui3-853
    • yui3-852
    • yui3-851
    • yui3-850
    • yui3-849
    • yui3-848
    • yui3-847
    • yui3-846
    • yui3-845
    • yui3-844
    • yui3-843
    • yui3-842
    • yui3-841
    • yui3-840
    • yui3-839
    • yui3-838
    • yui3-837
    • yui3-836
    • yui3-835
    • yui3-834
    • yui3-833
    • yui3-832
    • yui3-831
    • yui3-830
    • yui3-829
    • yui3-828
    • yui3-827
    • yui3-826
    • yui3-825
    • yui3-824
    • yui3-823
    • yui3-822
    • yui3-821
    • yui3-820
    • yui3-819
    • yui3-818
    • yui3-817
    • yui3-816
    • yui3-815
    • yui3-814
    • yui3-813
    • yui3-812
    • yui3-811
    • yui3-810
    • yui3-809
    • yui3-808
    • yui3-807
    • yui3-806
    • yui3-805
    • yui3-804
    • yui3-803
    • yui3-802
    • yui3-801
    • yui3-800
    • yui3-799
    • yui3-798
    • yui3-797
    • yui3-796
    • yui3-795
    • yui3-794
    • yui3-793
    • yui3-792
    • yui3-791
    • yui3-790
    • yui3-789
    • yui3-788
    • yui3-787
    • yui3-786
    • yui3-785
    • yui3-784
    • yui3-783
    • yui3-782
    • yui3-781
    • yui3-780
    • yui3-779
    • yui3-778
    • yui3-777
    • yui3-776
    • yui3-775
    • yui3-774
    • yui3-773
    • yui3-772
    • yui3-771
    • yui3-770
    • yui3-769
    • yui3-768
    • yui3-767
    • yui3-766
    • yui3-765
    • yui3-764
    • yui3-763
    • yui3-762
    • yui3-761
    • yui3-760
    • yui3-759
    • yui3-758
    • yui3-757
    • yui3-756
    • yui3-755
    • yui3-754
    • yui3-753
    • yui3-752
    • yui3-751
    • yui3-750
    • yui3-749
    • yui3-748
    • yui3-747
    • yui3-746
    • yui3-745
    • yui3-744
    • yui3-743
    • yui3-742
    • yui3-741
    • yui3-740
    • yui3-739
    • yui3-738
    • yui3-737
    • yui3-736
    • yui3-735
    • yui3-734
    • yui3-733
    • yui3-732
    • yui3-731
    • yui3-730
    • yui3-729
    • yui3-728
    • yui3-727
    • yui3-726
    • yui3-725
    • yui3-724
    • yui3-723
    • yui3-722
    • yui3-721
    • yui3-720
    • yui3-719
    • yui3-718
    • yui3-717
    • yui3-716
    • yui3-715
    • yui3-714
    • yui3-713
    • yui3-712
    • yui3-711
    • yui3-710
    • yui3-709
    • yui3-708
    • yui3-707
    • yui3-706
    • yui3-705
    • yui3-704
    • yui3-703
    • yui3-702
    • yui3-701
    • yui3-700
    • yui3-699
    • yui3-698
    • yui3-697
    • yui3-696
    • yui3-695
    • yui3-694
    • yui3-693
    • yui3-692
    • yui3-691
    • yui3-690
    • yui3-689
    • yui3-688
    • yui3-687
    • yui3-686
    • yui3-685
    • yui3-684
    • yui3-683
    • yui3-682
    • yui3-681
    • yui3-680
    • yui3-679
    • yui3-678
    • yui3-677
    • yui3-676
    • yui3-675
    • yui3-674
    • yui3-673
    • yui3-672
    • yui3-671
    • yui3-670
    • yui3-669
    • yui3-668
    • yui3-667
    • yui3-666
    • yui3-665
    • yui3-664
    • yui3-663
    • yui3-662
    • yui3-661
    • yui3-660
    • yui3-659
    • yui3-658
    • yui3-657
    • yui3-656
    • yui3-655
    • yui3-654
    • yui3-653
    • yui3-652
    • yui3-651
    • yui3-650
    • yui3-649
    • yui3-648
    • yui3-647
    • yui3-646
    • yui3-645
    • yui3-644
    • yui3-643
    • yui3-642
    • yui3-641
    • yui3-640
    • yui3-639
    • yui3-638
    • yui3-637
    • yui3-636
    • yui3-635
    • yui3-634
    • yui3-633
    • yui3-632
    • yui3-631
    • yui3-630
    • yui3-629
    • yui3-628
    • yui3-627
    • yui3-626
    • yui3-625
    • yui3-624
    • yui3-623
    • yui3-622
    • yui3-621
    • yui3-620
    • yui3-619
    • yui3-618
    • yui3-617
    • yui3-616
    • yui3-615
    • yui3-614
    • yui3-613
    • yui3-612
    • yui3-611
    • yui3-610
    • yui3-609
    • yui3-608
    • yui3-607
    • yui3-606
    • yui3-605
    • yui3-604
    • yui3-603
    • yui3-602
    • yui3-601
    • yui3-600
    • yui3-599
    • yui3-598
    • yui3-597
    • yui3-596
    • yui3-595
    • yui3-594
    • yui3-593
    • yui3-592
    • yui3-591
    • yui3-590
    • yui3-589
    • yui3-588
    • yui3-587
    • yui3-586
    • yui3-585
    • yui3-584
    • yui3-583
    • yui3-582
    • yui3-581
    • yui3-580
    • yui3-579
    • yui3-578
    • yui3-577
    • yui3-576
    • yui3-575
    • yui3-574
    • yui3-573
    • yui3-572
    • yui3-571
    • yui3-570
    • yui3-569
    • yui3-568
    • yui3-567
    • yui3-566
    • yui3-565
    • yui3-564
    • yui3-563
    • yui3-562
    • yui3-561
    • yui3-560
    • yui3-559
    • yui3-558
    • yui3-557
    • yui3-556
    • yui3-555
    • yui3-554
    • yui3-553
    • yui3-552
    • yui3-551
    • yui3-550
    • yui3-549
    • yui3-548
    • yui3-547
    • yui3-546
    • yui3-545
    • yui3-544
    • yui3-543
    • yui3-542
    • yui3-541
    • yui3-540
    • yui3-539
    • yui3-538
    • yui3-537
    • yui3-536
    • yui3-535
    • yui3-534
    • yui3-533
    • yui3-532
    • yui3-531
    • yui3-530
    • yui3-529
    • yui3-528
    • yui3-527
    • yui3-526
    • yui3-525
    • yui3-524
    • yui3-523
    • yui3-522
    • yui3-521
    • yui3-520
    • yui3-519
    • yui3-518
    • yui3-517
    • yui3-516
    • yui3-515
    • yui3-514
    • yui3-513
    • yui3-512
    • yui3-511
    • yui3-510
    • yui3-509
    • yui3-508
    • yui3-507
    • yui3-506
    • yui3-505
    • yui3-504
    • yui3-503
    • yui3-502
    • yui3-501
    • yui3-500
    • yui3-499
    • yui3-498
    • yui3-497
    • yui3-496
    • yui3-495
    • yui3-494
    • yui3-493
    • yui3-492
    • yui3-491
    • yui3-490
    • yui3-489
    • yui3-488
    • yui3-487
    • yui3-486
    • yui3-485
    • yui3-484
    • yui3-483
    • yui3-482
    • yui3-481
    • yui3-480
    • yui3-479
    • yui3-478
    • yui3-477
    • yui3-476
    • yui3-475
    • yui3-474
    • yui3-473
    • yui3-472
    • yui3-471
    • yui3-470
    • yui3-469
    • yui3-468
    • yui3-467
    • yui3-466
    • yui3-465
    • yui3-464
    • yui3-463
    • yui3-462
    • yui3-461
    • yui3-460
    • yui3-459
    • yui3-458
    • yui3-457
    • yui3-456
    • yui3-455
    • yui3-454
    • yui3-453
    • yui3-452
    • yui3-451
    • yui3-450
    • yui3-449
    • yui3-448
    • yui3-447
    • yui3-446
    • yui3-445
    • yui3-444
    • yui3-443
    • yui3-442
    • yui3-441
    • yui3-440
    • yui3-439
    • yui3-438
    • yui3-437
    • yui3-436
    • yui3-435
    • yui3-434
    • yui3-433
    • yui3-432
    • yui3-431
    • yui3-430
    • yui3-429
    • yui3-428
    • yui3-427
    • yui3-426
    • yui3-425
    • yui3-424
    • yui3-423
    • yui3-422
    • yui3-421
    • yui3-420
    • yui3-419
    • yui3-418
    • yui3-417
    • yui3-416
    • yui3-415
    • yui3-414
    • yui3-413
    • yui3-412
    • yui3-411
    • yui3-410
    • yui3-409
    • yui3-408
    • yui3-407
    • yui3-406
    • yui3-405
    • yui3-404
    • yui3-403
    • yui3-402
    • yui3-401
    • yui3-400
    • yui3-399
    • yui3-398
    • yui3-397
    • yui3-396
    • yui3-395
    • yui3-394
    • yui3-393
    • yui3-392
    • yui3-391
    • yui3-390
    • yui3-389
    • yui3-388
    • yui3-387
    • yui3-386
    • yui3-385
    • yui3-384
    • yui3-383
    • yui3-382
    • yui3-381
    • yui3-380
    • yui3-379
    • yui3-378
    • yui3-377
    • yui3-376
    • yui3-375
    • yui3-374
    • yui3-373
    • yui3-372
    • yui3-371
    • yui3-370
    • yui3-369
    • yui3-368
    • yui3-367
    • yui3-366
    • yui3-365
    • yui3-364
    • yui3-363
    • yui3-362
    • yui3-361
    • yui3-360
    • yui3-359
    • yui3-358
    • yui3-357
    • yui3-356
    • yui3-355
    • yui3-354
    • yui3-353
    • yui3-352
    • yui3-351
    • yui3-350
    • yui3-349
    • yui3-348
    • yui3-347
    • yui3-346
    • yui3-345
    • yui3-344
    • yui3-343
    • yui3-342
    • yui3-341
    • yui3-340
    • yui3-339
    • yui3-338
    • yui3-337
    • yui3-336
    • yui3-335
    • yui3-334
    • yui3-333
    • yui3-332
    • yui3-331
    • yui3-330
    • yui3-329
    • yui3-328
    • yui3-327
    • yui3-326
    • yui3-325
    • yui3-324
    • yui3-323
    • yui3-322
    • yui3-321
    • yui3-320
    • yui3-319
    • yui3-318
    • yui3-317
    • yui3-316
    • yui3-315
    • yui3-314
    • yui3-313
    • yui3-312
    • yui3-311
    • yui3-310
    • yui3-309
    • yui3-308
    • yui3-307
    • yui3-306
    • yui3-305
    • yui3-304
    • yui3-303
    • yui3-302
    • yui3-301
    • yui3-300
    • yui3-299
    • yui3-298
    • yui3-297
    • yui3-296
    • yui3-295
    • yui3-294
    • yui3-293
    • yui3-292
    • yui3-291
    • yui3-290
    • yui3-289
    • yui3-288
    • yui3-287
    • yui3-286
    • yui3-285
    • yui3-284
    • yui3-283
    • yui3-282
    • yui3-281
    • yui3-280
    • yui3-279
    • yui3-278
    • yui3-277
    • yui3-276
    • yui3-275
    • yui3-274
    • yui3-273
    • yui3-272
    • yui3-271
    • yui3-270
    • yui3-269
    • yui3-268
    • yui3-267
    • yui3-266
    • yui3-265
    • yui3-264
    • yui3-263
    • yui3-262
    • yui3-261
    • yui3-260
    • yui3-259
    • yui3-258
    • yui3-257
    • yui3-256
    • yui3-255
    • yui3-254
    • 3.1.0pr2
    • 3.1.0pr1
    • 3.0.0pr2
    • 3.0.0beta1m3
    • 3.0.0beta1m2
    • 3.0.0beta1m1
    • 3.0.0b1
    • 3.0.0
  • Comments
Sending Request…

YUI 3.x Source Tree — Read more

  Cancel

http://developer.yahoo.com/yui/3/

  Cancel
  • Private
  • Read-Only
  • HTTP Read-Only

This URL has Read+Write access

Added support to allow custom component developers to define their own CSS 
class name and event prefixes. Fixes #2430621
sdesai (author)
Thu Feb 04 16:59:06 -0800 2010
commit  c1d524cd9449102e425e6bbf86cbb3b327cadf77
tree    294509d581ff2d51506305731122d3d6de7197a9
parent  bc90cae1b30431a8fdbeb9ef4201ce6b52bf5e88
M build/base/base-base-debug.js 20 •••••
M build/base/base-base-min.js 2 ••
M build/base/base-base.js 20 •••••
M build/base/base-debug.js 20 •••••
M build/base/base-min.js 2 ••
M build/base/base.js 20 •••••
M build/classnamemanager/classnamemanager-debug.js 16 ••••
M build/classnamemanager/classnamemanager-min.js 2 ••
M build/classnamemanager/classnamemanager.js 16 ••••
M build/widget/widget-base-debug.js 26 ••••
M build/widget/widget-base-min.js 2 ••
M build/widget/widget-base.js 26 ••••
M build/widget/widget-debug.js 26 ••••
M build/widget/widget-min.js 2 ••
M build/widget/widget.js 26 ••••
M src/base/README 3 •••
M src/base/js/Base.js 20 •••••
M src/classnamemanager/js/classnamemanager.js 18 ••••
M src/classnamemanager/tests/classnamemanager.html 19 ••••
M src/widget/README 7 ••••
M src/widget/js/Widget.js 26 ••••
0
build/base/base-base-debug.js
...
85
86
87
 
 
 
 
 
 
 
 
 
 
88
89
90
...
175
176
177
178
179
180
181
182
183
184
185
 
186
187
188
...
561
562
563
 
564
565
566
...
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
...
185
186
187
 
 
 
 
 
 
 
 
188
189
190
191
...
564
565
566
567
568
569
570
0
@@ -85,6 +85,16 @@ YUI.add('base-base', function(Y) {
0
 
0
         if (this._lazyAddAttrs !== false) { this._lazyAddAttrs = true; }
0
 
0
+        /**
0
+         * The string used to identify the class of this object.
0
+         *
0
+         * @deprecated Use this.constructor.NAME
0
+         * @property name
0
+         * @type String
0
+         */
0
+        this.name = this.constructor.NAME;
0
+        this._eventPrefix = this.constructor.EVENT_PREFIX || this.constructor.NAME;
0
+
0
         this.init.apply(this, arguments);
0
     }
0
 
0
@@ -175,14 +185,7 @@ YUI.add('base-base', function(Y) {
0
         init: function(config) {
0
             Y.log('init called', 'life', 'base');
0
 
0
-            /**
0
-             * The string used to identify the class of this object.
0
-             *
0
-             * @deprecated Use this.constructor.NAME
0
-             * @property name
0
-             * @type String
0
-             */
0
-            this._yuievt.config.prefix = this.name = this.constructor.NAME;
0
+            this._yuievt.config.prefix = this._eventPrefix;
0
 
0
             /**
0
              * <p>
0
@@ -561,6 +564,7 @@ YUI.add('base-base', function(Y) {
0
         toString: function() {
0
             return this.constructor.NAME + "[" + Y.stamp(this) + "]";
0
         }
0
+
0
     };
0
 
0
     // Straightup augment, no wrapper functions
0
build/base/base-base-min.js
...
1
2
 
3
...
 
1
2
3
0
@@ -1 +1 @@
0
-YUI.add("base-base",function(B){var I=B.Object,K=B.Lang,J=".",G="destroy",R="init",Q="initialized",H="destroyed",D="initializer",N="bubbleTargets",E="_bubbleTargets",C=Object.prototype.constructor,M="deep",S="shallow",P="destructor",A=B.Attribute;function F(){A.call(this);var L=B.Plugin&&B.Plugin.Host;if(this._initPlugins&&L){L.call(this);}if(this._lazyAddAttrs!==false){this._lazyAddAttrs=true;}this.init.apply(this,arguments);}F._ATTR_CFG=A._ATTR_CFG.concat("cloneDefaultValue");F.NAME="base";F.ATTRS={initialized:{readOnly:true,value:false},destroyed:{readOnly:true,value:false}};F.prototype={init:function(L){this._yuievt.config.prefix=this.name=this.constructor.NAME;this.publish(R,{queuable:false,fireOnce:true,defaultFn:this._defInitFn});this._preInitEventCfg(L);this.fire(R,{cfg:L});return this;},_preInitEventCfg:function(O){if(O){if(O.on){this.on(O.on);}if(O.after){this.after(O.after);}}var T,L,V,U=(O&&N in O);if(U||E in this){V=U?(O&&O.bubbleTargets):this._bubbleTargets;if(K.isArray(V)){for(T=0,L=V.length;T<L;T++){this.addTarget(V[T]);}}else{if(V){this.addTarget(V);}}}},destroy:function(){this.publish(G,{queuable:false,fireOnce:true,defaultFn:this._defDestroyFn});this.fire(G);return this;},_defInitFn:function(L){this._initHierarchy(L.cfg);if(this._initPlugins){this._initPlugins(L.cfg);}this._set(Q,true);},_defDestroyFn:function(L){this._destroyHierarchy();if(this._destroyPlugins){this._destroyPlugins();}this._set(H,true);},_getClasses:function(){if(!this._classes){this._initHierarchyData();}return this._classes;},_getAttrCfgs:function(){if(!this._attrs){this._initHierarchyData();}return this._attrs;},_filterAttrCfgs:function(V,O){var T=null,L,U=V.ATTRS;if(U){for(L in U){if(U.hasOwnProperty(L)&&O[L]){T=T||{};T[L]=O[L];delete O[L];}}}return T;},_initHierarchyData:function(){var T=this.constructor,O=[],L=[];while(T){O[O.length]=T;if(T.ATTRS){L[L.length]=T.ATTRS;}T=T.superclass?T.superclass.constructor:null;}this._classes=O;this._attrs=this._aggregateAttrs(L);},_aggregateAttrs:function(Y){var V,Z,U,L,a,O,X,T=F._ATTR_CFG,W={};if(Y){for(O=Y.length-1;O>=0;--O){Z=Y[O];for(V in Z){if(Z.hasOwnProperty(V)){U=B.mix({},Z[V],true,T);L=U.value;X=U.cloneDefaultValue;if(L){if((X===undefined&&(C===L.constructor||K.isArray(L)))||X===M||X===true){U.value=B.clone(L);}else{if(X===S){U.value=B.merge(L);}}}a=null;if(V.indexOf(J)!==-1){a=V.split(J);V=a.shift();}if(a&&W[V]&&W[V].value){I.setValue(W[V].value,a,L);}else{if(!a){if(!W[V]){W[V]=U;}else{B.mix(W[V],U,true,T);}}}}}}}return W;},_initHierarchy:function(W){var T=this._lazyAddAttrs,X,Y,Z,U,O,V=this._getClasses(),L=this._getAttrCfgs();for(Z=V.length-1;Z>=0;Z--){X=V[Z];Y=X.prototype;if(X._yuibuild&&X._yuibuild.exts){for(U=0,O=X._yuibuild.exts.length;U<O;U++){X._yuibuild.exts[U].apply(this,arguments);}}this.addAttrs(this._filterAttrCfgs(X,L),W,T);if(Y.hasOwnProperty(D)){Y.initializer.apply(this,arguments);}}},_destroyHierarchy:function(){var V,O,U,L,T=this._getClasses();for(U=0,L=T.length;U<L;U++){V=T[U];O=V.prototype;if(O.hasOwnProperty(P)){O.destructor.apply(this,arguments);}}},toString:function(){return this.constructor.NAME+"["+B.stamp(this)+"]";}};B.mix(F,A,false,null,1);F.prototype.constructor=F;B.Base=F;},"@VERSION@",{requires:["attribute-base"]});
0
\ No newline at end of file
0
+YUI.add("base-base",function(B){var I=B.Object,K=B.Lang,J=".",G="destroy",R="init",Q="initialized",H="destroyed",D="initializer",N="bubbleTargets",E="_bubbleTargets",C=Object.prototype.constructor,M="deep",S="shallow",P="destructor",A=B.Attribute;function F(){A.call(this);var L=B.Plugin&&B.Plugin.Host;if(this._initPlugins&&L){L.call(this);}if(this._lazyAddAttrs!==false){this._lazyAddAttrs=true;}this.name=this.constructor.NAME;this._eventPrefix=this.constructor.EVENT_PREFIX||this.constructor.NAME;this.init.apply(this,arguments);}F._ATTR_CFG=A._ATTR_CFG.concat("cloneDefaultValue");F.NAME="base";F.ATTRS={initialized:{readOnly:true,value:false},destroyed:{readOnly:true,value:false}};F.prototype={init:function(L){this._yuievt.config.prefix=this._eventPrefix;this.publish(R,{queuable:false,fireOnce:true,defaultFn:this._defInitFn});this._preInitEventCfg(L);this.fire(R,{cfg:L});return this;},_preInitEventCfg:function(O){if(O){if(O.on){this.on(O.on);}if(O.after){this.after(O.after);}}var T,L,V,U=(O&&N in O);if(U||E in this){V=U?(O&&O.bubbleTargets):this._bubbleTargets;if(K.isArray(V)){for(T=0,L=V.length;T<L;T++){this.addTarget(V[T]);}}else{if(V){this.addTarget(V);}}}},destroy:function(){this.publish(G,{queuable:false,fireOnce:true,defaultFn:this._defDestroyFn});this.fire(G);return this;},_defInitFn:function(L){this._initHierarchy(L.cfg);if(this._initPlugins){this._initPlugins(L.cfg);}this._set(Q,true);},_defDestroyFn:function(L){this._destroyHierarchy();if(this._destroyPlugins){this._destroyPlugins();}this._set(H,true);},_getClasses:function(){if(!this._classes){this._initHierarchyData();}return this._classes;},_getAttrCfgs:function(){if(!this._attrs){this._initHierarchyData();}return this._attrs;},_filterAttrCfgs:function(V,O){var T=null,L,U=V.ATTRS;if(U){for(L in U){if(U.hasOwnProperty(L)&&O[L]){T=T||{};T[L]=O[L];delete O[L];}}}return T;},_initHierarchyData:function(){var T=this.constructor,O=[],L=[];while(T){O[O.length]=T;if(T.ATTRS){L[L.length]=T.ATTRS;}T=T.superclass?T.superclass.constructor:null;}this._classes=O;this._attrs=this._aggregateAttrs(L);},_aggregateAttrs:function(Y){var V,Z,U,L,a,O,X,T=F._ATTR_CFG,W={};if(Y){for(O=Y.length-1;O>=0;--O){Z=Y[O];for(V in Z){if(Z.hasOwnProperty(V)){U=B.mix({},Z[V],true,T);L=U.value;X=U.cloneDefaultValue;if(L){if((X===undefined&&(C===L.constructor||K.isArray(L)))||X===M||X===true){U.value=B.clone(L);}else{if(X===S){U.value=B.merge(L);}}}a=null;if(V.indexOf(J)!==-1){a=V.split(J);V=a.shift();}if(a&&W[V]&&W[V].value){I.setValue(W[V].value,a,L);}else{if(!a){if(!W[V]){W[V]=U;}else{B.mix(W[V],U,true,T);}}}}}}}return W;},_initHierarchy:function(W){var T=this._lazyAddAttrs,X,Y,Z,U,O,V=this._getClasses(),L=this._getAttrCfgs();for(Z=V.length-1;Z>=0;Z--){X=V[Z];Y=X.prototype;if(X._yuibuild&&X._yuibuild.exts){for(U=0,O=X._yuibuild.exts.length;U<O;U++){X._yuibuild.exts[U].apply(this,arguments);}}this.addAttrs(this._filterAttrCfgs(X,L),W,T);if(Y.hasOwnProperty(D)){Y.initializer.apply(this,arguments);}}},_destroyHierarchy:function(){var V,O,U,L,T=this._getClasses();for(U=0,L=T.length;U<L;U++){V=T[U];O=V.prototype;if(O.hasOwnProperty(P)){O.destructor.apply(this,arguments);}}},toString:function(){return this.constructor.NAME+"["+B.stamp(this)+"]";}};B.mix(F,A,false,null,1);F.prototype.constructor=F;B.Base=F;},"@VERSION@",{requires:["attribute-base"]});
0
\ No newline at end of file
0
build/base/base-base.js
...
84
85
86
 
 
 
 
 
 
 
 
 
 
87
88
89
...
173
174
175
176
177
178
179
180
181
182
183
 
184
185
186
...
556
557
558
 
559
560
561
...
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
...
183
184
185
 
 
 
 
 
 
 
 
186
187
188
189
...
559
560
561
562
563
564
565
0
@@ -84,6 +84,16 @@ YUI.add('base-base', function(Y) {
0
 
0
         if (this._lazyAddAttrs !== false) { this._lazyAddAttrs = true; }
0
 
0
+        /**
0
+         * The string used to identify the class of this object.
0
+         *
0
+         * @deprecated Use this.constructor.NAME
0
+         * @property name
0
+         * @type String
0
+         */
0
+        this.name = this.constructor.NAME;
0
+        this._eventPrefix = this.constructor.EVENT_PREFIX || this.constructor.NAME;
0
+
0
         this.init.apply(this, arguments);
0
     }
0
 
0
@@ -173,14 +183,7 @@ YUI.add('base-base', function(Y) {
0
          */
0
         init: function(config) {
0
 
0
-            /**
0
-             * The string used to identify the class of this object.
0
-             *
0
-             * @deprecated Use this.constructor.NAME
0
-             * @property name
0
-             * @type String
0
-             */
0
-            this._yuievt.config.prefix = this.name = this.constructor.NAME;
0
+            this._yuievt.config.prefix = this._eventPrefix;
0
 
0
             /**
0
              * <p>
0
@@ -556,6 +559,7 @@ YUI.add('base-base', function(Y) {
0
         toString: function() {
0
             return this.constructor.NAME + "[" + Y.stamp(this) + "]";
0
         }
0
+
0
     };
0
 
0
     // Straightup augment, no wrapper functions
0
build/base/base-debug.js
...
85
86
87
 
 
 
 
 
 
 
 
 
 
88
89
90
...
175
176
177
178
179
180
181
182
183
184
185
 
186
187
188
...
561
562
563
 
564
565
566
...
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
...
185
186
187
 
 
 
 
 
 
 
 
188
189
190
191
...
564
565
566
567
568
569
570
0
@@ -85,6 +85,16 @@ YUI.add('base-base', function(Y) {
0
 
0
         if (this._lazyAddAttrs !== false) { this._lazyAddAttrs = true; }
0
 
0
+        /**
0
+         * The string used to identify the class of this object.
0
+         *
0
+         * @deprecated Use this.constructor.NAME
0
+         * @property name
0
+         * @type String
0
+         */
0
+        this.name = this.constructor.NAME;
0
+        this._eventPrefix = this.constructor.EVENT_PREFIX || this.constructor.NAME;
0
+
0
         this.init.apply(this, arguments);
0
     }
0
 
0
@@ -175,14 +185,7 @@ YUI.add('base-base', function(Y) {
0
         init: function(config) {
0
             Y.log('init called', 'life', 'base');
0
 
0
-            /**
0
-             * The string used to identify the class of this object.
0
-             *
0
-             * @deprecated Use this.constructor.NAME
0
-             * @property name
0
-             * @type String
0
-             */
0
-            this._yuievt.config.prefix = this.name = this.constructor.NAME;
0
+            this._yuievt.config.prefix = this._eventPrefix;
0
 
0
             /**
0
              * <p>
0
@@ -561,6 +564,7 @@ YUI.add('base-base', function(Y) {
0
         toString: function() {
0
             return this.constructor.NAME + "[" + Y.stamp(this) + "]";
0
         }
0
+
0
     };
0
 
0
     // Straightup augment, no wrapper functions
0
build/base/base-min.js
...
1
2
 
3
...
 
1
2
3
0
@@ -1 +1 @@
0
-YUI.add("base-base",function(B){var I=B.Object,K=B.Lang,J=".",G="destroy",R="init",Q="initialized",H="destroyed",D="initializer",N="bubbleTargets",E="_bubbleTargets",C=Object.prototype.constructor,M="deep",S="shallow",P="destructor",A=B.Attribute;function F(){A.call(this);var L=B.Plugin&&B.Plugin.Host;if(this._initPlugins&&L){L.call(this);}if(this._lazyAddAttrs!==false){this._lazyAddAttrs=true;}this.init.apply(this,arguments);}F._ATTR_CFG=A._ATTR_CFG.concat("cloneDefaultValue");F.NAME="base";F.ATTRS={initialized:{readOnly:true,value:false},destroyed:{readOnly:true,value:false}};F.prototype={init:function(L){this._yuievt.config.prefix=this.name=this.constructor.NAME;this.publish(R,{queuable:false,fireOnce:true,defaultFn:this._defInitFn});this._preInitEventCfg(L);this.fire(R,{cfg:L});return this;},_preInitEventCfg:function(O){if(O){if(O.on){this.on(O.on);}if(O.after){this.after(O.after);}}var T,L,V,U=(O&&N in O);if(U||E in this){V=U?(O&&O.bubbleTargets):this._bubbleTargets;if(K.isArray(V)){for(T=0,L=V.length;T<L;T++){this.addTarget(V[T]);}}else{if(V){this.addTarget(V);}}}},destroy:function(){this.publish(G,{queuable:false,fireOnce:true,defaultFn:this._defDestroyFn});this.fire(G);return this;},_defInitFn:function(L){this._initHierarchy(L.cfg);if(this._initPlugins){this._initPlugins(L.cfg);}this._set(Q,true);},_defDestroyFn:function(L){this._destroyHierarchy();if(this._destroyPlugins){this._destroyPlugins();}this._set(H,true);},_getClasses:function(){if(!this._classes){this._initHierarchyData();}return this._classes;},_getAttrCfgs:function(){if(!this._attrs){this._initHierarchyData();}return this._attrs;},_filterAttrCfgs:function(V,O){var T=null,L,U=V.ATTRS;if(U){for(L in U){if(U.hasOwnProperty(L)&&O[L]){T=T||{};T[L]=O[L];delete O[L];}}}return T;},_initHierarchyData:function(){var T=this.constructor,O=[],L=[];while(T){O[O.length]=T;if(T.ATTRS){L[L.length]=T.ATTRS;}T=T.superclass?T.superclass.constructor:null;}this._classes=O;this._attrs=this._aggregateAttrs(L);},_aggregateAttrs:function(Y){var V,Z,U,L,a,O,X,T=F._ATTR_CFG,W={};if(Y){for(O=Y.length-1;O>=0;--O){Z=Y[O];for(V in Z){if(Z.hasOwnProperty(V)){U=B.mix({},Z[V],true,T);L=U.value;X=U.cloneDefaultValue;if(L){if((X===undefined&&(C===L.constructor||K.isArray(L)))||X===M||X===true){U.value=B.clone(L);}else{if(X===S){U.value=B.merge(L);}}}a=null;if(V.indexOf(J)!==-1){a=V.split(J);V=a.shift();}if(a&&W[V]&&W[V].value){I.setValue(W[V].value,a,L);}else{if(!a){if(!W[V]){W[V]=U;}else{B.mix(W[V],U,true,T);}}}}}}}return W;},_initHierarchy:function(W){var T=this._lazyAddAttrs,X,Y,Z,U,O,V=this._getClasses(),L=this._getAttrCfgs();for(Z=V.length-1;Z>=0;Z--){X=V[Z];Y=X.prototype;if(X._yuibuild&&X._yuibuild.exts){for(U=0,O=X._yuibuild.exts.length;U<O;U++){X._yuibuild.exts[U].apply(this,arguments);}}this.addAttrs(this._filterAttrCfgs(X,L),W,T);if(Y.hasOwnProperty(D)){Y.initializer.apply(this,arguments);}}},_destroyHierarchy:function(){var V,O,U,L,T=this._getClasses();for(U=0,L=T.length;U<L;U++){V=T[U];O=V.prototype;if(O.hasOwnProperty(P)){O.destructor.apply(this,arguments);}}},toString:function(){return this.constructor.NAME+"["+B.stamp(this)+"]";}};B.mix(F,A,false,null,1);F.prototype.constructor=F;B.Base=F;},"@VERSION@",{requires:["attribute-base"]});YUI.add("base-pluginhost",function(C){var A=C.Base,B=C.Plugin.Host;C.mix(A,B,false,null,1);A.plug=B.plug;A.unplug=B.unplug;},"@VERSION@",{requires:["base-base","pluginhost"]});YUI.add("base-build",function(D){var B=D.Base,A=D.Lang,C;B._build=function(F,L,P,T,S,O){var U=B._build,G=U._ctor(L,O),J=U._cfg(L,O),R=U._mixCust,N=J.aggregates,E=J.custom,I=G._yuibuild.dynamic,M,K,H,Q;if(I&&N){for(M=0,K=N.length;M<K;++M){H=N[M];if(L.hasOwnProperty(H)){G[H]=A.isArray(L[H])?[]:{};}}}for(M=0,K=P.length;M<K;M++){Q=P[M];D.mix(G,Q,true,null,1);R(G,Q,N,E);G._yuibuild.exts.push(Q);}if(T){D.mix(G.prototype,T,true);}if(S){D.mix(G,U._clean(S,N,E),true);R(G,S,N,E);}G.prototype.hasImpl=U._impl;if(I){G.NAME=F;G.prototype.constructor=G;}return G;};C=B._build;D.mix(C,{_mixCust:function(G,F,I,H){if(I){D.aggregate(G,F,true,I);}if(H){for(var E in H){if(H.hasOwnProperty(E)){H[E](E,G,F);}}}},_tmpl:function(E){function F(){F.superclass.constructor.apply(this,arguments);}D.extend(F,E);return F;},_impl:function(H){var K=this._getClasses(),J,F,E,I,L,G;for(J=0,F=K.length;J<F;J++){E=K[J];if(E._yuibuild){I=E._yuibuild.exts;L=I.length;for(G=0;G<L;G++){if(I[G]===H){return true;}}}}return false;},_ctor:function(E,F){var G=(F&&false===F.dynamic)?false:true,H=(G)?C._tmpl(E):E;H._yuibuild={id:null,exts:[],dynamic:G};return H;},_cfg:function(E,F){var G=[],J={},I,H=(F&&F.aggregates),L=(F&&F.custom),K=E;while(K&&K.prototype){I=K._buildCfg;if(I){if(I.aggregates){G=G.concat(I.aggregates);}if(I.custom){D.mix(J,I.custom,true);}}K=K.superclass?K.superclass.constructor:null;}if(H){G=G.concat(H);}if(L){D.mix(J,F.cfgBuild,true);}return{aggregates:G,custom:J};},_clean:function(K,J,G){var I,F,E,H=D.merge(K);for(I in G){if(H.hasOwnProperty(I)){delete H[I];}}for(F=0,E=J.length;F<E;F++){I=J[F];if(H.hasOwnProperty(I)){delete H[I];}}return H;}});B.build=function(G,E,H,F){return C(G,E,H,null,null,F);};B.create=function(E,H,G,F,I){return C(E,H,G,F,I);};B.mix=function(E,F){return C(null,E,F,null,null,{dynamic:false});};B._buildCfg={custom:{ATTRS:function(G,F,E){F[G]=F[G]||{};if(E[G]){D.aggregate(F[G],E[G],true);}}},aggregates:["_PLUG","_UNPLUG"]};},"@VERSION@",{requires:["base-base"]});YUI.add("base",function(A){},"@VERSION@",{use:["base-base","base-pluginhost","base-build"]});
0
\ No newline at end of file
0
+YUI.add("base-base",function(B){var I=B.Object,K=B.Lang,J=".",G="destroy",R="init",Q="initialized",H="destroyed",D="initializer",N="bubbleTargets",E="_bubbleTargets",C=Object.prototype.constructor,M="deep",S="shallow",P="destructor",A=B.Attribute;function F(){A.call(this);var L=B.Plugin&&B.Plugin.Host;if(this._initPlugins&&L){L.call(this);}if(this._lazyAddAttrs!==false){this._lazyAddAttrs=true;}this.name=this.constructor.NAME;this._eventPrefix=this.constructor.EVENT_PREFIX||this.constructor.NAME;this.init.apply(this,arguments);}F._ATTR_CFG=A._ATTR_CFG.concat("cloneDefaultValue");F.NAME="base";F.ATTRS={initialized:{readOnly:true,value:false},destroyed:{readOnly:true,value:false}};F.prototype={init:function(L){this._yuievt.config.prefix=this._eventPrefix;this.publish(R,{queuable:false,fireOnce:true,defaultFn:this._defInitFn});this._preInitEventCfg(L);this.fire(R,{cfg:L});return this;},_preInitEventCfg:function(O){if(O){if(O.on){this.on(O.on);}if(O.after){this.after(O.after);}}var T,L,V,U=(O&&N in O);if(U||E in this){V=U?(O&&O.bubbleTargets):this._bubbleTargets;if(K.isArray(V)){for(T=0,L=V.length;T<L;T++){this.addTarget(V[T]);}}else{if(V){this.addTarget(V);}}}},destroy:function(){this.publish(G,{queuable:false,fireOnce:true,defaultFn:this._defDestroyFn});this.fire(G);return this;},_defInitFn:function(L){this._initHierarchy(L.cfg);if(this._initPlugins){this._initPlugins(L.cfg);}this._set(Q,true);},_defDestroyFn:function(L){this._destroyHierarchy();if(this._destroyPlugins){this._destroyPlugins();}this._set(H,true);},_getClasses:function(){if(!this._classes){this._initHierarchyData();}return this._classes;},_getAttrCfgs:function(){if(!this._attrs){this._initHierarchyData();}return this._attrs;},_filterAttrCfgs:function(V,O){var T=null,L,U=V.ATTRS;if(U){for(L in U){if(U.hasOwnProperty(L)&&O[L]){T=T||{};T[L]=O[L];delete O[L];}}}return T;},_initHierarchyData:function(){var T=this.constructor,O=[],L=[];while(T){O[O.length]=T;if(T.ATTRS){L[L.length]=T.ATTRS;}T=T.superclass?T.superclass.constructor:null;}this._classes=O;this._attrs=this._aggregateAttrs(L);},_aggregateAttrs:function(Y){var V,Z,U,L,a,O,X,T=F._ATTR_CFG,W={};if(Y){for(O=Y.length-1;O>=0;--O){Z=Y[O];for(V in Z){if(Z.hasOwnProperty(V)){U=B.mix({},Z[V],true,T);L=U.value;X=U.cloneDefaultValue;if(L){if((X===undefined&&(C===L.constructor||K.isArray(L)))||X===M||X===true){U.value=B.clone(L);}else{if(X===S){U.value=B.merge(L);}}}a=null;if(V.indexOf(J)!==-1){a=V.split(J);V=a.shift();}if(a&&W[V]&&W[V].value){I.setValue(W[V].value,a,L);}else{if(!a){if(!W[V]){W[V]=U;}else{B.mix(W[V],U,true,T);}}}}}}}return W;},_initHierarchy:function(W){var T=this._lazyAddAttrs,X,Y,Z,U,O,V=this._getClasses(),L=this._getAttrCfgs();for(Z=V.length-1;Z>=0;Z--){X=V[Z];Y=X.prototype;if(X._yuibuild&&X._yuibuild.exts){for(U=0,O=X._yuibuild.exts.length;U<O;U++){X._yuibuild.exts[U].apply(this,arguments);}}this.addAttrs(this._filterAttrCfgs(X,L),W,T);if(Y.hasOwnProperty(D)){Y.initializer.apply(this,arguments);}}},_destroyHierarchy:function(){var V,O,U,L,T=this._getClasses();for(U=0,L=T.length;U<L;U++){V=T[U];O=V.prototype;if(O.hasOwnProperty(P)){O.destructor.apply(this,arguments);}}},toString:function(){return this.constructor.NAME+"["+B.stamp(this)+"]";}};B.mix(F,A,false,null,1);F.prototype.constructor=F;B.Base=F;},"@VERSION@",{requires:["attribute-base"]});YUI.add("base-pluginhost",function(C){var A=C.Base,B=C.Plugin.Host;C.mix(A,B,false,null,1);A.plug=B.plug;A.unplug=B.unplug;},"@VERSION@",{requires:["base-base","pluginhost"]});YUI.add("base-build",function(D){var B=D.Base,A=D.Lang,C;B._build=function(F,L,P,T,S,O){var U=B._build,G=U._ctor(L,O),J=U._cfg(L,O),R=U._mixCust,N=J.aggregates,E=J.custom,I=G._yuibuild.dynamic,M,K,H,Q;if(I&&N){for(M=0,K=N.length;M<K;++M){H=N[M];if(L.hasOwnProperty(H)){G[H]=A.isArray(L[H])?[]:{};}}}for(M=0,K=P.length;M<K;M++){Q=P[M];D.mix(G,Q,true,null,1);R(G,Q,N,E);G._yuibuild.exts.push(Q);}if(T){D.mix(G.prototype,T,true);}if(S){D.mix(G,U._clean(S,N,E),true);R(G,S,N,E);}G.prototype.hasImpl=U._impl;if(I){G.NAME=F;G.prototype.constructor=G;}return G;};C=B._build;D.mix(C,{_mixCust:function(G,F,I,H){if(I){D.aggregate(G,F,true,I);}if(H){for(var E in H){if(H.hasOwnProperty(E)){H[E](E,G,F);}}}},_tmpl:function(E){function F(){F.superclass.constructor.apply(this,arguments);}D.extend(F,E);return F;},_impl:function(H){var K=this._getClasses(),J,F,E,I,L,G;for(J=0,F=K.length;J<F;J++){E=K[J];if(E._yuibuild){I=E._yuibuild.exts;L=I.length;for(G=0;G<L;G++){if(I[G]===H){return true;}}}}return false;},_ctor:function(E,F){var G=(F&&false===F.dynamic)?false:true,H=(G)?C._tmpl(E):E;H._yuibuild={id:null,exts:[],dynamic:G};return H;},_cfg:function(E,F){var G=[],J={},I,H=(F&&F.aggregates),L=(F&&F.custom),K=E;while(K&&K.prototype){I=K._buildCfg;if(I){if(I.aggregates){G=G.concat(I.aggregates);}if(I.custom){D.mix(J,I.custom,true);}}K=K.superclass?K.superclass.constructor:null;}if(H){G=G.concat(H);}if(L){D.mix(J,F.cfgBuild,true);}return{aggregates:G,custom:J};},_clean:function(K,J,G){var I,F,E,H=D.merge(K);for(I in G){if(H.hasOwnProperty(I)){delete H[I];}}for(F=0,E=J.length;F<E;F++){I=J[F];if(H.hasOwnProperty(I)){delete H[I];}}return H;}});B.build=function(G,E,H,F){return C(G,E,H,null,null,F);};B.create=function(E,H,G,F,I){return C(E,H,G,F,I);};B.mix=function(E,F){return C(null,E,F,null,null,{dynamic:false});};B._buildCfg={custom:{ATTRS:function(G,F,E){F[G]=F[G]||{};if(E[G]){D.aggregate(F[G],E[G],true);}}},aggregates:["_PLUG","_UNPLUG"]};},"@VERSION@",{requires:["base-base"]});YUI.add("base",function(A){},"@VERSION@",{use:["base-base","base-pluginhost","base-build"]});
0
\ No newline at end of file
0
build/base/base.js
...
84
85
86
 
 
 
 
 
 
 
 
 
 
87
88
89
...
173
174
175
176
177
178
179
180
181
182
183
 
184
185
186
...
556
557
558
 
559
560
561
...
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
...
183
184
185
 
 
 
 
 
 
 
 
186
187
188
189
...
559
560
561
562
563
564
565
0
@@ -84,6 +84,16 @@ YUI.add('base-base', function(Y) {
0
 
0
         if (this._lazyAddAttrs !== false) { this._lazyAddAttrs = true; }
0
 
0
+        /**
0
+         * The string used to identify the class of this object.
0
+         *
0
+         * @deprecated Use this.constructor.NAME
0
+         * @property name
0
+         * @type String
0
+         */
0
+        this.name = this.constructor.NAME;
0
+        this._eventPrefix = this.constructor.EVENT_PREFIX || this.constructor.NAME;
0
+
0
         this.init.apply(this, arguments);
0
     }
0
 
0
@@ -173,14 +183,7 @@ YUI.add('base-base', function(Y) {
0
          */
0
         init: function(config) {
0
 
0
-            /**
0
-             * The string used to identify the class of this object.
0
-             *
0
-             * @deprecated Use this.constructor.NAME
0
-             * @property name
0
-             * @type String
0
-             */
0
-            this._yuievt.config.prefix = this.name = this.constructor.NAME;
0
+            this._yuievt.config.prefix = this._eventPrefix;
0
 
0
             /**
0
              * <p>
0
@@ -556,6 +559,7 @@ YUI.add('base-base', function(Y) {
0
         toString: function() {
0
             return this.constructor.NAME + "[" + Y.stamp(this) + "]";
0
         }
0
+
0
     };
0
 
0
     // Straightup augment, no wrapper functions
0
build/classnamemanager/classnamemanager-debug.js
...
60
61
62
63
 
 
64
65
 
66
67
68
69
 
70
71
 
 
 
 
 
72
 
73
74
75
...
60
61
62
 
63
64
65
 
66
67
 
 
 
68
69
 
70
71
72
73
74
75
76
77
78
79
0
@@ -60,16 +60,20 @@ Y.ClassNameManager = function () {
0
      * provided strings. E.g. Y.ClassNameManager.getClassName('foo','bar'); // yui-foo-bar
0
      * 
0
      * @method getClassName
0
-     * @param {String}+ one or more classname bits to be joined and prefixed
0
+     * @param {String}+ classnameBit one or more classname bits to be joined and prefixed
0
+     * @param {Boolean} skipPrefix Don't use the instance based prefix.  
0
      */
0
-    getClassName: Y.cached(function (c, x) {
0
+    getClassName: Y.cached(function () {
0
 
0
-      var sClass = sPrefix + sDelimiter + 
0
-                   // ((x) ? Y.Array(arguments, 0, true).join(sDelimiter) : c);
0
-                   ((x) ? Array.prototype.join.call(arguments, sDelimiter) : c);
0
+            var args = Y.Array(arguments);
0
 
0
-      return sClass.replace(/\s/g, '');
0
+            if (args[args.length-1] !== true) {
0
+                args.unshift(sPrefix);
0
+            } else {
0
+                args.pop();
0
+            }
0
 
0
+      return args.join(sDelimiter);
0
     })
0
 
0
   };
0
build/classnamemanager/classnamemanager-min.js
...
1
2
 
3
...
 
1
2
3
0
@@ -1 +1 @@
0
-YUI.add("classnamemanager",function(C){var B="classNamePrefix",D="classNameDelimiter",A=C.config;A[B]=A[B]||"yui";A[D]=A[D]||"-";C.ClassNameManager=function(){var E=A[B],F=A[D];return{getClassName:C.cached(function(I,G){var H=E+F+((G)?Array.prototype.join.call(arguments,F):I);return H.replace(/\s/g,"");})};}();},"@VERSION@");
0
\ No newline at end of file
0
+YUI.add("classnamemanager",function(C){var B="classNamePrefix",D="classNameDelimiter",A=C.config;A[B]=A[B]||"yui";A[D]=A[D]||"-";C.ClassNameManager=function(){var E=A[B],F=A[D];return{getClassName:C.cached(function(){var G=C.Array(arguments);if(G[G.length-1]!==true){G.unshift(E);}else{G.pop();}return G.join(F);})};}();},"@VERSION@");
0
\ No newline at end of file
0
build/classnamemanager/classnamemanager.js
...
60
61
62
63
 
 
64
65
 
66
67
68
69
 
70
71
 
 
 
 
 
72
 
73
74
75
...
60
61
62
 
63
64
65
 
66
67
 
 
 
68
69
 
70
71
72
73
74
75
76
77
78
79
0
@@ -60,16 +60,20 @@ Y.ClassNameManager = function () {
0
      * provided strings. E.g. Y.ClassNameManager.getClassName('foo','bar'); // yui-foo-bar
0
      * 
0
      * @method getClassName
0
-     * @param {String}+ one or more classname bits to be joined and prefixed
0
+     * @param {String}+ classnameBit one or more classname bits to be joined and prefixed
0
+     * @param {Boolean} skipPrefix Don't use the instance based prefix.  
0
      */
0
-    getClassName: Y.cached(function (c, x) {
0
+    getClassName: Y.cached(function () {
0
 
0
-      var sClass = sPrefix + sDelimiter + 
0
-                   // ((x) ? Y.Array(arguments, 0, true).join(sDelimiter) : c);
0
-                   ((x) ? Array.prototype.join.call(arguments, sDelimiter) : c);
0
+            var args = Y.Array(arguments);
0
 
0
-      return sClass.replace(/\s/g, '');
0
+            if (args[args.length-1] !== true) {
0
+                args.unshift(sPrefix);
0
+            } else {
0
+                args.pop();
0
+            }
0
 
0
+      return args.join(sDelimiter);
0
     })
0
 
0
   };
0
build/widget/widget-base-debug.js
...
8
9
10
 
11
12
13
14
15
 
16
17
18
...
90
91
92
 
93
94
95
...
101
102
103
104
105
106
107
...
290
291
292
293
 
294
295
 
 
 
296
297
298
299
 
300
301
302
...
313
314
315
316
 
317
318
319
...
336
337
338
339
 
340
341
342
...
366
367
368
369
 
370
371
372
...
380
381
382
383
384
385
386
387
...
771
772
773
 
774
775
776
...
778
779
780
781
 
 
782
783
784
...
1101
1102
1103
 
1104
1105
1106
...
8
9
10
11
12
13
14
15
 
16
17
18
19
...
91
92
93
94
95
96
97
...
103
104
105
 
106
107
108
...
291
292
293
 
294
295
 
296
297
298
299
300
301
 
302
303
304
305
...
316
317
318
 
319
320
321
322
...
339
340
341
 
342
343
344
345
...
369
370
371
 
372
373
374
375
...
383
384
385
 
 
386
387
388
...
772
773
774
775
776
777
778
...
780
781
782
 
783
784
785
786
787
...
1104
1105
1106
1107
1108
1109
1110
0
@@ -8,11 +8,12 @@ YUI.add('widget-base', function(Y) {
0
 
0
 var L = Y.Lang,
0
     Node = Y.Node,
0
+
0
     ClassNameManager = Y.ClassNameManager,
0
 
0
     _getClassName = ClassNameManager.getClassName,
0
     _getWidgetClassName,
0
-    
0
+
0
     _toInitialCap = Y.cached(function(str) {
0
         return str.substring(0, 1).toUpperCase() + str.substring(1);
0
     }),
0
@@ -90,6 +91,7 @@ function Widget(config) {
0
     Y.log('constructor called', 'life', 'widget');
0
 
0
     this._strs = {};
0
+    this._cssPrefix = this.constructor.CSS_PREFIX || _getClassName(this.constructor.NAME.toLowerCase());
0
 
0
     Widget.superclass.constructor.apply(this, arguments);
0
 
0
@@ -101,7 +103,6 @@ function Widget(config) {
0
         }
0
         this.render(parentNode);
0
     }
0
-    
0
 }
0
 
0
 /**
0
@@ -290,13 +291,15 @@ ATTRS[RENDER] = {
0
 };
0
 
0
 /**
0
- * Cached lowercase version of Widget.NAME
0
+ * The css prefix which the static Widget.getClassName method should use when constructing class names
0
  *
0
- * @property Widget._NAME_LOWERCASE
0
+ * @property Widget.CSS_PREFIX
0
+ * @type String
0
+ * @default Widget.NAME.toLowerCase()
0
  * @private
0
  * @static
0
  */
0
-Widget._NAME = Widget.NAME.toLowerCase();
0
+Widget.CSS_PREFIX = _getClassName(Widget.NAME.toLowerCase());
0
 
0
 /**
0
  * Generate a standard prefixed classname for the Widget, prefixed by the default prefix defined
0
@@ -313,7 +316,7 @@ Widget._NAME = Widget.NAME.toLowerCase();
0
  */
0
 Widget.getClassName = function() {
0
     // arguments needs to be array'fied to concat
0
-    return _getClassName.apply(ClassNameManager, [Widget._NAME].concat(Y.Array(arguments)));
0
+    return _getClassName.apply(ClassNameManager, [Widget.CSS_PREFIX].concat(Y.Array(arguments), true));
0
 };
0
 
0
 _getWidgetClassName = Widget.getClassName;
0
@@ -336,7 +339,7 @@ Widget.getByNode = function(node) {
0
 
0
     node = Node.one(node);
0
     if (node) {
0
-        node = (node.hasClass(widgetMarker)) ? node : node.ancestor("." + widgetMarker);
0
+        node = node.ancestor("." + widgetMarker, true);
0
         if (node) {
0
             widget = _instances[Y.stamp(node, TRUE)];
0
         }
0
@@ -366,7 +369,7 @@ Y.extend(Widget, Y.Base, {
0
    * @param {String}+ One or more classname bits to be joined and prefixed
0
    */
0
   getClassName: function () {
0
-        return _getClassName.apply(ClassNameManager, [this._name].concat(Y.Array(arguments)));
0
+        return _getClassName.apply(ClassNameManager, [this._cssPrefix].concat(Y.Array(arguments), true));
0
   },
0
 
0
     /**
0
@@ -380,8 +383,6 @@ Y.extend(Widget, Y.Base, {
0
     initializer: function(config) {
0
         Y.log('initializer called', 'life', 'widget');
0
 
0
-        this._name = this.constructor.NAME.toLowerCase();
0
-
0
         _instances[Y.stamp(this.get(BOUNDING_BOX))] = this;
0
 
0
         /**
0
@@ -771,6 +772,7 @@ Y.extend(Widget, Y.Base, {
0
      */
0
     _renderBoxClassNames : function() {
0
         var classes = this._getClasses(),
0
+            cl,
0
             boundingBox = this.get(BOUNDING_BOX),
0
             i;
0
 
0
@@ -778,7 +780,8 @@ Y.extend(Widget, Y.Base, {
0
 
0
         // Start from Widget Sub Class
0
         for (i = classes.length-3; i >= 0; i--) {
0
-            boundingBox.addClass(ClassNameManager.getClassName(classes[i].NAME.toLowerCase()));
0
+            cl = classes[i];
0
+            boundingBox.addClass(cl.CSS_PREFIX || _getClassName(cl.NAME.toLowerCase()));
0
         }
0
 
0
         // Use instance based name for content box
0
@@ -1101,6 +1104,7 @@ Y.extend(Widget, Y.Base, {
0
     },
0
 
0
     _BIND_UI_ATTRS : UI_ATTRS,
0
+
0
     _SYNC_UI_ATTRS : UI_ATTRS.concat(TAB_INDEX),
0
 
0
     /**
0
build/widget/widget-base-min.js
...
1
 
2
3
...
 
1
2
3
0
@@ -1,2 +1,2 @@
0
-YUI.add("widget-base",function(B){var G=B.Lang,U=B.Node,E=B.ClassNameManager,b=E.getClassName,s,V=B.cached(function(L){return L.substring(0,1).toUpperCase()+L.substring(1);}),l="content",w="visible",r="hidden",d="disabled",h="focused",D="width",f="height",t="boundingBox",a="contentBox",K="parentNode",O="ownerDocument",m="offsetHeight",c="auto",J="srcNode",p="body",o="tabIndex",T="id",I="render",q="rendered",P="destroyed",A="strings",Q="<div></div>",e="Change",R="loading",k="_uiSet",j="",n=function(){},M=/(\w+):(\w+)/,Z="$2",X=true,u=false,W,N={},F=[w,d,f,D,h],i=B.UA.webkit,S=B.UA.ie,v="contentUpdate",g={},H={};function C(Y){this._strs={};C.superclass.constructor.apply(this,arguments);var x=this.get(I),L;if(x){if(x!==X){L=x;}this.render(L);}}C.NAME="widget";W=C.UI_SRC="ui";C.ATTRS=N;N[T]={valueFn:"_guid",writeOnce:X};N[q]={value:u,readOnly:X};N[t]={value:null,setter:"_setBB",writeOnce:X};N[a]={value:null,setter:"_setCB",writeOnce:X};N[o]={value:null,validator:"_validTabIndex"};N[h]={value:u,readOnly:X};N[d]={value:u};N[w]={value:X};N[f]={value:j};N[D]={value:j};N[A]={value:{},setter:"_strSetter",getter:"_strGetter"};N[I]={value:u,writeOnce:X};C._NAME=C.NAME.toLowerCase();C.getClassName=function(){return b.apply(E,[C._NAME].concat(B.Array(arguments)));};s=C.getClassName;C.getByNode=function(L){var x,Y=s();L=U.one(L);if(L){L=(L.hasClass(Y))?L:L.ancestor("."+Y);if(L){x=H[B.stamp(L,X)];}}return x||null;};B.extend(C,B.Base,{getClassName:function(){return b.apply(E,[this._name].concat(B.Array(arguments)));},initializer:function(L){this._name=this.constructor.NAME.toLowerCase();H[B.stamp(this.get(t))]=this;this.publish(v,{preventable:u});if(this._applyParser){this._applyParser(L);}},destructor:function(){var L=this.get(t),x=B.stamp(L,X),Y=B.stamp(this,X);if(x in H){delete H[x];}B.each(g,function(y){if(y.instances[Y]){delete y.instances[Y];if(B.Object.size(y.instances)===0){y.handle.detach();}}});this._unbindUI(L);L.remove(X);},render:function(L){if(!this.get(P)&&!this.get(q)){this.publish(I,{queuable:u,fireOnce:X,defaultFn:this._defRenderFn});this.fire(I,{parentNode:(L)?U.one(L):null});}return this;},_defRenderFn:function(L){if(L.target===this){this._renderUI(L.parentNode);this._bindUI();this._syncUI();this.renderer();this._set(q,X);this._removeLoadingClassNames();}},renderer:function(){this.renderUI();this.bindUI();this.syncUI();},bindUI:n,renderUI:n,syncUI:n,hide:function(){return this.set(w,u);},show:function(){return this.set(w,X);},focus:function(){return this._set(h,X);},blur:function(){return this._set(h,u);},enable:function(){return this.set(d,u);},disable:function(){return this.set(d,X);},_uiSizeCB:function(x){var z=this.get(t),Y=this.get(a),L=s("tmp","forcesize"),y=this._bbs,AA=S&&S<7;if(y){Y.toggleClass(s(l,"expanded"),x);}else{if(x){if(AA){z.addClass(L);}Y.set(m,z.get(m));if(AA){z.removeClass(L);}}else{Y.setStyle(f,j);}}},_renderBox:function(L){var Y=this.get(a),x=this.get(t),z=this.get(J),y=(z&&z.get(O))||x.get(O)||Y.get(O);if(z&&!z.compareTo(Y)&&!Y.inDoc(y)){z.replace(Y);}if(!x.compareTo(Y.get(K))&&!x.compareTo(Y)){if(Y.inDoc(y)){Y.replace(x);}x.appendChild(Y);}if(L){L.appendChild(x);}else{if(!x.inDoc(y)){U.one(p).insert(x,0);}}this._bbs=!(S&&S<8&&y.compatMode!="BackCompat");},_setBB:function(L){return this._setBox(this.get(T),L,this.BOUNDING_TEMPLATE);},_setCB:function(L){return(this.CONTENT_TEMPLATE===null)?this.get(t):this._setBox(null,L,this.CONTENT_TEMPLATE);},_setBox:function(x,Y,L){Y=U.one(Y)||U.create(L);if(!Y.get(T)){Y.set(T,x||B.guid());}return Y;},_renderUI:function(L){this._renderBoxClassNames();this._renderBox(L);},_renderBoxClassNames:function(){var x=this._getClasses(),L=this.get(t),Y;L.addClass(s());for(Y=x.length-3;Y>=0;Y--){L.addClass(E.getClassName(x[Y].NAME.toLowerCase()));}this.get(a).addClass(this.getClassName(l));},_removeLoadingClassNames:function(){var L=this.get(t);L.removeClass(s(R));L.removeClass(this.getClassName(R));},_bindUI:function(){this._bindAttrUI(this._BIND_UI_ATTRS);this._bindDOM();},_unbindUI:function(L){this._unbindAttrUI(this._BIND_UI_ATTRS);this._unbindDOM(L);},_bindDOM:function(){var L=this.get(t).get(O);this._hDocFocus=L.on("focus",this._onDocFocus,this);if(i){this._hDocMouseDown=L.on("mousedown",this._onDocMouseDown,this);}},_unbindDOM:function(L){this._hDocFocus.detach();if(i){this._hDocMouseDown.detach();}},_syncUI:function(){this._syncAttrUI(this._SYNC_UI_ATTRS);},_uiSetHeight:function(L){this._uiSetDim(f,L);this._uiSizeCB((L!==j&&L!==c));},_uiSetWidth:function(L){this._uiSetDim(D,L);},_uiSetDim:function(L,Y){this.get(t).setStyle(L,G.isNumber(Y)?Y+this.DEF_UNIT:Y);},_uiSetVisible:function(L){this.get(t).toggleClass(this.getClassName(r),!L);},_uiSetDisabled:function(L){this.get(t).toggleClass(this.getClassName(d),L);},_uiSetFocused:function(x,Y){var L=this.get(t);L.toggleClass(this.getClassName(h),x);if(Y!==W){if(x){L.focus();}else{L.blur();}}},_uiSetTabIndex:function(Y){var L=this.get(t);if(G.isNumber(Y)){L.set(o,Y);}else{L.removeAttribute(o);}},_onDocMouseDown:function(L){if(this._hasDOMFocus){this._onDocFocus(L);}},_onDocFocus:function(Y){var L=this.get(t).contains(Y.target);this._hasDOMFocus=L;this._set(h,L,{src:W});},toString:function(){return this.constructor.NAME+"["+this.get(T)+"]";},DEF_UNIT:"px",CONTENT_TEMPLATE:Q,BOUNDING_TEMPLATE:Q,_guid:function(){return B.guid();},_validTabIndex:function(L){return(G.isNumber(L)||G.isNull(L));},_bindAttrUI:function(L){this._doBindAttrUI(L,X);},_unbindAttrUI:function(L){this._doBindAttrUI(L,u);},_syncAttrUI:function(x){var y,Y=x.length,L;for(y=0;y<Y;y++){L=x[y];this[k+V(L)](this.get(L));}},_doBindAttrUI:function(x,z){var y,L=x.length,Y=(z)?"after":"detach";for(y=0;y<L;y++){this[Y](x[y]+e,this._setAttrUI);}},_setAttrUI:function(L){this[k+V(L.attrName)](L.newVal,L.src);},_strSetter:function(L){return B.merge(this.get(A),L);},getString:function(L){return this.get(A)[L];},getStrings:function(){return this.get(A);},_BIND_UI_ATTRS:F,_SYNC_UI_ATTRS:F.concat(o),UI_EVENTS:B.Node.DOM_EVENTS,_getUIEventNode:function(){return this.get(t);
0
+YUI.add("widget-base",function(B){var G=B.Lang,U=B.Node,E=B.ClassNameManager,b=E.getClassName,s,V=B.cached(function(L){return L.substring(0,1).toUpperCase()+L.substring(1);}),l="content",w="visible",r="hidden",d="disabled",h="focused",D="width",f="height",t="boundingBox",a="contentBox",K="parentNode",O="ownerDocument",m="offsetHeight",c="auto",J="srcNode",p="body",o="tabIndex",T="id",I="render",q="rendered",P="destroyed",A="strings",Q="<div></div>",e="Change",R="loading",k="_uiSet",j="",n=function(){},M=/(\w+):(\w+)/,Z="$2",X=true,u=false,W,N={},F=[w,d,f,D,h],i=B.UA.webkit,S=B.UA.ie,v="contentUpdate",g={},H={};function C(Y){this._strs={};this._cssPrefix=this.constructor.CSS_PREFIX||b(this.constructor.NAME.toLowerCase());C.superclass.constructor.apply(this,arguments);var x=this.get(I),L;if(x){if(x!==X){L=x;}this.render(L);}}C.NAME="widget";W=C.UI_SRC="ui";C.ATTRS=N;N[T]={valueFn:"_guid",writeOnce:X};N[q]={value:u,readOnly:X};N[t]={value:null,setter:"_setBB",writeOnce:X};N[a]={value:null,setter:"_setCB",writeOnce:X};N[o]={value:null,validator:"_validTabIndex"};N[h]={value:u,readOnly:X};N[d]={value:u};N[w]={value:X};N[f]={value:j};N[D]={value:j};N[A]={value:{},setter:"_strSetter",getter:"_strGetter"};N[I]={value:u,writeOnce:X};C.CSS_PREFIX=b(C.NAME.toLowerCase());C.getClassName=function(){return b.apply(E,[C.CSS_PREFIX].concat(B.Array(arguments),true));};s=C.getClassName;C.getByNode=function(L){var x,Y=s();L=U.one(L);if(L){L=L.ancestor("."+Y,true);if(L){x=H[B.stamp(L,X)];}}return x||null;};B.extend(C,B.Base,{getClassName:function(){return b.apply(E,[this._cssPrefix].concat(B.Array(arguments),true));},initializer:function(L){H[B.stamp(this.get(t))]=this;this.publish(v,{preventable:u});if(this._applyParser){this._applyParser(L);}},destructor:function(){var L=this.get(t),x=B.stamp(L,X),Y=B.stamp(this,X);if(x in H){delete H[x];}B.each(g,function(y){if(y.instances[Y]){delete y.instances[Y];if(B.Object.size(y.instances)===0){y.handle.detach();}}});this._unbindUI(L);L.remove(X);},render:function(L){if(!this.get(P)&&!this.get(q)){this.publish(I,{queuable:u,fireOnce:X,defaultFn:this._defRenderFn});this.fire(I,{parentNode:(L)?U.one(L):null});}return this;},_defRenderFn:function(L){if(L.target===this){this._renderUI(L.parentNode);this._bindUI();this._syncUI();this.renderer();this._set(q,X);this._removeLoadingClassNames();}},renderer:function(){this.renderUI();this.bindUI();this.syncUI();},bindUI:n,renderUI:n,syncUI:n,hide:function(){return this.set(w,u);},show:function(){return this.set(w,X);},focus:function(){return this._set(h,X);},blur:function(){return this._set(h,u);},enable:function(){return this.set(d,u);},disable:function(){return this.set(d,X);},_uiSizeCB:function(x){var z=this.get(t),Y=this.get(a),L=s("tmp","forcesize"),y=this._bbs,AA=S&&S<7;if(y){Y.toggleClass(s(l,"expanded"),x);}else{if(x){if(AA){z.addClass(L);}Y.set(m,z.get(m));if(AA){z.removeClass(L);}}else{Y.setStyle(f,j);}}},_renderBox:function(L){var Y=this.get(a),x=this.get(t),z=this.get(J),y=(z&&z.get(O))||x.get(O)||Y.get(O);if(z&&!z.compareTo(Y)&&!Y.inDoc(y)){z.replace(Y);}if(!x.compareTo(Y.get(K))&&!x.compareTo(Y)){if(Y.inDoc(y)){Y.replace(x);}x.appendChild(Y);}if(L){L.appendChild(x);}else{if(!x.inDoc(y)){U.one(p).insert(x,0);}}this._bbs=!(S&&S<8&&y.compatMode!="BackCompat");},_setBB:function(L){return this._setBox(this.get(T),L,this.BOUNDING_TEMPLATE);},_setCB:function(L){return(this.CONTENT_TEMPLATE===null)?this.get(t):this._setBox(null,L,this.CONTENT_TEMPLATE);},_setBox:function(x,Y,L){Y=U.one(Y)||U.create(L);if(!Y.get(T)){Y.set(T,x||B.guid());}return Y;},_renderUI:function(L){this._renderBoxClassNames();this._renderBox(L);},_renderBoxClassNames:function(){var y=this._getClasses(),L,Y=this.get(t),x;Y.addClass(s());for(x=y.length-3;x>=0;x--){L=y[x];Y.addClass(L.CSS_PREFIX||b(L.NAME.toLowerCase()));}this.get(a).addClass(this.getClassName(l));},_removeLoadingClassNames:function(){var L=this.get(t);L.removeClass(s(R));L.removeClass(this.getClassName(R));},_bindUI:function(){this._bindAttrUI(this._BIND_UI_ATTRS);this._bindDOM();},_unbindUI:function(L){this._unbindAttrUI(this._BIND_UI_ATTRS);this._unbindDOM(L);},_bindDOM:function(){var L=this.get(t).get(O);this._hDocFocus=L.on("focus",this._onDocFocus,this);if(i){this._hDocMouseDown=L.on("mousedown",this._onDocMouseDown,this);}},_unbindDOM:function(L){this._hDocFocus.detach();if(i){this._hDocMouseDown.detach();}},_syncUI:function(){this._syncAttrUI(this._SYNC_UI_ATTRS);},_uiSetHeight:function(L){this._uiSetDim(f,L);this._uiSizeCB((L!==j&&L!==c));},_uiSetWidth:function(L){this._uiSetDim(D,L);},_uiSetDim:function(L,Y){this.get(t).setStyle(L,G.isNumber(Y)?Y+this.DEF_UNIT:Y);},_uiSetVisible:function(L){this.get(t).toggleClass(this.getClassName(r),!L);},_uiSetDisabled:function(L){this.get(t).toggleClass(this.getClassName(d),L);},_uiSetFocused:function(x,Y){var L=this.get(t);L.toggleClass(this.getClassName(h),x);if(Y!==W){if(x){L.focus();}else{L.blur();}}},_uiSetTabIndex:function(Y){var L=this.get(t);if(G.isNumber(Y)){L.set(o,Y);}else{L.removeAttribute(o);}},_onDocMouseDown:function(L){if(this._hasDOMFocus){this._onDocFocus(L);}},_onDocFocus:function(Y){var L=this.get(t).contains(Y.target);this._hasDOMFocus=L;this._set(h,L,{src:W});},toString:function(){return this.constructor.NAME+"["+this.get(T)+"]";},DEF_UNIT:"px",CONTENT_TEMPLATE:Q,BOUNDING_TEMPLATE:Q,_guid:function(){return B.guid();},_validTabIndex:function(L){return(G.isNumber(L)||G.isNull(L));},_bindAttrUI:function(L){this._doBindAttrUI(L,X);},_unbindAttrUI:function(L){this._doBindAttrUI(L,u);},_syncAttrUI:function(x){var y,Y=x.length,L;for(y=0;y<Y;y++){L=x[y];this[k+V(L)](this.get(L));}},_doBindAttrUI:function(x,z){var y,L=x.length,Y=(z)?"after":"detach";for(y=0;y<L;y++){this[Y](x[y]+e,this._setAttrUI);}},_setAttrUI:function(L){this[k+V(L.attrName)](L.newVal,L.src);},_strSetter:function(L){return B.merge(this.get(A),L);},getString:function(L){return this.get(A)[L];},getStrings:function(){return this.get(A);},_BIND_UI_ATTRS:F,_SYNC_UI_ATTRS:F.concat(o),UI_EVENTS:B.Node.DOM_EVENTS,_getUIEventNode:function(){return this.get(t);
0
 },_createUIEvent:function(x){var AA=this._getUIEventNode(),L=AA.get(K),Y=(B.stamp(L)+x),z=g[Y],y;if(!z){y=L.delegate(x,function(AB){var AC=C.getByNode(this);AC.fire(AB.type,{domEvent:AB});},"."+s());g[Y]=z={instances:{},handle:y};}z.instances[B.stamp(this)]=1;},_getUIEvent:function(Y){if(G.isString(Y)){var x=Y.replace(M,Z),L;if(this.UI_EVENTS[x]){L=x;}return L;}},_initUIEvent:function(Y){var x=this._getUIEvent(Y),L=this._uiEvtsInitQueue||{};if(x&&!L[x]){this.after(I,function(){this._createUIEvent(x);delete this._uiEvtsInitQueue[x];});this._uiEvtsInitQueue=L[x]=1;}},on:function(L){this._initUIEvent(L);return C.superclass.on.apply(this,arguments);},after:function(L){this._initUIEvent(L);return C.superclass.after.apply(this,arguments);},publish:function(Y,L){var x=this._getUIEvent(Y);if(x&&L&&L.defaultFn){this._initUIEvent(x);}return C.superclass.publish.apply(this,arguments);}});B.Widget=C;},"@VERSION@",{requires:["attribute","event-focus","base","node","classnamemanager"]});
0
\ No newline at end of file
0
build/widget/widget-base.js
...
8
9
10
 
11
12
13
14
15
 
16
17
18
...
89
90
91
 
92
93
94
...
100
101
102
103
104
105
106
...
289
290
291
292
 
293
294
 
 
 
295
296
297
298
 
299
300
301
...
312
313
314
315
 
316
317
318
...
335
336
337
338
 
339
340
341
...
365
366
367
368
 
369
370
371
...
378
379
380
381
382
383
384
385
...
767
768
769
 
770
771
772
...
774
775
776
777
 
 
778
779
780
...
1097
1098
1099
 
1100
1101
1102
...
8
9
10
11
12
13
14
15
 
16
17
18
19
...
90
91
92
93
94
95
96
...
102
103
104
 
105
106
107
...
290
291
292
 
293
294
 
295
296
297
298
299
300
 
301
302
303
304
...
315
316
317
 
318
319
320
321
...
338
339
340
 
341
342
343
344
...
368
369
370
 
371
372
373
374
...
381
382
383
 
 
384
385
386
...
768
769
770
771
772
773
774
...
776
777
778
 
779
780
781
782
783
...
1100
1101
1102
1103
1104
1105
1106
0
@@ -8,11 +8,12 @@ YUI.add('widget-base', function(Y) {
0
 
0
 var L = Y.Lang,
0
     Node = Y.Node,
0
+
0
     ClassNameManager = Y.ClassNameManager,
0
 
0
     _getClassName = ClassNameManager.getClassName,
0
     _getWidgetClassName,
0
-    
0
+
0
     _toInitialCap = Y.cached(function(str) {
0
         return str.substring(0, 1).toUpperCase() + str.substring(1);
0
     }),
0
@@ -89,6 +90,7 @@ var L = Y.Lang,
0
 function Widget(config) {
0
 
0
     this._strs = {};
0
+    this._cssPrefix = this.constructor.CSS_PREFIX || _getClassName(this.constructor.NAME.toLowerCase());
0
 
0
     Widget.superclass.constructor.apply(this, arguments);
0
 
0
@@ -100,7 +102,6 @@ function Widget(config) {
0
         }
0
         this.render(parentNode);
0
     }
0
-    
0
 }
0
 
0
 /**
0
@@ -289,13 +290,15 @@ ATTRS[RENDER] = {
0
 };
0
 
0
 /**
0
- * Cached lowercase version of Widget.NAME
0
+ * The css prefix which the static Widget.getClassName method should use when constructing class names
0
  *
0
- * @property Widget._NAME_LOWERCASE
0
+ * @property Widget.CSS_PREFIX
0
+ * @type String
0
+ * @default Widget.NAME.toLowerCase()
0
  * @private
0
  * @static
0
  */
0
-Widget._NAME = Widget.NAME.toLowerCase();
0
+Widget.CSS_PREFIX = _getClassName(Widget.NAME.toLowerCase());
0
 
0
 /**
0
  * Generate a standard prefixed classname for the Widget, prefixed by the default prefix defined
0
@@ -312,7 +315,7 @@ Widget._NAME = Widget.NAME.toLowerCase();
0
  */
0
 Widget.getClassName = function() {
0
     // arguments needs to be array'fied to concat
0
-    return _getClassName.apply(ClassNameManager, [Widget._NAME].concat(Y.Array(arguments)));
0
+    return _getClassName.apply(ClassNameManager, [Widget.CSS_PREFIX].concat(Y.Array(arguments), true));
0
 };
0
 
0
 _getWidgetClassName = Widget.getClassName;
0
@@ -335,7 +338,7 @@ Widget.getByNode = function(node) {
0
 
0
     node = Node.one(node);
0
     if (node) {
0
-        node = (node.hasClass(widgetMarker)) ? node : node.ancestor("." + widgetMarker);
0
+        node = node.ancestor("." + widgetMarker, true);
0
         if (node) {
0
             widget = _instances[Y.stamp(node, TRUE)];
0
         }
0
@@ -365,7 +368,7 @@ Y.extend(Widget, Y.Base, {
0
    * @param {String}+ One or more classname bits to be joined and prefixed
0
    */
0
   getClassName: function () {
0
-        return _getClassName.apply(ClassNameManager, [this._name].concat(Y.Array(arguments)));
0
+        return _getClassName.apply(ClassNameManager, [this._cssPrefix].concat(Y.Array(arguments), true));
0
   },
0
 
0
     /**
0
@@ -378,8 +381,6 @@ Y.extend(Widget, Y.Base, {
0
      */
0
     initializer: function(config) {
0
 
0
-        this._name = this.constructor.NAME.toLowerCase();
0
-
0
         _instances[Y.stamp(this.get(BOUNDING_BOX))] = this;
0
 
0
         /**
0
@@ -767,6 +768,7 @@ Y.extend(Widget, Y.Base, {
0
      */
0
     _renderBoxClassNames : function() {
0
         var classes = this._getClasses(),
0
+            cl,
0
             boundingBox = this.get(BOUNDING_BOX),
0
             i;
0
 
0
@@ -774,7 +776,8 @@ Y.extend(Widget, Y.Base, {
0
 
0
         // Start from Widget Sub Class
0
         for (i = classes.length-3; i >= 0; i--) {
0
-            boundingBox.addClass(ClassNameManager.getClassName(classes[i].NAME.toLowerCase()));
0
+            cl = classes[i];
0
+            boundingBox.addClass(cl.CSS_PREFIX || _getClassName(cl.NAME.toLowerCase()));
0
         }
0
 
0
         // Use instance based name for content box
0
@@ -1097,6 +1100,7 @@ Y.extend(Widget, Y.Base, {
0
     },
0
 
0
     _BIND_UI_ATTRS : UI_ATTRS,
0
+
0
     _SYNC_UI_ATTRS : UI_ATTRS.concat(TAB_INDEX),
0
 
0
     /**
0
build/widget/widget-debug.js
...
8
9
10
 
11
12
13
14
15
 
16
17
18
...
90
91
92
 
93
94
95
...
101
102
103
104
105
106
107
...
290
291
292
293
 
294
295
 
 
 
296
297
298
299
 
300
301
302
...
313
314
315
316
 
317
318
319
...
336
337
338
339
 
340
341
342
...
366
367
368
369
 
370
371
372
...
380
381
382
383
384
385
386
387
...
771
772
773
 
774
775
776
...
778
779
780
781
 
 
782
783
784
...
1101
1102
1103
 
1104
1105
1106
...
8
9
10
11
12
13
14
15
 
16
17
18
19
...
91
92
93
94
95
96
97
...
103
104
105
 
106
107
108
...
291
292
293
 
294
295
 
296
297
298
299
300
301
 
302
303
304
305
...
316
317
318
 
319
320
321
322
...
339
340
341
 
342
343
344
345
...
369
370
371
 
372
373
374
375
...
383
384
385
 
 
386
387
388
...
772
773
774
775
776
777
778
...
780
781
782
 
783
784
785
786
787
...
1104
1105
1106
1107
1108
1109
1110
0
@@ -8,11 +8,12 @@ YUI.add('widget-base', function(Y) {
0
 
0
 var L = Y.Lang,
0
     Node = Y.Node,
0
+
0
     ClassNameManager = Y.ClassNameManager,
0
 
0
     _getClassName = ClassNameManager.getClassName,
0
     _getWidgetClassName,
0
-    
0
+
0
     _toInitialCap = Y.cached(function(str) {
0
         return str.substring(0, 1).toUpperCase() + str.substring(1);
0
     }),
0
@@ -90,6 +91,7 @@ function Widget(config) {
0
     Y.log('constructor called', 'life', 'widget');
0
 
0
     this._strs = {};
0
+    this._cssPrefix = this.constructor.CSS_PREFIX || _getClassName(this.constructor.NAME.toLowerCase());
0
 
0
     Widget.superclass.constructor.apply(this, arguments);
0
 
0
@@ -101,7 +103,6 @@ function Widget(config) {
0
         }
0
         this.render(parentNode);
0
     }
0
-    
0
 }
0
 
0
 /**
0
@@ -290,13 +291,15 @@ ATTRS[RENDER] = {
0
 };
0
 
0
 /**
0
- * Cached lowercase version of Widget.NAME
0
+ * The css prefix which the static Widget.getClassName method should use when constructing class names
0
  *
0
- * @property Widget._NAME_LOWERCASE
0
+ * @property Widget.CSS_PREFIX
0
+ * @type String
0
+ * @default Widget.NAME.toLowerCase()
0
  * @private
0
  * @static
0
  */
0
-Widget._NAME = Widget.NAME.toLowerCase();
0
+Widget.CSS_PREFIX = _getClassName(Widget.NAME.toLowerCase());
0
 
0
 /**
0
  * Generate a standard prefixed classname for the Widget, prefixed by the default prefix defined
0
@@ -313,7 +316,7 @@ Widget._NAME = Widget.NAME.toLowerCase();
0
  */
0
 Widget.getClassName = function() {
0
     // arguments needs to be array'fied to concat
0
-    return _getClassName.apply(ClassNameManager, [Widget._NAME].concat(Y.Array(arguments)));
0
+    return _getClassName.apply(ClassNameManager, [Widget.CSS_PREFIX].concat(Y.Array(arguments), true));
0
 };
0
 
0
 _getWidgetClassName = Widget.getClassName;
0
@@ -336,7 +339,7 @@ Widget.getByNode = function(node) {
0
 
0
     node = Node.one(node);
0
     if (node) {
0
-        node = (node.hasClass(widgetMarker)) ? node : node.ancestor("." + widgetMarker);
0
+        node = node.ancestor("." + widgetMarker, true);
0
         if (node) {
0
             widget = _instances[Y.stamp(node, TRUE)];
0
         }
0
@@ -366,7 +369,7 @@ Y.extend(Widget, Y.Base, {
0
    * @param {String}+ One or more classname bits to be joined and prefixed
0
    */
0
   getClassName: function () {
0
-        return _getClassName.apply(ClassNameManager, [this._name].concat(Y.Array(arguments)));
0
+        return _getClassName.apply(ClassNameManager, [this._cssPrefix].concat(Y.Array(arguments), true));
0
   },
0
 
0
     /**
0
@@ -380,8 +383,6 @@ Y.extend(Widget, Y.Base, {
0
     initializer: function(config) {
0
         Y.log('initializer called', 'life', 'widget');
0
 
0
-        this._name = this.constructor.NAME.toLowerCase();
0
-
0
         _instances[Y.stamp(this.get(BOUNDING_BOX))] = this;
0
 
0
         /**
0
@@ -771,6 +772,7 @@ Y.extend(Widget, Y.Base, {
0
      */
0
     _renderBoxClassNames : function() {
0
         var classes = this._getClasses(),
0
+            cl,
0
             boundingBox = this.get(BOUNDING_BOX),
0
             i;
0
 
0
@@ -778,7 +780,8 @@ Y.extend(Widget, Y.Base, {
0
 
0
         // Start from Widget Sub Class
0
         for (i = classes.length-3; i >= 0; i--) {
0
-            boundingBox.addClass(ClassNameManager.getClassName(classes[i].NAME.toLowerCase()));
0
+            cl = classes[i];
0
+            boundingBox.addClass(cl.CSS_PREFIX || _getClassName(cl.NAME.toLowerCase()));
0
         }
0
 
0
         // Use instance based name for content box
0
@@ -1101,6 +1104,7 @@ Y.extend(Widget, Y.Base, {
0
     },
0
 
0
     _BIND_UI_ATTRS : UI_ATTRS,
0
+
0
     _SYNC_UI_ATTRS : UI_ATTRS.concat(TAB_INDEX),
0
 
0
     /**
0
build/widget/widget-min.js
...
1
 
2
3
...
 
1
2
3
0
@@ -1,2 +1,2 @@
0
-YUI.add("widget-base",function(B){var G=B.Lang,U=B.Node,E=B.ClassNameManager,b=E.getClassName,s,V=B.cached(function(L){return L.substring(0,1).toUpperCase()+L.substring(1);}),l="content",w="visible",r="hidden",d="disabled",h="focused",D="width",f="height",t="boundingBox",a="contentBox",K="parentNode",O="ownerDocument",m="offsetHeight",c="auto",J="srcNode",p="body",o="tabIndex",T="id",I="render",q="rendered",P="destroyed",A="strings",Q="<div></div>",e="Change",R="loading",k="_uiSet",j="",n=function(){},M=/(\w+):(\w+)/,Z="$2",X=true,u=false,W,N={},F=[w,d,f,D,h],i=B.UA.webkit,S=B.UA.ie,v="contentUpdate",g={},H={};function C(Y){this._strs={};C.superclass.constructor.apply(this,arguments);var x=this.get(I),L;if(x){if(x!==X){L=x;}this.render(L);}}C.NAME="widget";W=C.UI_SRC="ui";C.ATTRS=N;N[T]={valueFn:"_guid",writeOnce:X};N[q]={value:u,readOnly:X};N[t]={value:null,setter:"_setBB",writeOnce:X};N[a]={value:null,setter:"_setCB",writeOnce:X};N[o]={value:null,validator:"_validTabIndex"};N[h]={value:u,readOnly:X};N[d]={value:u};N[w]={value:X};N[f]={value:j};N[D]={value:j};N[A]={value:{},setter:"_strSetter",getter:"_strGetter"};N[I]={value:u,writeOnce:X};C._NAME=C.NAME.toLowerCase();C.getClassName=function(){return b.apply(E,[C._NAME].concat(B.Array(arguments)));};s=C.getClassName;C.getByNode=function(L){var x,Y=s();L=U.one(L);if(L){L=(L.hasClass(Y))?L:L.ancestor("."+Y);if(L){x=H[B.stamp(L,X)];}}return x||null;};B.extend(C,B.Base,{getClassName:function(){return b.apply(E,[this._name].concat(B.Array(arguments)));},initializer:function(L){this._name=this.constructor.NAME.toLowerCase();H[B.stamp(this.get(t))]=this;this.publish(v,{preventable:u});if(this._applyParser){this._applyParser(L);}},destructor:function(){var L=this.get(t),x=B.stamp(L,X),Y=B.stamp(this,X);if(x in H){delete H[x];}B.each(g,function(y){if(y.instances[Y]){delete y.instances[Y];if(B.Object.size(y.instances)===0){y.handle.detach();}}});this._unbindUI(L);L.remove(X);},render:function(L){if(!this.get(P)&&!this.get(q)){this.publish(I,{queuable:u,fireOnce:X,defaultFn:this._defRenderFn});this.fire(I,{parentNode:(L)?U.one(L):null});}return this;},_defRenderFn:function(L){if(L.target===this){this._renderUI(L.parentNode);this._bindUI();this._syncUI();this.renderer();this._set(q,X);this._removeLoadingClassNames();}},renderer:function(){this.renderUI();this.bindUI();this.syncUI();},bindUI:n,renderUI:n,syncUI:n,hide:function(){return this.set(w,u);},show:function(){return this.set(w,X);},focus:function(){return this._set(h,X);},blur:function(){return this._set(h,u);},enable:function(){return this.set(d,u);},disable:function(){return this.set(d,X);},_uiSizeCB:function(x){var z=this.get(t),Y=this.get(a),L=s("tmp","forcesize"),y=this._bbs,AA=S&&S<7;if(y){Y.toggleClass(s(l,"expanded"),x);}else{if(x){if(AA){z.addClass(L);}Y.set(m,z.get(m));if(AA){z.removeClass(L);}}else{Y.setStyle(f,j);}}},_renderBox:function(L){var Y=this.get(a),x=this.get(t),z=this.get(J),y=(z&&z.get(O))||x.get(O)||Y.get(O);if(z&&!z.compareTo(Y)&&!Y.inDoc(y)){z.replace(Y);}if(!x.compareTo(Y.get(K))&&!x.compareTo(Y)){if(Y.inDoc(y)){Y.replace(x);}x.appendChild(Y);}if(L){L.appendChild(x);}else{if(!x.inDoc(y)){U.one(p).insert(x,0);}}this._bbs=!(S&&S<8&&y.compatMode!="BackCompat");},_setBB:function(L){return this._setBox(this.get(T),L,this.BOUNDING_TEMPLATE);},_setCB:function(L){return(this.CONTENT_TEMPLATE===null)?this.get(t):this._setBox(null,L,this.CONTENT_TEMPLATE);},_setBox:function(x,Y,L){Y=U.one(Y)||U.create(L);if(!Y.get(T)){Y.set(T,x||B.guid());}return Y;},_renderUI:function(L){this._renderBoxClassNames();this._renderBox(L);},_renderBoxClassNames:function(){var x=this._getClasses(),L=this.get(t),Y;L.addClass(s());for(Y=x.length-3;Y>=0;Y--){L.addClass(E.getClassName(x[Y].NAME.toLowerCase()));}this.get(a).addClass(this.getClassName(l));},_removeLoadingClassNames:function(){var L=this.get(t);L.removeClass(s(R));L.removeClass(this.getClassName(R));},_bindUI:function(){this._bindAttrUI(this._BIND_UI_ATTRS);this._bindDOM();},_unbindUI:function(L){this._unbindAttrUI(this._BIND_UI_ATTRS);this._unbindDOM(L);},_bindDOM:function(){var L=this.get(t).get(O);this._hDocFocus=L.on("focus",this._onDocFocus,this);if(i){this._hDocMouseDown=L.on("mousedown",this._onDocMouseDown,this);}},_unbindDOM:function(L){this._hDocFocus.detach();if(i){this._hDocMouseDown.detach();}},_syncUI:function(){this._syncAttrUI(this._SYNC_UI_ATTRS);},_uiSetHeight:function(L){this._uiSetDim(f,L);this._uiSizeCB((L!==j&&L!==c));},_uiSetWidth:function(L){this._uiSetDim(D,L);},_uiSetDim:function(L,Y){this.get(t).setStyle(L,G.isNumber(Y)?Y+this.DEF_UNIT:Y);},_uiSetVisible:function(L){this.get(t).toggleClass(this.getClassName(r),!L);},_uiSetDisabled:function(L){this.get(t).toggleClass(this.getClassName(d),L);},_uiSetFocused:function(x,Y){var L=this.get(t);L.toggleClass(this.getClassName(h),x);if(Y!==W){if(x){L.focus();}else{L.blur();}}},_uiSetTabIndex:function(Y){var L=this.get(t);if(G.isNumber(Y)){L.set(o,Y);}else{L.removeAttribute(o);}},_onDocMouseDown:function(L){if(this._hasDOMFocus){this._onDocFocus(L);}},_onDocFocus:function(Y){var L=this.get(t).contains(Y.target);this._hasDOMFocus=L;this._set(h,L,{src:W});},toString:function(){return this.constructor.NAME+"["+this.get(T)+"]";},DEF_UNIT:"px",CONTENT_TEMPLATE:Q,BOUNDING_TEMPLATE:Q,_guid:function(){return B.guid();},_validTabIndex:function(L){return(G.isNumber(L)||G.isNull(L));},_bindAttrUI:function(L){this._doBindAttrUI(L,X);},_unbindAttrUI:function(L){this._doBindAttrUI(L,u);},_syncAttrUI:function(x){var y,Y=x.length,L;for(y=0;y<Y;y++){L=x[y];this[k+V(L)](this.get(L));}},_doBindAttrUI:function(x,z){var y,L=x.length,Y=(z)?"after":"detach";for(y=0;y<L;y++){this[Y](x[y]+e,this._setAttrUI);}},_setAttrUI:function(L){this[k+V(L.attrName)](L.newVal,L.src);},_strSetter:function(L){return B.merge(this.get(A),L);},getString:function(L){return this.get(A)[L];},getStrings:function(){return this.get(A);},_BIND_UI_ATTRS:F,_SYNC_UI_ATTRS:F.concat(o),UI_EVENTS:B.Node.DOM_EVENTS,_getUIEventNode:function(){return this.get(t);
0
+YUI.add("widget-base",function(B){var G=B.Lang,U=B.Node,E=B.ClassNameManager,b=E.getClassName,s,V=B.cached(function(L){return L.substring(0,1).toUpperCase()+L.substring(1);}),l="content",w="visible",r="hidden",d="disabled",h="focused",D="width",f="height",t="boundingBox",a="contentBox",K="parentNode",O="ownerDocument",m="offsetHeight",c="auto",J="srcNode",p="body",o="tabIndex",T="id",I="render",q="rendered",P="destroyed",A="strings",Q="<div></div>",e="Change",R="loading",k="_uiSet",j="",n=function(){},M=/(\w+):(\w+)/,Z="$2",X=true,u=false,W,N={},F=[w,d,f,D,h],i=B.UA.webkit,S=B.UA.ie,v="contentUpdate",g={},H={};function C(Y){this._strs={};this._cssPrefix=this.constructor.CSS_PREFIX||b(this.constructor.NAME.toLowerCase());C.superclass.constructor.apply(this,arguments);var x=this.get(I),L;if(x){if(x!==X){L=x;}this.render(L);}}C.NAME="widget";W=C.UI_SRC="ui";C.ATTRS=N;N[T]={valueFn:"_guid",writeOnce:X};N[q]={value:u,readOnly:X};N[t]={value:null,setter:"_setBB",writeOnce:X};N[a]={value:null,setter:"_setCB",writeOnce:X};N[o]={value:null,validator:"_validTabIndex"};N[h]={value:u,readOnly:X};N[d]={value:u};N[w]={value:X};N[f]={value:j};N[D]={value:j};N[A]={value:{},setter:"_strSetter",getter:"_strGetter"};N[I]={value:u,writeOnce:X};C.CSS_PREFIX=b(C.NAME.toLowerCase());C.getClassName=function(){return b.apply(E,[C.CSS_PREFIX].concat(B.Array(arguments),true));};s=C.getClassName;C.getByNode=function(L){var x,Y=s();L=U.one(L);if(L){L=L.ancestor("."+Y,true);if(L){x=H[B.stamp(L,X)];}}return x||null;};B.extend(C,B.Base,{getClassName:function(){return b.apply(E,[this._cssPrefix].concat(B.Array(arguments),true));},initializer:function(L){H[B.stamp(this.get(t))]=this;this.publish(v,{preventable:u});if(this._applyParser){this._applyParser(L);}},destructor:function(){var L=this.get(t),x=B.stamp(L,X),Y=B.stamp(this,X);if(x in H){delete H[x];}B.each(g,function(y){if(y.instances[Y]){delete y.instances[Y];if(B.Object.size(y.instances)===0){y.handle.detach();}}});this._unbindUI(L);L.remove(X);},render:function(L){if(!this.get(P)&&!this.get(q)){this.publish(I,{queuable:u,fireOnce:X,defaultFn:this._defRenderFn});this.fire(I,{parentNode:(L)?U.one(L):null});}return this;},_defRenderFn:function(L){if(L.target===this){this._renderUI(L.parentNode);this._bindUI();this._syncUI();this.renderer();this._set(q,X);this._removeLoadingClassNames();}},renderer:function(){this.renderUI();this.bindUI();this.syncUI();},bindUI:n,renderUI:n,syncUI:n,hide:function(){return this.set(w,u);},show:function(){return this.set(w,X);},focus:function(){return this._set(h,X);},blur:function(){return this._set(h,u);},enable:function(){return this.set(d,u);},disable:function(){return this.set(d,X);},_uiSizeCB:function(x){var z=this.get(t),Y=this.get(a),L=s("tmp","forcesize"),y=this._bbs,AA=S&&S<7;if(y){Y.toggleClass(s(l,"expanded"),x);}else{if(x){if(AA){z.addClass(L);}Y.set(m,z.get(m));if(AA){z.removeClass(L);}}else{Y.setStyle(f,j);}}},_renderBox:function(L){var Y=this.get(a),x=this.get(t),z=this.get(J),y=(z&&z.get(O))||x.get(O)||Y.get(O);if(z&&!z.compareTo(Y)&&!Y.inDoc(y)){z.replace(Y);}if(!x.compareTo(Y.get(K))&&!x.compareTo(Y)){if(Y.inDoc(y)){Y.replace(x);}x.appendChild(Y);}if(L){L.appendChild(x);}else{if(!x.inDoc(y)){U.one(p).insert(x,0);}}this._bbs=!(S&&S<8&&y.compatMode!="BackCompat");},_setBB:function(L){return this._setBox(this.get(T),L,this.BOUNDING_TEMPLATE);},_setCB:function(L){return(this.CONTENT_TEMPLATE===null)?this.get(t):this._setBox(null,L,this.CONTENT_TEMPLATE);},_setBox:function(x,Y,L){Y=U.one(Y)||U.create(L);if(!Y.get(T)){Y.set(T,x||B.guid());}return Y;},_renderUI:function(L){this._renderBoxClassNames();this._renderBox(L);},_renderBoxClassNames:function(){var y=this._getClasses(),L,Y=this.get(t),x;Y.addClass(s());for(x=y.length-3;x>=0;x--){L=y[x];Y.addClass(L.CSS_PREFIX||b(L.NAME.toLowerCase()));}this.get(a).addClass(this.getClassName(l));},_removeLoadingClassNames:function(){var L=this.get(t);L.removeClass(s(R));L.removeClass(this.getClassName(R));},_bindUI:function(){this._bindAttrUI(this._BIND_UI_ATTRS);this._bindDOM();},_unbindUI:function(L){this._unbindAttrUI(this._BIND_UI_ATTRS);this._unbindDOM(L);},_bindDOM:function(){var L=this.get(t).get(O);this._hDocFocus=L.on("focus",this._onDocFocus,this);if(i){this._hDocMouseDown=L.on("mousedown",this._onDocMouseDown,this);}},_unbindDOM:function(L){this._hDocFocus.detach();if(i){this._hDocMouseDown.detach();}},_syncUI:function(){this._syncAttrUI(this._SYNC_UI_ATTRS);},_uiSetHeight:function(L){this._uiSetDim(f,L);this._uiSizeCB((L!==j&&L!==c));},_uiSetWidth:function(L){this._uiSetDim(D,L);},_uiSetDim:function(L,Y){this.get(t).setStyle(L,G.isNumber(Y)?Y+this.DEF_UNIT:Y);},_uiSetVisible:function(L){this.get(t).toggleClass(this.getClassName(r),!L);},_uiSetDisabled:function(L){this.get(t).toggleClass(this.getClassName(d),L);},_uiSetFocused:function(x,Y){var L=this.get(t);L.toggleClass(this.getClassName(h),x);if(Y!==W){if(x){L.focus();}else{L.blur();}}},_uiSetTabIndex:function(Y){var L=this.get(t);if(G.isNumber(Y)){L.set(o,Y);}else{L.removeAttribute(o);}},_onDocMouseDown:function(L){if(this._hasDOMFocus){this._onDocFocus(L);}},_onDocFocus:function(Y){var L=this.get(t).contains(Y.target);this._hasDOMFocus=L;this._set(h,L,{src:W});},toString:function(){return this.constructor.NAME+"["+this.get(T)+"]";},DEF_UNIT:"px",CONTENT_TEMPLATE:Q,BOUNDING_TEMPLATE:Q,_guid:function(){return B.guid();},_validTabIndex:function(L){return(G.isNumber(L)||G.isNull(L));},_bindAttrUI:function(L){this._doBindAttrUI(L,X);},_unbindAttrUI:function(L){this._doBindAttrUI(L,u);},_syncAttrUI:function(x){var y,Y=x.length,L;for(y=0;y<Y;y++){L=x[y];this[k+V(L)](this.get(L));}},_doBindAttrUI:function(x,z){var y,L=x.length,Y=(z)?"after":"detach";for(y=0;y<L;y++){this[Y](x[y]+e,this._setAttrUI);}},_setAttrUI:function(L){this[k+V(L.attrName)](L.newVal,L.src);},_strSetter:function(L){return B.merge(this.get(A),L);},getString:function(L){return this.get(A)[L];},getStrings:function(){return this.get(A);},_BIND_UI_ATTRS:F,_SYNC_UI_ATTRS:F.concat(o),UI_EVENTS:B.Node.DOM_EVENTS,_getUIEventNode:function(){return this.get(t);
0
 },_createUIEvent:function(x){var AA=this._getUIEventNode(),L=AA.get(K),Y=(B.stamp(L)+x),z=g[Y],y;if(!z){y=L.delegate(x,function(AB){var AC=C.getByNode(this);AC.fire(AB.type,{domEvent:AB});},"."+s());g[Y]=z={instances:{},handle:y};}z.instances[B.stamp(this)]=1;},_getUIEvent:function(Y){if(G.isString(Y)){var x=Y.replace(M,Z),L;if(this.UI_EVENTS[x]){L=x;}return L;}},_initUIEvent:function(Y){var x=this._getUIEvent(Y),L=this._uiEvtsInitQueue||{};if(x&&!L[x]){this.after(I,function(){this._createUIEvent(x);delete this._uiEvtsInitQueue[x];});this._uiEvtsInitQueue=L[x]=1;}},on:function(L){this._initUIEvent(L);return C.superclass.on.apply(this,arguments);},after:function(L){this._initUIEvent(L);return C.superclass.after.apply(this,arguments);},publish:function(Y,L){var x=this._getUIEvent(Y);if(x&&L&&L.defaultFn){this._initUIEvent(x);}return C.superclass.publish.apply(this,arguments);}});B.Widget=C;},"@VERSION@",{requires:["attribute","event-focus","base","node","classnamemanager"]});YUI.add("widget-htmlparser",function(F){var E=F.Widget,C=F.Node,D=F.Lang,A="srcNode",B="contentBox";E.HTML_PARSER={};E._buildCfg={aggregates:["HTML_PARSER"]};E.ATTRS[A]={value:null,setter:C.one,getter:"_getSrcNode",writeOnce:true};F.mix(E.prototype,{_getSrcNode:function(G){return G||this.get(B);},_applyParsedConfig:function(I,G,H){return(H)?F.aggregate(G,H,false):G;},_applyParser:function(G){var I=this,J=I.get(A),H=I._getHtmlParser(),L,K;if(H&&J){F.Object.each(H,function(N,M,O){K=null;if(D.isFunction(N)){K=N.call(I,J);}else{if(D.isArray(N)){K=J.all(N[0]);}else{K=J.one(N);}}if(K!==null&&K!==undefined){L=L||{};L[M]=K;}});}G=I._applyParsedConfig(J,G,L);},_getHtmlParser:function(){var H=this._getClasses(),J={},G,I;for(G=H.length-1;G>=0;G--){I=H[G].HTML_PARSER;if(I){F.mix(J,I,true);}}return J;}});},"@VERSION@",{requires:["widget-base"]});YUI.add("widget-i18n",function(F){var C=true,G="locale",E="initValue",B="-",A="",D=F.Widget;D.ATTRS[G]={value:"en"};F.mix(D.prototype,{_setStrings:function(I,H){var J=this._strs;H=H.toLowerCase();if(!J[H]){J[H]={};}F.aggregate(J[H],I,C);return J[H];},_getStrings:function(H){return this._strs[H.toLowerCase()];},getStrings:function(P){P=(P||this.get(G)).toLowerCase();var N=this.getDefaultLocale().toLowerCase(),I=this._getStrings(N),O=(I)?F.merge(I):{},L=P.split(B),M,K,J,H;if(P!==N||L.length>1){H=A;for(K=0,J=L.length;K<J;++K){H+=L[K];M=this._getStrings(H);if(M){F.aggregate(O,M,C);}H+=B;}}return O;},getString:function(J,I){I=(I||this.get(G)).toLowerCase();var K=(this.getDefaultLocale()).toLowerCase(),L=this._getStrings(K)||{},M=L[J],H=I.lastIndexOf(B);if(I!==K||H!=-1){do{L=this._getStrings(I);if(L&&J in L){M=L[J];break;}H=I.lastIndexOf(B);if(H!=-1){I=I.substring(0,H);}}while(H!=-1);}return M;},getDefaultLocale:function(){return this._state.get(G,E);},_strSetter:function(H){return this._setStrings(H,this.get(G));},_strGetter:function(H){return this._getStrings(this.get(G));}},true);},"@VERSION@",{requires:["widget-base"]});YUI.add("widget",function(A){},"@VERSION@",{use:["widget-base","widget-htmlparser","widget-i18n"]});
0
\ No newline at end of file
0
build/widget/widget.js
...
8
9
10
 
11
12
13
14
15
 
16
17
18
...
89
90
91
 
92
93
94
...
100
101
102
103
104
105
106
...
289
290
291
292
 
293
294
 
 
 
295
296
297
298
 
299
300
301
...
312
313
314
315
 
316
317
318
...
335
336
337
338
 
339
340
341
...
365
366
367
368
 
369
370
371
...
378
379
380
381
382
383
384
385
...
767
768
769
 
770
771
772
...
774
775
776
777
 
 
778
779
780
...
1097
1098
1099
 
1100
1101
1102
...
8
9
10
11
12
13
14
15
 
16
17
18
19
...
90
91
92
93
94
95
96
...
102
103
104
 
105
106
107
...
290
291
292
 
293
294
 
295
296
297
298
299
300
 
301
302
303
304
...
315
316
317
 
318
319
320
321
...
338
339
340
 
341
342
343
344
...
368
369
370
 
371
372
373
374
...
381
382
383
 
 
384
385
386
...
768
769
770
771
772
773
774
...
776
777
778
 
779
780
781
782
783
...
1100
1101
1102
1103
1104
1105
1106
0
@@ -8,11 +8,12 @@ YUI.add('widget-base', function(Y) {
0
 
0
 var L = Y.Lang,
0
     Node = Y.Node,
0
+
0
     ClassNameManager = Y.ClassNameManager,
0
 
0
     _getClassName = ClassNameManager.getClassName,
0
     _getWidgetClassName,
0
-    
0
+
0
     _toInitialCap = Y.cached(function(str) {
0
         return str.substring(0, 1).toUpperCase() + str.substring(1);
0
     }),
0
@@ -89,6 +90,7 @@ var L = Y.Lang,
0
 function Widget(config) {
0
 
0
     this._strs = {};
0
+    this._cssPrefix = this.constructor.CSS_PREFIX || _getClassName(this.constructor.NAME.toLowerCase());
0
 
0
     Widget.superclass.constructor.apply(this, arguments);
0
 
0
@@ -100,7 +102,6 @@ function Widget(config) {
0
         }
0
         this.render(parentNode);
0
     }
0
-    
0
 }
0
 
0
 /**
0
@@ -289,13 +290,15 @@ ATTRS[RENDER] = {
0
 };
0
 
0
 /**
0
- * Cached lowercase version of Widget.NAME
0
+ * The css prefix which the static Widget.getClassName method should use when constructing class names
0
  *
0
- * @property Widget._NAME_LOWERCASE
0
+ * @property Widget.CSS_PREFIX
0
+ * @type String
0
+ * @default Widget.NAME.toLowerCase()
0
  * @private
0
  * @static
0
  */
0
-Widget._NAME = Widget.NAME.toLowerCase();
0
+Widget.CSS_PREFIX = _getClassName(Widget.NAME.toLowerCase());
0
 
0
 /**
0
  * Generate a standard prefixed classname for the Widget, prefixed by the default prefix defined
0
@@ -312,7 +315,7 @@ Widget._NAME = Widget.NAME.toLowerCase();
0
  */
0
 Widget.getClassName = function() {
0
     // arguments needs to be array'fied to concat
0
-    return _getClassName.apply(ClassNameManager, [Widget._NAME].concat(Y.Array(arguments)));
0
+    return _getClassName.apply(ClassNameManager, [Widget.CSS_PREFIX].concat(Y.Array(arguments), true));
0
 };
0
 
0
 _getWidgetClassName = Widget.getClassName;
0
@@ -335,7 +338,7 @@ Widget.getByNode = function(node) {
0
 
0
     node = Node.one(node);
0
     if (node) {
0
-        node = (node.hasClass(widgetMarker)) ? node : node.ancestor("." + widgetMarker);
0
+        node = node.ancestor("." + widgetMarker, true);
0
         if (node) {
0
             widget = _instances[Y.stamp(node, TRUE)];
0
         }
0
@@ -365,7 +368,7 @@ Y.extend(Widget, Y.Base, {
0
    * @param {String}+ One or more classname bits to be joined and prefixed
0
    */
0
   getClassName: function () {
0
-        return _getClassName.apply(ClassNameManager, [this._name].concat(Y.Array(arguments)));
0
+        return _getClassName.apply(ClassNameManager, [this._cssPrefix].concat(Y.Array(arguments), true));
0
   },
0
 
0
     /**
0
@@ -378,8 +381,6 @@ Y.extend(Widget, Y.Base, {
0
      */
0
     initializer: function(config) {
0
 
0
-        this._name = this.constructor.NAME.toLowerCase();
0
-
0
         _instances[Y.stamp(this.get(BOUNDING_BOX))] = this;
0
 
0
         /**
0
@@ -767,6 +768,7 @@ Y.extend(Widget, Y.Base, {
0
      */
0
     _renderBoxClassNames : function() {
0
         var classes = this._getClasses(),
0
+            cl,
0
             boundingBox = this.get(BOUNDING_BOX),
0
             i;
0
 
0
@@ -774,7 +776,8 @@ Y.extend(Widget, Y.Base, {
0
 
0
         // Start from Widget Sub Class
0
         for (i = classes.length-3; i >= 0; i--) {
0
-            boundingBox.addClass(ClassNameManager.getClassName(classes[i].NAME.toLowerCase()));
0
+            cl = classes[i];
0
+            boundingBox.addClass(cl.CSS_PREFIX || _getClassName(cl.NAME.toLowerCase()));
0
         }
0
 
0
         // Use instance based name for content box
0
@@ -1097,6 +1100,7 @@ Y.extend(Widget, Y.Base, {
0
     },
0
 
0
     _BIND_UI_ATTRS : UI_ATTRS,
0
+
0
     _SYNC_UI_ATTRS : UI_ATTRS.concat(TAB_INDEX),
0
 
0
     /**
0
src/base/README
...
1
2
 
 
 
3
4
5
...
1
2
3
4
5
6
7
8
0
@@ -1,5 +1,8 @@
0
 Development Master
0
 
0
+* Added support for MyClass.EVENT_PREFIX to allow developers
0
+  to define their own event prefix
0
+
0
 * Made "init" and "destroy" events fireOnce:true (along with
0
   "render" in Widget), so that subscriptions made after the 
0
   events are fired, are notified immediately.
0
src/base/js/Base.js
...
83
84
85
 
 
 
 
 
 
 
 
 
 
86
87
88
...
173
174
175
176
177
178
179
180
181
182
183
 
184
185
186
...
559
560
561
 
562
563
564
...
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
...
183
184
185
 
 
 
 
 
 
 
 
186
187
188
189
...
562
563
564
565
566
567
568
0
@@ -83,6 +83,16 @@
0
 
0
         if (this._lazyAddAttrs !== false) { this._lazyAddAttrs = true; }
0
 
0
+        /**
0
+         * The string used to identify the class of this object.
0
+         *
0
+         * @deprecated Use this.constructor.NAME
0
+         * @property name
0
+         * @type String
0
+         */
0
+        this.name = this.constructor.NAME;
0
+        this._eventPrefix = this.constructor.EVENT_PREFIX || this.constructor.NAME;
0
+
0
         this.init.apply(this, arguments);
0
     }
0
 
0
@@ -173,14 +183,7 @@
0
         init: function(config) {
0
             Y.log('init called', 'life', 'base');
0
 
0
-            /**
0
-             * The string used to identify the class of this object.
0
-             *
0
-             * @deprecated Use this.constructor.NAME
0
-             * @property name
0
-             * @type String
0
-             */
0
-            this._yuievt.config.prefix = this.name = this.constructor.NAME;
0
+            this._yuievt.config.prefix = this._eventPrefix;
0
 
0
             /**
0
              * <p>
0
@@ -559,6 +562,7 @@
0
         toString: function() {
0
             return this.constructor.NAME + "[" + Y.stamp(this) + "]";
0
         }
0
+
0
     };
0
 
0
     // Straightup augment, no wrapper functions
0
src/classnamemanager/js/classnamemanager.js
...
56
57
58
59
 
60
61
 
 
62
63
 
64
65
66
67
 
68
69
 
 
 
 
 
70
 
71
72
73
...
56
57
58
 
59
60
 
61
62
63
 
64
65
 
 
 
66
67
 
68
69
70
71
72
73
74
75
76
77
0
@@ -56,18 +56,22 @@ Y.ClassNameManager = function () {
0
      * <code>Y.config.classNamePrefix</code> attribute + the provided strings.
0
      * Uses the <code>Y.config.classNameDelimiter</code> attribute to delimit the 
0
      * provided strings. E.g. Y.ClassNameManager.getClassName('foo','bar'); // yui-foo-bar
0
-     * 
0
+     *
0
      * @method getClassName
0
-     * @param {String}+ one or more classname bits to be joined and prefixed
0
+     * @param {String}+ classnameSection one or more classname sections to be joined
0
+     * @param {Boolean} skipPrefix If set to true, the classname will not be prefixed with the default Y.config.classNameDelimiter value.  
0
      */
0
-    getClassName: Y.cached(function (c, x) {
0
+    getClassName: Y.cached(function () {
0
 
0
-      var sClass = sPrefix + sDelimiter + 
0
-                   // ((x) ? Y.Array(arguments, 0, true).join(sDelimiter) : c);
0
-                   ((x) ? Array.prototype.join.call(arguments, sDelimiter) : c);
0
+            var args = Y.Array(arguments);
0
 
0
-      return sClass.replace(/\s/g, '');
0
+            if (args[args.length-1] !== true) {
0
+                args.unshift(sPrefix);
0
+            } else {
0
+                args.pop();
0
+            }
0
 
0
+      return args.join(sDelimiter);
0
     })
0
 
0
   };
0
src/classnamemanager/tests/classnamemanager.html
...
22
23
24
25
26
 
27
28
29
30
 
 
 
 
 
 
 
31
 
32
33
34
 
 
 
35
36
37
...
22
23
24
 
 
25
26
 
 
 
27
28
29
30
31
32
33
34
35
36
 
 
37
38
39
40
41
42
0
@@ -22,16 +22,21 @@
0
 
0
               name: "ClassNameManager Tests",
0
 
0
-              testCoreFunctionality: function() {
0
-
0
+              testSingleSection: function() {
0
           Y.Assert.areEqual(Y.ClassNameManager.getClassName("menuitem"), "yui-menuitem");
0
-
0
-          Y.Assert.areEqual(Y.ClassNameManager.getClassName("menu item"), "yui-menuitem");
0
-
0
+                },
0
+                
0
+                testSingleSectionNoPrefix: function() {
0
+                    Y.Assert.areEqual(Y.ClassNameManager.getClassName("menuitem", true), "menuitem");
0
+                },
0
+                
0
+                testMoreThanOneSection : function() {
0
           Y.Assert.areEqual(Y.ClassNameManager.getClassName("menuitem", "active"), "yui-menuitem-active");
0
+                },
0
 
0
-              }
0
-
0
+                testMoreThanOneSectionNoPrefix : function() {
0
+                    Y.Assert.areEqual(Y.ClassNameManager.getClassName("menuitem", "active", true), "menuitem-active");
0
+                }
0
           });
0
 
0
           Y.Test.Runner.add(testClassNameManager);
0
src/widget/README
...
1
2
3
 
 
 
 
 
 
4
5
6
...
1
2
 
3
4
5
6
7
8
9
10
11
0
@@ -1,6 +1,11 @@
0
 Development Master
0
 
0
-* Changed default value for the tabIndex attribute to null, meaning by default a Widget's bounding box will not be a focusable element.
0
+* Added support for MyWidget.CSS_PREFIX static property 
0
+  to let developers define their own CSS PREFIX instead of 
0
+  yui-<MyWidget.NAME>. 
0
+
0
+* Changed default value for the tabIndex attribute to null, meaning by default 
0
+  a Widget's bounding box will not be a focusable element.
0
 
0
 * Widget now has built-in support for Progressive Enhancement.  
0
 
0
src/widget/js/Widget.js
...
6
7
8
 
9
10
11
12
13
 
14
15
16
...
88
89
90
 
91
92
93
...
99
100
101
102
103
104
105
...
288
289
290
291
 
292
293
 
 
 
294
295
296
297
 
298
299
300
...
311
312
313
314
 
315
316
317
...
334
335
336
337
 
338
339
340
...
364
365
366
367
 
368
369
370
...
378
379
380
381
382
383
384
385
...
769
770
771
 
772
773
774
...
776
777
778
779
 
 
780
781
782
...
1099
1100
1101
 
1102
1103
1104
...
6
7
8
9
10
11
12
13
 
14
15
16
17
...
89
90
91
92
93
94
95
...
101
102
103
 
104
105
106
...
289
290
291
 
292
293
 
294
295
296
297
298
299
 
300
301
302
303
...
314
315
316
 
317
318
319
320
...
337
338
339
 
340
341
342
343
...
367
368
369
 
370
371
372
373
...
381
382
383
 
 
384
385
386
...
770
771
772
773
774
775
776
...
778
779
780
 
781
782
783
784
785
...
1102
1103
1104
1105
1106
1107
1108
0
@@ -6,11 +6,12 @@
0
 
0
 var L = Y.Lang,
0
     Node = Y.Node,
0
+
0
     ClassNameManager = Y.ClassNameManager,
0
 
0
     _getClassName = ClassNameManager.getClassName,
0
     _getWidgetClassName,
0
-    
0
+
0
     _toInitialCap = Y.cached(function(str) {
0
         return str.substring(0, 1).toUpperCase() + str.substring(1);
0
     }),
0
@@ -88,6 +89,7 @@ function Widget(config) {
0
     Y.log('constructor called', 'life', 'widget');
0
 
0
     this._strs = {};
0
+    this._cssPrefix = this.constructor.CSS_PREFIX || _getClassName(this.constructor.NAME.toLowerCase());
0
 
0
     Widget.superclass.constructor.apply(this, arguments);
0
 
0
@@ -99,7 +101,6 @@ function Widget(config) {
0
         }
0
         this.render(parentNode);
0
     }
0
-    
0
 }
0
 
0
 /**
0
@@ -288,13 +289,15 @@ ATTRS[RENDER] = {
0
 };
0
 
0
 /**
0
- * Cached lowercase version of Widget.NAME
0
+ * The css prefix which the static Widget.getClassName method should use when constructing class names
0
  *
0
- * @property Widget._NAME_LOWERCASE
0
+ * @property Widget.CSS_PREFIX
0
+ * @type String
0
+ * @default Widget.NAME.toLowerCase()
0
  * @private
0
  * @static
0
  */
0
-Widget._NAME = Widget.NAME.toLowerCase();
0
+Widget.CSS_PREFIX = _getClassName(Widget.NAME.toLowerCase());
0
 
0
 /**
0
  * Generate a standard prefixed classname for the Widget, prefixed by the default prefix defined
0
@@ -311,7 +314,7 @@ Widget._NAME = Widget.NAME.toLowerCase();
0
  */
0
 Widget.getClassName = function() {
0
     // arguments needs to be array'fied to concat
0
-    return _getClassName.apply(ClassNameManager, [Widget._NAME].concat(Y.Array(arguments)));
0
+    return _getClassName.apply(ClassNameManager, [Widget.CSS_PREFIX].concat(Y.Array(arguments), true));
0
 };
0
 
0
 _getWidgetClassName = Widget.getClassName;
0
@@ -334,7 +337,7 @@ Widget.getByNode = function(node) {
0
 
0
     node = Node.one(node);
0
     if (node) {
0
-        node = (node.hasClass(widgetMarker)) ? node : node.ancestor("." + widgetMarker);
0
+        node = node.ancestor("." + widgetMarker, true);
0
         if (node) {
0
             widget = _instances[Y.stamp(node, TRUE)];
0
         }
0
@@ -364,7 +367,7 @@ Y.extend(Widget, Y.Base, {
0
    * @param {String}+ One or more classname bits to be joined and prefixed
0
    */
0
   getClassName: function () {
0
-        return _getClassName.apply(ClassNameManager, [this._name].concat(Y.Array(arguments)));
0
+        return _getClassName.apply(ClassNameManager, [this._cssPrefix].concat(Y.Array(arguments), true));
0
   },
0
 
0
     /**
0
@@ -378,8 +381,6 @@ Y.extend(Widget, Y.Base, {
0
     initializer: function(config) {
0
         Y.log('initializer called', 'life', 'widget');
0
 
0
-        this._name = this.constructor.NAME.toLowerCase();
0
-
0
         _instances[Y.stamp(this.get(BOUNDING_BOX))] = this;
0
 
0
         /**
0
@@ -769,6 +770,7 @@ Y.extend(Widget, Y.Base, {
0
      */
0
     _renderBoxClassNames : function() {
0
         var classes = this._getClasses(),
0
+            cl,
0
             boundingBox = this.get(BOUNDING_BOX),
0
             i;
0
 
0
@@ -776,7 +778,8 @@ Y.extend(Widget, Y.Base, {
0
 
0
         // Start from Widget Sub Class
0
         for (i = classes.length-3; i >= 0; i--) {
0
-            boundingBox.addClass(ClassNameManager.getClassName(classes[i].NAME.toLowerCase()));
0
+            cl = classes[i];
0
+            boundingBox.addClass(cl.CSS_PREFIX || _getClassName(cl.NAME.toLowerCase()));
0
         }
0
 
0
         // Use instance based name for content box
0
@@ -1099,6 +1102,7 @@ Y.extend(Widget, Y.Base, {
0
     },
0
 
0
     _BIND_UI_ATTRS : UI_ATTRS,
0
+
0
     _SYNC_UI_ATTRS : UI_ATTRS.concat(TAB_INDEX),
0
 
0
     /**

Comments

Please log in to comment.
Blog | Support | Training | Contact | API | Status | Twitter | Help | Security
© 2010 GitHub Inc. All rights reserved. | Terms of Service | Privacy Policy
Powered by the Dedicated Servers and
Cloud Computing of Rackspace Hosting®
Dedicated Server